Compare commits

...

5 Commits

Author SHA1 Message Date
vincent
2b7b7dab86 fix 2023-07-05 13:24:10 +08:00
vincent
075d25ac87 update select 2023-07-05 13:14:57 +08:00
vincent
f87dca41e6 bump version 2023-07-05 12:25:29 +08:00
vincent
507ee571f6 fix 2023-07-05 12:10:49 +08:00
vincent
9651e1ca6e update db insert logic 2023-07-05 11:55:09 +08:00
7 changed files with 15 additions and 16 deletions

View File

@@ -3,7 +3,7 @@
create table cross_message create table cross_message
( (
id BIGSERIAL PRIMARY KEY, id BIGSERIAL PRIMARY KEY,
msg_hash VARCHAR NOT NULL DEFAULT '', msg_hash VARCHAR NOT NULL,
height BIGINT NOT NULL, height BIGINT NOT NULL,
sender VARCHAR NOT NULL, sender VARCHAR NOT NULL,
target VARCHAR NOT NULL, target VARCHAR NOT NULL,
@@ -14,10 +14,8 @@ create table cross_message
layer2_token VARCHAR NOT NULL DEFAULT '', layer2_token VARCHAR NOT NULL DEFAULT '',
asset SMALLINT NOT NULL, asset SMALLINT NOT NULL,
msg_type SMALLINT NOT NULL, msg_type SMALLINT NOT NULL,
-- use array to support nft bridge token_ids TEXT NOT NULL DEFAULT '',
token_ids VARCHAR[] NOT NULL DEFAULT '{}', token_amounts TEXT NOT NULL DEFAULT '',
-- use array to support nft bridge
token_amounts VARCHAR[] NOT NULL DEFAULT '{}',
block_timestamp TIMESTAMP(0) DEFAULT NULL, block_timestamp TIMESTAMP(0) DEFAULT NULL,
created_at TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP, created_at TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP,

View File

@@ -50,8 +50,8 @@ type CrossMsg struct {
Layer2Hash string `json:"layer2_hash" db:"layer2_hash"` Layer2Hash string `json:"layer2_hash" db:"layer2_hash"`
Layer1Token string `json:"layer1_token" db:"layer1_token"` Layer1Token string `json:"layer1_token" db:"layer1_token"`
Layer2Token string `json:"layer2_token" db:"layer2_token"` Layer2Token string `json:"layer2_token" db:"layer2_token"`
TokenIDs []string `json:"token_ids" db:"token_ids"` TokenIDs string `json:"token_ids" db:"token_ids"`
TokenAmounts []string `json:"token_amounts" db:"token_amounts"` TokenAmounts string `json:"token_amounts" db:"token_amounts"`
Asset int `json:"asset" db:"asset"` Asset int `json:"asset" db:"asset"`
MsgType int `json:"msg_type" db:"msg_type"` MsgType int `json:"msg_type" db:"msg_type"`
Timestamp *time.Time `json:"timestamp" db:"block_timestamp"` Timestamp *time.Time `json:"timestamp" db:"block_timestamp"`

View File

@@ -65,6 +65,7 @@ func (l *l1CrossMsgOrm) BatchInsertL1CrossMsgDBTx(dbTx *sqlx.Tx, messages []*Cro
"target": msg.Target, "target": msg.Target,
"amount": msg.Amount, "amount": msg.Amount,
"asset": msg.Asset, "asset": msg.Asset,
"msg_hash": msg.MsgHash,
"layer1_hash": msg.Layer1Hash, "layer1_hash": msg.Layer1Hash,
"layer1_token": msg.Layer1Token, "layer1_token": msg.Layer1Token,
"layer2_token": msg.Layer2Token, "layer2_token": msg.Layer2Token,
@@ -72,7 +73,7 @@ func (l *l1CrossMsgOrm) BatchInsertL1CrossMsgDBTx(dbTx *sqlx.Tx, messages []*Cro
"msg_type": Layer1Msg, "msg_type": Layer1Msg,
} }
} }
_, err = dbTx.NamedExec(`insert into cross_message(height, sender, target, asset, layer1_hash, layer1_token, layer2_token, token_ids, amount, msg_type) values(:height, :sender, :target, :asset, :layer1_hash, :layer1_token, :layer2_token, :token_ids, :amount, :msg_type);`, messageMaps) _, err = dbTx.NamedExec(`insert into cross_message(height, sender, target, asset, layer1_hash, layer1_token, layer2_token, token_ids, amount, msg_type, msg_hash) values(:height, :sender, :target, :asset, :layer1_hash, :layer1_token, :layer2_token, :token_ids, :amount, :msg_type, :msg_hash);`, messageMaps)
if err != nil { if err != nil {
log.Error("BatchInsertL1CrossMsgDBTx: failed to insert l1 cross msgs", "err", err) log.Error("BatchInsertL1CrossMsgDBTx: failed to insert l1 cross msgs", "err", err)
return err return err

View File

@@ -71,12 +71,12 @@ func (l *l2CrossMsgOrm) BatchInsertL2CrossMsgDBTx(dbTx *sqlx.Tx, messages []*Cro
var err error var err error
messageMaps := make([]map[string]interface{}, len(messages)) messageMaps := make([]map[string]interface{}, len(messages))
for i, msg := range messages { for i, msg := range messages {
messageMaps[i] = map[string]interface{}{ messageMaps[i] = map[string]interface{}{
"height": msg.Height, "height": msg.Height,
"sender": msg.Sender, "sender": msg.Sender,
"target": msg.Target, "target": msg.Target,
"asset": msg.Asset, "asset": msg.Asset,
"msg_hash": msg.MsgHash,
"layer2_hash": msg.Layer2Hash, "layer2_hash": msg.Layer2Hash,
"layer1_token": msg.Layer1Token, "layer1_token": msg.Layer1Token,
"layer2_token": msg.Layer2Token, "layer2_token": msg.Layer2Token,
@@ -85,7 +85,7 @@ func (l *l2CrossMsgOrm) BatchInsertL2CrossMsgDBTx(dbTx *sqlx.Tx, messages []*Cro
"msg_type": Layer2Msg, "msg_type": Layer2Msg,
} }
} }
_, err = dbTx.NamedExec(`insert into cross_message(height, sender, target, asset, layer2_hash, layer1_token, layer2_token, token_ids, amount, msg_type) values(:height, :sender, :target, :asset, :layer2_hash, :layer1_token, :layer2_token, :token_ids, :amount, :msg_type);`, messageMaps) _, err = dbTx.NamedExec(`insert into cross_message(height, sender, target, asset, layer2_hash, layer1_token, layer2_token, token_ids, amount, msg_type, msg_hash) values(:height, :sender, :target, :asset, :layer2_hash, :layer1_token, :layer2_token, :token_ids, :amount, :msg_type, :msg_hash);`, messageMaps)
if err != nil { if err != nil {
log.Error("BatchInsertL2CrossMsgDBTx: failed to insert l2 cross msgs", "err", err) log.Error("BatchInsertL2CrossMsgDBTx: failed to insert l2 cross msgs", "err", err)
return err return err

View File

@@ -95,7 +95,7 @@ func (l *l2SentMsgOrm) UpdateL2MessageProofInDBTx(ctx context.Context, dbTx *sql
} }
func (l *l2SentMsgOrm) GetLatestL2SentMsgBatchIndex() (int64, error) { func (l *l2SentMsgOrm) GetLatestL2SentMsgBatchIndex() (int64, error) {
row := l.db.QueryRow(`SELECT batch_index FROM l2_sent_msg WHERE msg_proof != '' AND deleted_at IS NULL ORDER BY batch_index DESC LIMIT 1;`) row := l.db.QueryRow(`SELECT batch_index FROM l2_sent_msg WHERE batch_index !=0 AND deleted_at IS NULL ORDER BY batch_index DESC LIMIT 1;`)
var result sql.NullInt64 var result sql.NullInt64
if err := row.Scan(&result); err != nil { if err := row.Scan(&result); err != nil {
if err == sql.ErrNoRows || !result.Valid { if err == sql.ErrNoRows || !result.Valid {

View File

@@ -86,7 +86,7 @@ func ParseBackendL1EventLogs(logs []types.Log) ([]*orm.CrossMsg, []MsgHashWrappe
Layer1Hash: vlog.TxHash.Hex(), Layer1Hash: vlog.TxHash.Hex(),
Layer1Token: event.L1Token.Hex(), Layer1Token: event.L1Token.Hex(),
Layer2Token: event.L2Token.Hex(), Layer2Token: event.L2Token.Hex(),
TokenIDs: []string{event.TokenID.String()}, TokenIDs: event.TokenID.String(),
}) })
case backendabi.L1DepositERC1155Sig: case backendabi.L1DepositERC1155Sig:
event := backendabi.ERC1155MessageEvent{} event := backendabi.ERC1155MessageEvent{}
@@ -103,7 +103,7 @@ func ParseBackendL1EventLogs(logs []types.Log) ([]*orm.CrossMsg, []MsgHashWrappe
Layer1Hash: vlog.TxHash.Hex(), Layer1Hash: vlog.TxHash.Hex(),
Layer1Token: event.L1Token.Hex(), Layer1Token: event.L1Token.Hex(),
Layer2Token: event.L2Token.Hex(), Layer2Token: event.L2Token.Hex(),
TokenIDs: []string{event.TokenID.String()}, TokenIDs: event.TokenID.String(),
Amount: event.Amount.String(), Amount: event.Amount.String(),
}) })
case backendabi.L1SentMessageEventSignature: case backendabi.L1SentMessageEventSignature:
@@ -193,7 +193,7 @@ func ParseBackendL2EventLogs(logs []types.Log) ([]*orm.CrossMsg, []*orm.RelayedM
Layer2Hash: vlog.TxHash.Hex(), Layer2Hash: vlog.TxHash.Hex(),
Layer1Token: event.L1Token.Hex(), Layer1Token: event.L1Token.Hex(),
Layer2Token: event.L2Token.Hex(), Layer2Token: event.L2Token.Hex(),
TokenIDs: []string{event.TokenID.String()}, TokenIDs: event.TokenID.String(),
}) })
case backendabi.L2WithdrawERC1155Sig: case backendabi.L2WithdrawERC1155Sig:
event := backendabi.ERC1155MessageEvent{} event := backendabi.ERC1155MessageEvent{}
@@ -210,7 +210,7 @@ func ParseBackendL2EventLogs(logs []types.Log) ([]*orm.CrossMsg, []*orm.RelayedM
Layer2Hash: vlog.TxHash.Hex(), Layer2Hash: vlog.TxHash.Hex(),
Layer1Token: event.L1Token.Hex(), Layer1Token: event.L1Token.Hex(),
Layer2Token: event.L2Token.Hex(), Layer2Token: event.L2Token.Hex(),
TokenIDs: []string{event.TokenID.String()}, TokenIDs: event.TokenID.String(),
Amount: event.Amount.String(), Amount: event.Amount.String(),
}) })
case backendabi.L2SentMessageEventSignature: case backendabi.L2SentMessageEventSignature:

View File

@@ -5,7 +5,7 @@ import (
"runtime/debug" "runtime/debug"
) )
var tag = "v4.0.7" var tag = "v4.0.7-fix"
var commit = func() string { var commit = func() string {
if info, ok := debug.ReadBuildInfo(); ok { if info, ok := debug.ReadBuildInfo(); ok {