mirror of
https://github.com/arnaucube/hermez-node.git
synced 2026-02-07 11:26:44 +01:00
Update missing parts, improve til, and more
- Node - Updated configuration to initialize the interface to all the smart contracts - Common - Moved BlockData and BatchData types to common so that they can be shared among: historydb, til and synchronizer - Remove hash.go (it was never used) - Remove slot.go (it was never used) - Remove smartcontractparams.go (it was never used, and appropriate structs are defined in `eth/`) - Comment state / status method until requirements of this method are properly defined, and move it to Synchronizer - Synchronizer - Simplify `Sync` routine to only sync one block per call, and return useful information. - Use BlockData and BatchData from common - Check that events belong to the expected block hash - In L1Batch, query L1UserTxs from HistoryDB - Fill ERC20 token information - Test AddTokens with test.Client - HistryDB - Use BlockData and BatchData from common - Add `GetAllTokens` method - Uncomment and update GetL1UserTxs (with corresponding tests) - Til - Rename all instances of RegisterToken to AddToken (to follow the smart contract implementation naming) - Use BlockData and BatchData from common - Move testL1CoordinatorTxs and testL2Txs to a separate struct from BatchData in Context - Start Context with BatchNum = 1 (which the protocol defines to be the first batchNum) - In every Batch, set StateRoot and ExitRoot to a non-nil big.Int (zero). - In all L1Txs, if LoadAmount is not used, set it to 0; if Amount is not used, set it to 0; so that no *big.Int is nil. - In L1UserTx, don't set BatchNum, because when L1UserTxs are created and obtained by the synchronizer, the BatchNum is not known yet (it's a synchronizer job to set it) - In L1UserTxs, set `UserOrigin` and set `ToForgeL1TxsNum`.
This commit is contained in:
@@ -13,3 +13,46 @@ type Block struct {
|
||||
Hash ethCommon.Hash `meddler:"hash"`
|
||||
ParentHash ethCommon.Hash `meddler:"-"`
|
||||
}
|
||||
|
||||
// BlockData contains the information of a Block
|
||||
type BlockData struct {
|
||||
Block Block
|
||||
// Rollup
|
||||
// L1UserTxs that were submitted in the block
|
||||
L1UserTxs []L1Tx
|
||||
Batches []BatchData
|
||||
AddedTokens []Token
|
||||
RollupVars *RollupVars
|
||||
// Auction
|
||||
Bids []Bid
|
||||
Coordinators []Coordinator
|
||||
AuctionVars *AuctionVars
|
||||
WithdrawDelayerVars *WithdrawDelayerVars
|
||||
// TODO: enable when common.WithdrawalDelayerVars is Merged from Synchronizer PR
|
||||
// WithdrawalDelayerVars *common.WithdrawalDelayerVars
|
||||
}
|
||||
|
||||
// BatchData contains the information of a Batch
|
||||
type BatchData struct {
|
||||
// L1UserTxs that were forged in the batch
|
||||
L1Batch bool // TODO: Remove once Batch.ForgeL1TxsNum is a pointer
|
||||
// L1UserTxs []common.L1Tx
|
||||
L1CoordinatorTxs []L1Tx
|
||||
L2Txs []L2Tx
|
||||
CreatedAccounts []Account
|
||||
ExitTree []ExitInfo
|
||||
Batch Batch
|
||||
}
|
||||
|
||||
// NewBatchData creates an empty BatchData with the slices initialized.
|
||||
func NewBatchData() *BatchData {
|
||||
return &BatchData{
|
||||
L1Batch: false,
|
||||
// L1UserTxs: make([]common.L1Tx, 0),
|
||||
L1CoordinatorTxs: make([]L1Tx, 0),
|
||||
L2Txs: make([]L2Tx, 0),
|
||||
CreatedAccounts: make([]Account, 0),
|
||||
ExitTree: make([]ExitInfo, 0),
|
||||
Batch: Batch{},
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user