mirror of
https://github.com/arnaucube/hermez-node.git
synced 2026-02-07 11:26:44 +01:00
Add usefull methods for reorg
This commit is contained in:
@@ -4,9 +4,9 @@ import (
|
|||||||
"math/big"
|
"math/big"
|
||||||
)
|
)
|
||||||
|
|
||||||
type ExitTreeLeaf struct {
|
type ExitInfo struct {
|
||||||
AccountIdx Idx
|
AccountIdx Idx
|
||||||
MerkleProof []byte
|
MerkleProof []byte
|
||||||
Amount *big.Int
|
Balance *big.Int
|
||||||
Nullifier *big.Int
|
Nullifier *big.Int
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,8 +22,7 @@ type L1Tx struct {
|
|||||||
Amount *big.Int `meddler:"amount,bigint"`
|
Amount *big.Int `meddler:"amount,bigint"`
|
||||||
LoadAmount *big.Int `meddler:"load_amount,bigint"`
|
LoadAmount *big.Int `meddler:"load_amount,bigint"`
|
||||||
EthBlockNum uint64 `meddler:"eth_block_num"` // Ethereum Block Number in which this L1Tx was added to the queue
|
EthBlockNum uint64 `meddler:"eth_block_num"` // Ethereum Block Number in which this L1Tx was added to the queue
|
||||||
// Extra metadata, may be uninitialized
|
Type TxType `meddler:"tx_type"`
|
||||||
Type TxType `meddler:"-"` // optional, descrives which kind of tx it's
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (tx *L1Tx) Tx() *Tx {
|
func (tx *L1Tx) Tx() *Tx {
|
||||||
|
|||||||
@@ -15,8 +15,7 @@ type L2Tx struct {
|
|||||||
Amount *big.Int `meddler:"amount,bigint"`
|
Amount *big.Int `meddler:"amount,bigint"`
|
||||||
Fee FeeSelector `meddler:"fee"`
|
Fee FeeSelector `meddler:"fee"`
|
||||||
Nonce Nonce `meddler:"nonce"`
|
Nonce Nonce `meddler:"nonce"`
|
||||||
// Extra metadata, may be uninitialized
|
Type TxType `meddler:"tx_type"`
|
||||||
Type TxType `meddler:"-"` // optional, descrives which kind of tx it's
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (tx *L2Tx) Tx() *Tx {
|
func (tx *L2Tx) Tx() *Tx {
|
||||||
|
|||||||
@@ -62,8 +62,8 @@ type PoolL2Tx struct {
|
|||||||
RqNonce uint64 `meddler:"rq_nonce,zeroisnull"` // effective 48 bits used
|
RqNonce uint64 `meddler:"rq_nonce,zeroisnull"` // effective 48 bits used
|
||||||
AbsoluteFee float64 `meddler:"absolute_fee,zeroisnull"`
|
AbsoluteFee float64 `meddler:"absolute_fee,zeroisnull"`
|
||||||
AbsoluteFeeUpdate time.Time `meddler:"absolute_fee_update,utctimez"`
|
AbsoluteFeeUpdate time.Time `meddler:"absolute_fee_update,utctimez"`
|
||||||
|
Type TxType `meddler:"tx_type"`
|
||||||
// Extra metadata, may be uninitialized
|
// Extra metadata, may be uninitialized
|
||||||
Type TxType `meddler:"-"` // optional, descrives which kind of tx it's
|
|
||||||
RqTxCompressedData []byte `meddler:"-"` // 253 bits, optional for atomic txs
|
RqTxCompressedData []byte `meddler:"-"` // 253 bits, optional for atomic txs
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -54,7 +54,12 @@ func (hdb *HistoryDB) addBlocks(blocks []common.Block) error {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetBlocks retrrieve blocks from the DB
|
// GetBlock retrieve a block from the DB, given a block number
|
||||||
|
func (hdb *HistoryDB) GetBlock(blockNum uint64) (*common.Block, error) {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetBlocks retrieve blocks from the DB, given a range of block numbers defined by from and to
|
||||||
func (hdb *HistoryDB) GetBlocks(from, to uint64) ([]*common.Block, error) {
|
func (hdb *HistoryDB) GetBlocks(from, to uint64) ([]*common.Block, error) {
|
||||||
var blocks []*common.Block
|
var blocks []*common.Block
|
||||||
err := meddler.QueryAll(
|
err := meddler.QueryAll(
|
||||||
@@ -65,6 +70,16 @@ func (hdb *HistoryDB) GetBlocks(from, to uint64) ([]*common.Block, error) {
|
|||||||
return blocks, err
|
return blocks, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetLastBlock retrieve the block with the highest block number from the DB
|
||||||
|
func (hdb *HistoryDB) GetLastBlock() (*common.Block, error) {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetLastBatchNum returns the BatchNum of the latest forged batch
|
||||||
|
func (hdb *HistoryDB) GetLastBatchNum() (*common.BatchNum, error) {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
// Reorg deletes all the information that was added into the DB after the lastValidBlock
|
// Reorg deletes all the information that was added into the DB after the lastValidBlock
|
||||||
// WARNING: this is a draaft of the function, useful at the moment for tests
|
// WARNING: this is a draaft of the function, useful at the moment for tests
|
||||||
func (hdb *HistoryDB) Reorg(lastValidBlock uint64) error {
|
func (hdb *HistoryDB) Reorg(lastValidBlock uint64) error {
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ CREATE TABLE exit_tree (
|
|||||||
batch_num BIGINT REFERENCES batch (batch_num) ON DELETE CASCADE,
|
batch_num BIGINT REFERENCES batch (batch_num) ON DELETE CASCADE,
|
||||||
account_idx BIGINT,
|
account_idx BIGINT,
|
||||||
merkle_proof BYTEA NOT NULL,
|
merkle_proof BYTEA NOT NULL,
|
||||||
amount NUMERIC NOT NULL,
|
balance NUMERIC NOT NULL,
|
||||||
nullifier BYTEA NOT NULL,
|
nullifier BYTEA NOT NULL,
|
||||||
PRIMARY KEY (batch_num, account_idx)
|
PRIMARY KEY (batch_num, account_idx)
|
||||||
);
|
);
|
||||||
@@ -72,7 +72,8 @@ CREATE TABLE l1tx (
|
|||||||
token_id INT NOT NULL REFERENCES token (token_id),
|
token_id INT NOT NULL REFERENCES token (token_id),
|
||||||
amount NUMERIC NOT NULL,
|
amount NUMERIC NOT NULL,
|
||||||
load_amount BYTEA NOT NULL,
|
load_amount BYTEA NOT NULL,
|
||||||
eth_block_num BIGINT NOT NULL REFERENCES block (eth_block_num) ON DELETE CASCADE
|
eth_block_num BIGINT NOT NULL REFERENCES block (eth_block_num) ON DELETE CASCADE,
|
||||||
|
tx_type VARCHAR(40) NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE l2tx (
|
CREATE TABLE l2tx (
|
||||||
@@ -83,7 +84,8 @@ CREATE TABLE l2tx (
|
|||||||
to_idx BIGINT NOT NULL,
|
to_idx BIGINT NOT NULL,
|
||||||
amount NUMERIC NOT NULL,
|
amount NUMERIC NOT NULL,
|
||||||
fee INT NOT NULL,
|
fee INT NOT NULL,
|
||||||
nonce BIGINT NOT NULL
|
nonce BIGINT NOT NULL,
|
||||||
|
tx_type VARCHAR(40) NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE account (
|
CREATE TABLE account (
|
||||||
|
|||||||
@@ -22,7 +22,8 @@ CREATE TABLE tx_pool (
|
|||||||
signature BYTEA NOT NULL,
|
signature BYTEA NOT NULL,
|
||||||
timestamp TIMESTAMP WITHOUT TIME ZONE NOT NULL,
|
timestamp TIMESTAMP WITHOUT TIME ZONE NOT NULL,
|
||||||
absolute_fee NUMERIC,
|
absolute_fee NUMERIC,
|
||||||
absolute_fee_update TIMESTAMP WITHOUT TIME ZONE
|
absolute_fee_update TIMESTAMP WITHOUT TIME ZONE,
|
||||||
|
tx_type VARCHAR(40) NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE account_creation_auth (
|
CREATE TABLE account_creation_auth (
|
||||||
|
|||||||
Reference in New Issue
Block a user