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`.
4 years ago |
|
package til
// sets of instructions to be used in tests of other packages
// SetBlockchain0 contains a set of transactions simulated to be from the smart contract
var SetBlockchain0 = ` // Set containing Blockchain transactions
Type: Blockchain AddToken(1) AddToken(2) AddToken(3)
// deposits TokenID: 1
CreateAccountDeposit(1) A: 50 CreateAccountDeposit(1) B: 5 CreateAccountDeposit(1) C: 20 CreateAccountDeposit(1) D: 25 CreateAccountDeposit(1) E: 25 CreateAccountDeposit(1) F: 25 CreateAccountDeposit(1) G: 25 CreateAccountDeposit(1) H: 25 CreateAccountDeposit(1) I: 25 CreateAccountDeposit(1) J: 25 CreateAccountDeposit(1) K: 25 CreateAccountDeposit(1) L: 25 CreateAccountDeposit(1) M: 25 CreateAccountDeposit(1) N: 25 CreateAccountDeposit(1) O: 25 CreateAccountDeposit(1) P: 25 CreateAccountDeposit(1) Q: 25 CreateAccountDeposit(1) R: 25 CreateAccountDeposit(1) S: 25 CreateAccountDeposit(1) T: 25 CreateAccountDeposit(1) U: 25 CreateAccountDeposit(1) V: 25 CreateAccountDeposit(1) W: 25 CreateAccountDeposit(1) X: 25 CreateAccountDeposit(1) Y: 25 CreateAccountDeposit(1) Z: 25 // deposits TokenID: 2
CreateAccountDeposit(2) B: 5 CreateAccountDeposit(2) A: 20 // deposits TokenID: 3
CreateAccountDeposit(3) B: 100
> batchL1
// transactions TokenID: 1
Transfer(1) A-B: 5 (1) Transfer(1) A-L: 10 (1) Transfer(1) A-M: 5 (1) Transfer(1) A-N: 5 (1) Transfer(1) A-O: 5 (1) Transfer(1) B-C: 3 (1) Transfer(1) C-A: 3 (255) Transfer(1) D-A: 5 (1) Transfer(1) D-Z: 5 (1) Transfer(1) D-Y: 5 (1) Transfer(1) D-X: 5 (1) Transfer(1) E-Z: 5 (2) Transfer(1) E-Y: 5 (1) Transfer(1) E-X: 5 (1) Transfer(1) F-Z: 5 (1) Transfer(1) G-K: 3 (1) Transfer(1) G-K: 3 (1) Transfer(1) G-K: 3 (1) Transfer(1) H-K: 3 (2) Transfer(1) H-K: 3 (1) Transfer(1) H-K: 3 (1)
> batchL1 > block // A (3) still does not exist, coordinator should create new L1Tx to create the account
CreateAccountDepositCoordinator(3) A
Transfer(3) B-A: 5 (1) Transfer(2) A-B: 5 (1) Transfer(1) I-K: 3 (1) Transfer(1) I-K: 3 (1) Transfer(1) I-K: 3 (1) Transfer(1) J-K: 3 (1) Transfer(1) J-K: 3 (1) Transfer(1) J-K: 3 (1) Transfer(1) K-J: 3 (1) Transfer(1) L-A: 5 (1) Transfer(1) L-Z: 5 (1) Transfer(1) L-Y: 5 (1) Transfer(1) L-X: 5 (1) Transfer(1) M-A: 5 (1) Transfer(1) M-Z: 5 (1) Transfer(1) M-Y: 5 (1) Transfer(1) N-A: 5 (1) Transfer(1) N-Z: 5 (2) Transfer(1) N-Y: 5 (1) Transfer(1) O-T: 3 (1) Transfer(1) O-U: 3 (1) Transfer(1) O-V: 3 (1) Transfer(1) P-T: 3 (1) Transfer(1) P-U: 3 (1) Transfer(1) P-V: 3 (5) Transfer(1) Q-O: 3 (1) Transfer(1) Q-P: 3 (1) Transfer(1) R-O: 3 (1) Transfer(1) R-P: 3 (1) Transfer(1) R-Q: 3 (1) Transfer(1) S-O: 3 (1) Transfer(1) S-P: 3 (1) Transfer(1) S-Q: 3 (1) Transfer(1) T-O: 3 (1) Transfer(1) T-P: 3 (1) Transfer(1) T-Q: 3 (1) Transfer(1) U-Z: 5 (3) Transfer(1) U-Y: 5 (1) Transfer(1) U-T: 3 (1) Transfer(1) V-Z: 5 (0) Transfer(1) V-Y: 6 (1) Transfer(1) V-T: 3 (1) Transfer(1) W-K: 3 (1) Transfer(1) W-J: 3 (1) Transfer(1) W-A: 5 (1) Transfer(1) W-Z: 5 (1) Transfer(1) X-B: 5 (1) Transfer(1) X-C: 5 (50) Transfer(1) X-D: 5 (1) Transfer(1) X-E: 5 (1) Transfer(1) Y-B: 5 (1) Transfer(1) Y-C: 5 (1) Transfer(1) Y-D: 5 (1) Transfer(1) Y-E: 5 (1) Transfer(1) Z-A: 5 (1) // exits
ForceExit(1) A: 5 Exit(1) K: 5 Exit(1) X: 5 Exit(1) Y: 5 Exit(1) Z: 5
> batch
Deposit(1) A: 50 Deposit(1) B: 5 Deposit(1) C: 20 Deposit(1) D: 25 Deposit(1) E: 25 Deposit(1) F: 25 Deposit(1) G: 25 Deposit(1) H: 25 Deposit(1) I: 25 Transfer(1) A-B: 5 (1) Transfer(1) A-L: 10 (1) Transfer(1) A-M: 5 (1) Transfer(1) B-N: 5 (1) Transfer(1) C-O: 5 (1) Transfer(1) H-O: 5 (1) Transfer(1) I-H: 5 (1) Exit(1) A: 5
// create CoordinatorTx CreateAccount for D, TokenId 2, used at SetPool0 for 'PoolTransfer(2) B-D: 3 (1)'
CreateAccountDepositCoordinator(2) D
> batchL1 > batchL1 > block `
// SetPool0 contains a set of transactions from the PoolL2
var SetPool0 = ` Type: PoolL2 PoolTransfer(1) A-B: 6 (1) PoolTransfer(1) B-C: 3 (1) PoolTransfer(1) C-A: 3 (1) PoolTransfer(1) A-B: 1 (1) PoolTransfer(2) A-B: 15 (1) PoolTransfer(2) B-D: 3 (1) PoolExit(1) A: 3 PoolTransfer(1) A-B: 6 (1) PoolTransfer(1) B-C: 3 (1) PoolTransfer(1) A-C: 3 (1) `
|