arnaucube
arnaucube/hermez-nodePublic Self-hosted repository
Add usefull methods for reorg
Arnau B arnaubennassar5@gmail.com
Fri, 21 Aug 2020 16:59:30 +0200
commit

c108739c24247dd0340db13bbd41008ee2bc246b

parent

1cbf54acc75c3ff98bc79ab06714576021e0b4bc

M common/exittree.go → common/exittree.go

@@ -4,9 +4,9 @@ import (

"math/big" ) -type ExitTreeLeaf struct { +type ExitInfo struct { AccountIdx Idx MerkleProof []byte - Amount *big.Int + Balance *big.Int Nullifier *big.Int }
M common/l1tx.go → common/l1tx.go

@@ -22,8 +22,7 @@ TokenID TokenID `meddler:"token_id"`

Amount *big.Int `meddler:"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 - // Extra metadata, may be uninitialized - Type TxType `meddler:"-"` // optional, descrives which kind of tx it's + Type TxType `meddler:"tx_type"` } func (tx *L1Tx) Tx() *Tx {
M common/l2tx.go → common/l2tx.go

@@ -15,8 +15,7 @@ ToIdx Idx `meddler:"to_idx"`

Amount *big.Int `meddler:"amount,bigint"` Fee FeeSelector `meddler:"fee"` Nonce Nonce `meddler:"nonce"` - // Extra metadata, may be uninitialized - Type TxType `meddler:"-"` // optional, descrives which kind of tx it's + Type TxType `meddler:"tx_type"` } func (tx *L2Tx) Tx() *Tx {
M common/pooll2tx.go → common/pooll2tx.go

@@ -62,8 +62,8 @@ RqFee FeeSelector `meddler:"rq_fee,zeroisnull"`

RqNonce uint64 `meddler:"rq_nonce,zeroisnull"` // effective 48 bits used AbsoluteFee float64 `meddler:"absolute_fee,zeroisnull"` AbsoluteFeeUpdate time.Time `meddler:"absolute_fee_update,utctimez"` + Type TxType `meddler:"tx_type"` // 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 }
M db/historydb/historydb.go → db/historydb/historydb.go

@@ -54,7 +54,12 @@ blocks[:],

) } -// 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) { var blocks []*common.Block err := meddler.QueryAll(

@@ -63,6 +68,16 @@ "SELECT * FROM block WHERE $1 <= eth_block_num AND eth_block_num < $2",

from, to, ) 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
M db/historydb/migrations/001_init.sql → db/historydb/migrations/001_init.sql

@@ -30,7 +30,7 @@ CREATE TABLE exit_tree (

batch_num BIGINT REFERENCES batch (batch_num) ON DELETE CASCADE, account_idx BIGINT, merkle_proof BYTEA NOT NULL, - amount NUMERIC NOT NULL, + balance NUMERIC NOT NULL, nullifier BYTEA NOT NULL, PRIMARY KEY (batch_num, account_idx) );

@@ -72,7 +72,8 @@ to_idx BIGINT NOT NULL,

token_id INT NOT NULL REFERENCES token (token_id), amount NUMERIC 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 (

@@ -83,7 +84,8 @@ from_idx BIGINT NOT NULL,

to_idx BIGINT NOT NULL, amount NUMERIC NOT NULL, fee INT NOT NULL, - nonce BIGINT NOT NULL + nonce BIGINT NOT NULL, + tx_type VARCHAR(40) NOT NULL ); CREATE TABLE account (
M db/l2db/migrations/001_init.sql → db/l2db/migrations/001_init.sql

@@ -22,7 +22,8 @@ rq_nonce BIGINT,

signature BYTEA NOT NULL, timestamp TIMESTAMP WITHOUT TIME ZONE NOT NULL, 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 (