|
package l2db
|
|
|
|
import (
|
|
"math/big"
|
|
"time"
|
|
|
|
ethCommon "github.com/ethereum/go-ethereum/common"
|
|
"github.com/hermeznetwork/hermez-node/common"
|
|
"github.com/iden3/go-iden3-crypto/babyjub"
|
|
)
|
|
|
|
// PoolL2TxWrite holds the necessary data to perform inserts in tx_pool
|
|
type PoolL2TxWrite struct {
|
|
TxID common.TxID `meddler:"tx_id"`
|
|
FromIdx common.Idx `meddler:"from_idx"`
|
|
ToIdx *common.Idx `meddler:"to_idx"`
|
|
ToEthAddr *ethCommon.Address `meddler:"to_eth_addr"`
|
|
ToBJJ *babyjub.PublicKey `meddler:"to_bjj"`
|
|
TokenID common.TokenID `meddler:"token_id"`
|
|
Amount *big.Int `meddler:"amount,bigint"`
|
|
AmountFloat float64 `meddler:"amount_f"`
|
|
Fee common.FeeSelector `meddler:"fee"`
|
|
Nonce common.Nonce `meddler:"nonce"`
|
|
State common.PoolL2TxState `meddler:"state"`
|
|
Signature *babyjub.Signature `meddler:"signature"`
|
|
RqFromIdx *common.Idx `meddler:"rq_from_idx"`
|
|
RqToIdx *common.Idx `meddler:"rq_to_idx"`
|
|
RqToEthAddr *ethCommon.Address `meddler:"rq_to_eth_addr"`
|
|
RqToBJJ *babyjub.PublicKey `meddler:"rq_to_bjj"`
|
|
RqTokenID *common.TokenID `meddler:"rq_token_id"`
|
|
RqAmount *big.Int `meddler:"rq_amount,bigintnull"`
|
|
RqFee *common.FeeSelector `meddler:"rq_fee"`
|
|
RqNonce *uint64 `meddler:"rq_nonce"`
|
|
Type common.TxType `meddler:"tx_type"`
|
|
}
|
|
|
|
// PoolL2TxRead represents a L2 Tx pool with extra metadata used by the API
|
|
type PoolL2TxRead struct {
|
|
TxID common.TxID `meddler:"tx_id"`
|
|
FromIdx common.Idx `meddler:"from_idx"`
|
|
ToIdx *common.Idx `meddler:"to_idx"`
|
|
ToEthAddr *ethCommon.Address `meddler:"to_eth_addr"`
|
|
ToBJJ *babyjub.PublicKey `meddler:"to_bjj"`
|
|
Amount *big.Int `meddler:"amount,bigint"`
|
|
Fee common.FeeSelector `meddler:"fee"`
|
|
Nonce common.Nonce `meddler:"nonce"`
|
|
State common.PoolL2TxState `meddler:"state"`
|
|
Signature *babyjub.Signature `meddler:"signature"`
|
|
RqFromIdx *common.Idx `meddler:"rq_from_idx"`
|
|
RqToIdx *common.Idx `meddler:"rq_to_idx"`
|
|
RqToEthAddr *ethCommon.Address `meddler:"rq_to_eth_addr"`
|
|
RqToBJJ *babyjub.PublicKey `meddler:"rq_to_bjj"`
|
|
RqTokenID *common.TokenID `meddler:"rq_token_id"`
|
|
RqAmount *big.Int `meddler:"rq_amount,bigintnull"`
|
|
RqFee *common.FeeSelector `meddler:"rq_fee"`
|
|
RqNonce *uint64 `meddler:"rq_nonce"`
|
|
Type common.TxType `meddler:"tx_type"`
|
|
// Extra read fileds
|
|
BatchNum *common.BatchNum `meddler:"batch_num"`
|
|
Timestamp time.Time `meddler:"timestamp,utctime"`
|
|
TotalItems int `meddler:"total_items"`
|
|
TokenID common.TokenID `meddler:"token_id"`
|
|
TokenEthBlockNum int64 `meddler:"eth_block_num"`
|
|
TokenEthAddr ethCommon.Address `meddler:"eth_addr"`
|
|
TokenName string `meddler:"name"`
|
|
TokenSymbol string `meddler:"symbol"`
|
|
TokenDecimals uint64 `meddler:"decimals"`
|
|
TokenUSD *float64 `meddler:"usd"`
|
|
TokenUSDUpdate *time.Time `meddler:"usd_update"`
|
|
}
|