bug fix
This commit is contained in:
@@ -391,18 +391,19 @@ func (e *ETHNode) loadWallets() error {
|
||||
if err := rows.Err(); err != nil {
|
||||
return fmt.Errorf("error occurred while iterating rows: %v", err)
|
||||
}
|
||||
pks, err := e.getAddressesPks(addresses)
|
||||
if err != nil {
|
||||
return fmt.Errorf("inital balance private key error: %v", err)
|
||||
if len(addresses) > 0 {
|
||||
pks, err := e.getAddressesPks(addresses)
|
||||
if err != nil {
|
||||
return fmt.Errorf("inital balance private key error: %v", err)
|
||||
}
|
||||
e.mu.Lock()
|
||||
e.Wallets = wallets
|
||||
for address, pk := range pks {
|
||||
e.Wallets[address].pk = pk
|
||||
}
|
||||
e.mu.Unlock()
|
||||
}
|
||||
|
||||
e.mu.Lock()
|
||||
e.Wallets = wallets
|
||||
for address, pk := range pks {
|
||||
e.Wallets[address].pk = pk
|
||||
}
|
||||
e.mu.Unlock()
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -1090,6 +1091,13 @@ func (e *ETHNode) handleListen_Topup_req(msg message.TopupMsg_req) {
|
||||
pk, err := e.getAddressPk(msg.Address)
|
||||
if err != nil {
|
||||
log.Printf("Query balance(%s-%s) private_key error: %v", msg.Chain, msg.Address, err)
|
||||
go e.asyncSendMsgToListen(message.TopupMsg_resp{
|
||||
QueueId: msg.QueueId,
|
||||
Chain: msg.Chain,
|
||||
Symbol: msg.Symbol,
|
||||
Address: msg.Address,
|
||||
Status: msg.Status,
|
||||
}, 3, 5*time.Second)
|
||||
return
|
||||
}
|
||||
// 添加到钱包
|
||||
@@ -1226,8 +1234,9 @@ func (e *ETHNode) handleListen_Pay_req(msg message.PayMsg_req) {
|
||||
if err != nil {
|
||||
log.Printf("check balance error: %v", err)
|
||||
result_msg.PayStatus = constant.STATUS_ERROR
|
||||
for _, tx := range result_msg.Transactions {
|
||||
for to, tx := range result_msg.Transactions {
|
||||
tx.Status = constant.STATUS_ERROR
|
||||
result_msg.Transactions[to] = tx
|
||||
}
|
||||
go e.asyncSendMsgToListen(result_msg, 3, 5*time.Second)
|
||||
return
|
||||
|
||||
@@ -96,7 +96,36 @@ func (l *ListenServer) handleRmqRemove_req(msg message.RemoveListenMsg_req) {
|
||||
|
||||
// 充值响应
|
||||
func (l *ListenServer) handleChainTopup_resp(msg message.TopupMsg_resp) {
|
||||
|
||||
switch msg.Status {
|
||||
case constant.STATUS_SUCCESS, constant.STATUS_FAILED:
|
||||
// 修改数据库
|
||||
str := "UPDATE topup_resp_msg SET status = ? WHERE tx_hash = ?"
|
||||
params := []any{msg.Status, msg.TxHash}
|
||||
count, err := l.SqliteDB.Update(str, params)
|
||||
if err != nil {
|
||||
// 更详细的错误日志,包括 QueueId 和 Status
|
||||
log.Printf("Failed to update remove_resp_msg for queue_id %s: %v", msg.QueueId, err)
|
||||
} else if count != 1 {
|
||||
// 如果更新的行数不是 1,日志中记录详细信息
|
||||
log.Printf("Unexpected update count for queue_id %s: expected 1, got %d", msg.QueueId, count)
|
||||
}
|
||||
case constant.STATUS_PENDING:
|
||||
str := "INSERT INTO topup_resp_msg (queue_id, chain, symbol, from_addr, to_addr, amount, tx_hash, height, status) VALUES (?,?,?,?,?,?,?,?,?)"
|
||||
params := []any{msg.QueueId, msg.Chain, msg.Symbol, msg.FromAddress, msg.Address, msg.Amount, msg.TxHash, msg.BlockHeight, msg.Status}
|
||||
err := l.SqliteDB.Insert(str, params)
|
||||
if err != nil {
|
||||
log.Printf("Insert Topup_resp msg error: %v", err)
|
||||
}
|
||||
default:
|
||||
// 插入数据库
|
||||
str := "INSERT INTO topup_resp_msg (queue_id, chain, symbol, to_addr, status) VALUES (?,?,?,?,?,?,?,?,?)"
|
||||
params := []any{msg.QueueId, msg.Chain, msg.Symbol, msg.Address, msg.Status}
|
||||
err := l.SqliteDB.Insert(str, params)
|
||||
if err != nil {
|
||||
log.Printf("Insert Topup_resp msg error: %v", err)
|
||||
}
|
||||
}
|
||||
go l.asyncSendMsgToRmq(msg, 3, 5*time.Second)
|
||||
}
|
||||
|
||||
// 提现响应
|
||||
@@ -121,8 +150,12 @@ func (l *ListenServer) handleChainWithdraw_resp(msg message.WithdrawMsg_resp) {
|
||||
str := "UPDATE withdraw_resp_msg SET status = ? WHERE tx_hash = ?"
|
||||
params := []any{msg.Status, msg.TxHash}
|
||||
count, err := l.SqliteDB.Update(str, params)
|
||||
if err != nil || count != 1 {
|
||||
log.Printf("count=%d, err=%v", count, err)
|
||||
if err != nil {
|
||||
// 更详细的错误日志,包括 QueueId 和 Status
|
||||
log.Printf("Failed to update remove_resp_msg for queue_id %s: %v", msg.QueueId, err)
|
||||
} else if count != 1 {
|
||||
// 如果更新的行数不是 1,日志中记录详细信息
|
||||
log.Printf("Unexpected update count for queue_id %s: expected 1, got %d", msg.QueueId, count)
|
||||
}
|
||||
}()
|
||||
go l.asyncSendMsgToRmq(msg, 3, 5*time.Second)
|
||||
|
||||
Reference in New Issue
Block a user