This commit is contained in:
lzx
2025-11-13 17:59:13 +08:00
parent 00389efb75
commit 245c9c94cb
7 changed files with 487 additions and 136 deletions

View File

@@ -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

View File

@@ -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)