diff --git a/packages/eventindexer/ProverPool.json b/packages/eventindexer/ProverPool.json index a15e9ca6de..e69de29bb2 100644 --- a/packages/eventindexer/ProverPool.json +++ b/packages/eventindexer/ProverPool.json @@ -1,727 +0,0 @@ -[ - { - "inputs": [], - "name": "CHANGE_TOO_FREQUENT", - "type": "error" - }, - { - "inputs": [], - "name": "INVALID_PARAMS", - "type": "error" - }, - { - "inputs": [], - "name": "NO_MATURE_EXIT", - "type": "error" - }, - { - "inputs": [], - "name": "PROVER_NOT_GOOD_ENOUGH", - "type": "error" - }, - { - "inputs": [], - "name": "RESOLVER_DENIED", - "type": "error" - }, - { - "inputs": [], - "name": "RESOLVER_INVALID_ADDR", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "chainId", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - } - ], - "name": "RESOLVER_ZERO_ADDR", - "type": "error" - }, - { - "inputs": [], - "name": "UNAUTHORIZED", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "addressManager", - "type": "address" - } - ], - "name": "AddressManagerChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "addr", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "amount", - "type": "uint64" - } - ], - "name": "Exited", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint64", - "name": "blockId", - "type": "uint64" - }, - { - "indexed": true, - "internalType": "address", - "name": "addr", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "amount", - "type": "uint64" - } - ], - "name": "Slashed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "addr", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "amount", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "rewardPerGas", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "currentCapacity", - "type": "uint32" - } - ], - "name": "Staked", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "addr", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "amount", - "type": "uint64" - } - ], - "name": "Withdrawn", - "type": "event" - }, - { - "inputs": [], - "name": "EXIT_PERIOD", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MAX_NUM_PROVERS", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MIN_CAPACITY", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MIN_CHANGE_DELAY", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "MIN_STAKE_PER_CAPACITY", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "SLASH_MULTIPLIER", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "SLASH_POINTS", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "addressManager", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "blockId", - "type": "uint64" - }, - { - "internalType": "uint32", - "name": "feePerGas", - "type": "uint32" - } - ], - "name": "assignProver", - "outputs": [ - { - "internalType": "address", - "name": "prover", - "type": "address" - }, - { - "internalType": "uint32", - "name": "rewardPerGas", - "type": "uint32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "exit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getCapacity", - "outputs": [ - { - "internalType": "uint256", - "name": "capacity", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "feePerGas", - "type": "uint32" - } - ], - "name": "getProverWeights", - "outputs": [ - { - "internalType": "uint256[32]", - "name": "weights", - "type": "uint256[32]" - }, - { - "internalType": "uint32[32]", - "name": "erpg", - "type": "uint32[32]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getProvers", - "outputs": [ - { - "components": [ - { - "internalType": "uint64", - "name": "stakedAmount", - "type": "uint64" - }, - { - "internalType": "uint32", - "name": "rewardPerGas", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "currentCapacity", - "type": "uint32" - } - ], - "internalType": "struct ProverPool.Prover[]", - "name": "_provers", - "type": "tuple[]" - }, - { - "internalType": "address[]", - "name": "_stakers", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "addr", - "type": "address" - } - ], - "name": "getStaker", - "outputs": [ - { - "components": [ - { - "internalType": "uint64", - "name": "exitRequestedAt", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "exitAmount", - "type": "uint64" - }, - { - "internalType": "uint32", - "name": "maxCapacity", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "proverId", - "type": "uint32" - } - ], - "internalType": "struct ProverPool.Staker", - "name": "staker", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint64", - "name": "stakedAmount", - "type": "uint64" - }, - { - "internalType": "uint32", - "name": "rewardPerGas", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "currentCapacity", - "type": "uint32" - } - ], - "internalType": "struct ProverPool.Prover", - "name": "prover", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_addressManager", - "type": "address" - } - ], - "name": "init", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "proverIdToAddress", - "outputs": [ - { - "internalType": "address", - "name": "prover", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "provers", - "outputs": [ - { - "internalType": "uint64", - "name": "stakedAmount", - "type": "uint64" - }, - { - "internalType": "uint32", - "name": "rewardPerGas", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "currentCapacity", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "addr", - "type": "address" - } - ], - "name": "releaseProver", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "chainId", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bool", - "name": "allowZeroAddress", - "type": "bool" - } - ], - "name": "resolve", - "outputs": [ - { - "internalType": "address payable", - "name": "addr", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "internalType": "bool", - "name": "allowZeroAddress", - "type": "bool" - } - ], - "name": "resolve", - "outputs": [ - { - "internalType": "address payable", - "name": "addr", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newAddressManager", - "type": "address" - } - ], - "name": "setAddressManager", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "blockId", - "type": "uint64" - }, - { - "internalType": "address", - "name": "addr", - "type": "address" - }, - { - "internalType": "uint64", - "name": "proofReward", - "type": "uint64" - } - ], - "name": "slashProver", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "amount", - "type": "uint64" - }, - { - "internalType": "uint32", - "name": "rewardPerGas", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "maxCapacity", - "type": "uint32" - } - ], - "name": "stake", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "staker", - "type": "address" - } - ], - "name": "stakers", - "outputs": [ - { - "internalType": "uint64", - "name": "exitRequestedAt", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "exitAmount", - "type": "uint64" - }, - { - "internalType": "uint32", - "name": "maxCapacity", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "proverId", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] diff --git a/packages/eventindexer/TaikoL1.json b/packages/eventindexer/TaikoL1.json index 91d0105179..07774fcf17 100644 --- a/packages/eventindexer/TaikoL1.json +++ b/packages/eventindexer/TaikoL1.json @@ -11,53 +11,26 @@ }, { "inputs": [], - "name": "L1_BATCH_NOT_AUCTIONABLE", + "name": "L1_BLOCK_ID_MISMATCH", "type": "error" }, { "inputs": [], - "name": "L1_BLOCK_ID", + "name": "L1_BLOCK_ID_MISMATCH", "type": "error" }, { "inputs": [], - "name": "L1_BLOCK_ID", + "name": "L1_BLOCK_ID_MISMATCH", "type": "error" }, { "inputs": [], - "name": "L1_BLOCK_ID", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "expected", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "actual", - "type": "bytes32" - } - ], "name": "L1_EVIDENCE_MISMATCH", "type": "error" }, { - "inputs": [ - { - "internalType": "bytes32", - "name": "expected", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "actual", - "type": "bytes32" - } - ], + "inputs": [], "name": "L1_EVIDENCE_MISMATCH", "type": "error" }, @@ -83,12 +56,27 @@ }, { "inputs": [], - "name": "L1_INSUFFICIENT_TOKEN", + "name": "L1_INVALID_ASSIGNMENT", "type": "error" }, { "inputs": [], - "name": "L1_INVALID_BID", + "name": "L1_INVALID_ASSIGNMENT", + "type": "error" + }, + { + "inputs": [], + "name": "L1_INVALID_BLOCK_ID", + "type": "error" + }, + { + "inputs": [], + "name": "L1_INVALID_BLOCK_ID", + "type": "error" + }, + { + "inputs": [], + "name": "L1_INVALID_BLOCK_ID", "type": "error" }, { @@ -131,6 +119,16 @@ "name": "L1_INVALID_METADATA", "type": "error" }, + { + "inputs": [], + "name": "L1_INVALID_ORACLE_PROVER", + "type": "error" + }, + { + "inputs": [], + "name": "L1_INVALID_ORACLE_PROVER", + "type": "error" + }, { "inputs": [], "name": "L1_INVALID_PARAM", @@ -143,62 +141,62 @@ }, { "inputs": [], - "name": "L1_NOT_BETTER_BID", + "name": "L1_INVALID_PROPOSER", "type": "error" }, { "inputs": [], - "name": "L1_NOT_PROVEABLE", + "name": "L1_INVALID_PROPOSER", "type": "error" }, { "inputs": [], - "name": "L1_NOT_PROVEABLE", + "name": "L1_INVALID_PROVER", "type": "error" }, { "inputs": [], - "name": "L1_NOT_SPECIAL_PROVER", + "name": "L1_INVALID_PROVER", "type": "error" }, { "inputs": [], - "name": "L1_PERMISSION_DENIED", + "name": "L1_INVALID_PROVER_SIG", "type": "error" }, { "inputs": [], - "name": "L1_PERMISSION_DENIED", + "name": "L1_INVALID_PROVER_SIG", "type": "error" }, { "inputs": [], - "name": "L1_SAME_PROOF", + "name": "L1_NOT_PROVEABLE", "type": "error" }, { "inputs": [], - "name": "L1_SAME_PROOF", + "name": "L1_NOT_PROVEABLE", "type": "error" }, { "inputs": [], - "name": "L1_TOO_MANY_BLOCKS", + "name": "L1_SAME_PROOF", "type": "error" }, { "inputs": [], - "name": "L1_TOO_MANY_BLOCKS", + "name": "L1_SAME_PROOF", "type": "error" }, { "inputs": [], - "name": "L1_TOO_MANY_OPEN_BLOCKS", + "name": "L1_TOO_MANY_BLOCKS", "type": "error" }, { "inputs": [], - "name": "L1_TOO_MANY_OPEN_BLOCKS", + "name": "L1_TOO_MANY_BLOCKS", "type": "error" }, { @@ -243,12 +241,12 @@ }, { "inputs": [], - "name": "L1_UNAUTHORIZED", + "name": "L1_UNEXPECTED_FORK_CHOICE_ID", "type": "error" }, { "inputs": [], - "name": "L1_UNAUTHORIZED", + "name": "L1_UNEXPECTED_FORK_CHOICE_ID", "type": "error" }, { @@ -302,20 +300,14 @@ { "indexed": true, "internalType": "address", - "name": "assignedProver", + "name": "prover", "type": "address" }, { "indexed": false, - "internalType": "uint32", - "name": "rewardPerGas", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "feePerGas", - "type": "uint64" + "internalType": "uint256", + "name": "reward", + "type": "uint256" }, { "components": [ @@ -369,11 +361,6 @@ "name": "beneficiary", "type": "address" }, - { - "internalType": "address", - "name": "treasury", - "type": "address" - }, { "components": [ { @@ -418,20 +405,14 @@ { "indexed": true, "internalType": "address", - "name": "assignedProver", + "name": "prover", "type": "address" }, { "indexed": false, - "internalType": "uint32", - "name": "rewardPerGas", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "feePerGas", - "type": "uint64" + "internalType": "uint256", + "name": "reward", + "type": "uint256" }, { "components": [ @@ -485,11 +466,6 @@ "name": "beneficiary", "type": "address" }, - { - "internalType": "address", - "name": "treasury", - "type": "address" - }, { "components": [ { @@ -554,12 +530,6 @@ "internalType": "address", "name": "prover", "type": "address" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "parentGasUsed", - "type": "uint32" } ], "name": "BlockProven", @@ -597,12 +567,6 @@ "internalType": "address", "name": "prover", "type": "address" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "parentGasUsed", - "type": "uint32" } ], "name": "BlockProven", @@ -618,28 +582,16 @@ "type": "uint256" }, { - "indexed": false, - "internalType": "bytes32", - "name": "blockHash", - "type": "bytes32" - }, - { - "indexed": false, + "indexed": true, "internalType": "address", "name": "prover", "type": "address" }, { "indexed": false, - "internalType": "uint64", - "name": "blockFee", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "proofReward", - "type": "uint64" + "internalType": "bytes32", + "name": "blockHash", + "type": "bytes32" } ], "name": "BlockVerified", @@ -655,28 +607,16 @@ "type": "uint256" }, { - "indexed": false, - "internalType": "bytes32", - "name": "blockHash", - "type": "bytes32" - }, - { - "indexed": false, + "indexed": true, "internalType": "address", "name": "prover", "type": "address" }, { "indexed": false, - "internalType": "uint64", - "name": "blockFee", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "proofReward", - "type": "uint64" + "internalType": "bytes32", + "name": "blockHash", + "type": "bytes32" } ], "name": "BlockVerified", @@ -687,9 +627,9 @@ "inputs": [ { "indexed": true, - "internalType": "uint256", + "internalType": "uint64", "name": "srcHeight", - "type": "uint256" + "type": "uint64" }, { "indexed": false, @@ -712,9 +652,9 @@ "inputs": [ { "indexed": true, - "internalType": "uint256", + "internalType": "uint64", "name": "srcHeight", - "type": "uint256" + "type": "uint64" }, { "indexed": false, @@ -884,87 +824,60 @@ }, { "inputs": [ - { - "internalType": "uint256", - "name": "blockId", - "type": "uint256" - } - ], - "name": "getBlock", - "outputs": [ - { - "internalType": "bytes32", - "name": "_metaHash", - "type": "bytes32" - }, - { - "internalType": "uint32", - "name": "_gasLimit", - "type": "uint32" - }, - { - "internalType": "uint24", - "name": "_nextForkChoiceId", - "type": "uint24" - }, - { - "internalType": "uint24", - "name": "_verifiedForkChoiceId", - "type": "uint24" - }, - { - "internalType": "bool", - "name": "_proverReleased", - "type": "bool" - }, - { - "internalType": "address", - "name": "_proposer", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_feePerGas", - "type": "uint32" - }, { "internalType": "uint64", - "name": "_proposedAt", - "type": "uint64" - }, - { - "internalType": "address", - "name": "_assignedProver", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_rewardPerGas", - "type": "uint32" - }, - { - "internalType": "uint64", - "name": "_proofWindow", + "name": "blockId", "type": "uint64" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "gasLimit", - "type": "uint32" - } - ], - "name": "getBlockFee", + "name": "getBlock", "outputs": [ { - "internalType": "uint64", - "name": "", - "type": "uint64" + "components": [ + { + "internalType": "bytes32", + "name": "metaHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "prover", + "type": "address" + }, + { + "internalType": "uint64", + "name": "proposedAt", + "type": "uint64" + }, + { + "internalType": "uint16", + "name": "nextForkChoiceId", + "type": "uint16" + }, + { + "internalType": "uint16", + "name": "verifiedForkChoiceId", + "type": "uint16" + }, + { + "internalType": "uint64", + "name": "blockId", + "type": "uint64" + }, + { + "internalType": "uint96", + "name": "proofBond", + "type": "uint96" + }, + { + "internalType": "uint16", + "name": "proofWindow", + "type": "uint16" + } + ], + "internalType": "struct TaikoData.Block", + "name": "blk", + "type": "tuple" } ], "stateMutability": "view", @@ -987,19 +900,19 @@ "type": "bool" }, { - "internalType": "uint256", + "internalType": "uint64", "name": "blockMaxProposals", - "type": "uint256" + "type": "uint64" }, { - "internalType": "uint256", + "internalType": "uint64", "name": "blockRingBufferSize", - "type": "uint256" + "type": "uint64" }, { - "internalType": "uint256", + "internalType": "uint64", "name": "blockMaxVerificationsPerTx", - "type": "uint256" + "type": "uint64" }, { "internalType": "uint32", @@ -1012,20 +925,25 @@ "type": "uint32" }, { - "internalType": "uint64", - "name": "blockMaxTransactions", - "type": "uint64" - }, - { - "internalType": "uint64", + "internalType": "uint24", "name": "blockMaxTxListBytes", - "type": "uint64" + "type": "uint24" }, { "internalType": "uint256", "name": "blockTxListExpiry", "type": "uint256" }, + { + "internalType": "uint256", + "name": "proposerRewardPerSecond", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "proposerRewardMax", + "type": "uint256" + }, { "internalType": "uint256", "name": "proofRegularCooldown", @@ -1038,18 +956,18 @@ }, { "internalType": "uint16", - "name": "proofMinWindow", + "name": "proofWindow", "type": "uint16" }, { - "internalType": "uint16", - "name": "proofMaxWindow", - "type": "uint16" + "internalType": "uint96", + "name": "proofBond", + "type": "uint96" }, { - "internalType": "uint16", - "name": "proofWindowMultiplier", - "type": "uint16" + "internalType": "bool", + "name": "skipProverAssignmentVerificaiton", + "type": "bool" }, { "internalType": "uint256", @@ -1085,21 +1003,6 @@ "internalType": "uint256", "name": "ethDepositMaxFee", "type": "uint256" - }, - { - "internalType": "uint8", - "name": "rewardOpenMultipler", - "type": "uint8" - }, - { - "internalType": "uint32", - "name": "rewardOpenMaxCount", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "rewardMaxDelayPenalty", - "type": "uint32" } ], "internalType": "struct TaikoData.Config", @@ -1113,9 +1016,9 @@ { "inputs": [ { - "internalType": "uint256", + "internalType": "uint64", "name": "blockId", - "type": "uint256" + "type": "uint64" } ], "name": "getCrossChainBlockHash", @@ -1132,9 +1035,9 @@ { "inputs": [ { - "internalType": "uint256", + "internalType": "uint64", "name": "blockId", - "type": "uint256" + "type": "uint64" } ], "name": "getCrossChainSignalRoot", @@ -1151,19 +1054,14 @@ { "inputs": [ { - "internalType": "uint256", + "internalType": "uint64", "name": "blockId", - "type": "uint256" + "type": "uint64" }, { "internalType": "bytes32", "name": "parentHash", "type": "bytes32" - }, - { - "internalType": "uint32", - "name": "parentGasUsed", - "type": "uint32" } ], "name": "getForkChoice", @@ -1194,11 +1092,6 @@ "internalType": "uint64", "name": "provenAt", "type": "uint64" - }, - { - "internalType": "uint32", - "name": "gasUsed", - "type": "uint32" } ], "internalType": "struct TaikoData.ForkChoice", @@ -1215,11 +1108,6 @@ "outputs": [ { "components": [ - { - "internalType": "uint32", - "name": "feePerGas", - "type": "uint32" - }, { "internalType": "uint64", "name": "genesisHeight", @@ -1308,16 +1196,6 @@ "internalType": "bytes32", "name": "_genesisBlockHash", "type": "bytes32" - }, - { - "internalType": "uint32", - "name": "_initFeePerGas", - "type": "uint32" - }, - { - "internalType": "uint16", - "name": "_initAvgProofDelay", - "type": "uint16" } ], "name": "init", @@ -1345,6 +1223,11 @@ "name": "input", "type": "bytes" }, + { + "internalType": "bytes", + "name": "assignment", + "type": "bytes" + }, { "internalType": "bytes", "name": "txList", @@ -1405,11 +1288,6 @@ "name": "beneficiary", "type": "address" }, - { - "internalType": "address", - "name": "treasury", - "type": "address" - }, { "components": [ { @@ -1438,15 +1316,15 @@ "type": "tuple" } ], - "stateMutability": "nonpayable", + "stateMutability": "payable", "type": "function" }, { "inputs": [ { - "internalType": "uint256", + "internalType": "uint64", "name": "blockId", - "type": "uint256" + "type": "uint64" }, { "internalType": "bytes", @@ -1537,69 +1415,58 @@ "name": "state", "outputs": [ { - "internalType": "uint64", - "name": "genesisHeight", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "genesisTimestamp", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "__reserved70", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "__reserved71", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "numOpenBlocks", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "numEthDeposits", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "numBlocks", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "nextEthDepositToProcess", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "lastVerifiedAt", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "lastVerifiedBlockId", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "__reserved90", - "type": "uint64" - }, - { - "internalType": "uint32", - "name": "feePerGas", - "type": "uint32" + "components": [ + { + "internalType": "uint64", + "name": "genesisHeight", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "genesisTimestamp", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "numEthDeposits", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "nextEthDepositToProcess", + "type": "uint64" + } + ], + "internalType": "struct TaikoData.SlotA", + "name": "slotA", + "type": "tuple" }, { - "internalType": "uint16", - "name": "avgProofDelay", - "type": "uint16" + "components": [ + { + "internalType": "uint64", + "name": "numBlocks", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "nextEthDepositToProcess", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "lastVerifiedAt", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "lastVerifiedBlockId", + "type": "uint64" + } + ], + "internalType": "struct TaikoData.SlotB", + "name": "slotB", + "type": "tuple" } ], "stateMutability": "view", @@ -1621,9 +1488,9 @@ { "inputs": [ { - "internalType": "uint256", + "internalType": "uint64", "name": "maxBlocks", - "type": "uint256" + "type": "uint64" } ], "name": "verifyBlocks", diff --git a/packages/eventindexer/abigen.sh b/packages/eventindexer/abigen.sh index dbd1d00c00..57f5ec9205 100755 --- a/packages/eventindexer/abigen.sh +++ b/packages/eventindexer/abigen.sh @@ -5,9 +5,9 @@ if [ ! -d "../protocol/out" ]; then exit 1 fi -paths=("TaikoL1.sol" "ProverPool.sol" "Bridge.sol") +paths=("TaikoL1.sol" "Bridge.sol") -names=("TaikoL1" "ProverPool" "Bridge") +names=("TaikoL1" "Bridge") for (( i = 0; i < ${#paths[@]}; ++i )); diff --git a/packages/eventindexer/cli/cli.go b/packages/eventindexer/cli/cli.go index b5c7e3fba3..19cd47d2ac 100644 --- a/packages/eventindexer/cli/cli.go +++ b/packages/eventindexer/cli/cli.go @@ -142,7 +142,6 @@ func Run( EthClient: ethClient, RPCClient: rpcClient, SrcTaikoAddress: common.HexToAddress(os.Getenv("L1_TAIKO_ADDRESS")), - ProverPoolAddress: common.HexToAddress(os.Getenv("PROVER_POOL_ADDRESS")), SrcBridgeAddress: common.HexToAddress(os.Getenv("BRIDGE_ADDRESS")), SrcSwapAddresses: stringsToAddresses(strings.Split(os.Getenv("SWAP_ADDRESSES"), ",")), BlockBatchSize: uint64(blockBatchSize), @@ -283,13 +282,12 @@ func newHTTPServer(db eventindexer.DB, l1EthClient *ethclient.Client) (*http.Ser } srv, err := http.NewServer(http.NewServerOpts{ - EventRepo: eventRepo, - StatRepo: statRepo, - NFTBalanceRepo: nftBalanceRepo, - Echo: echo.New(), - CorsOrigins: strings.Split(os.Getenv("CORS_ORIGINS"), ","), - EthClient: l1EthClient, - ProverPoolAddress: common.HexToAddress(os.Getenv("PROVER_POOL_ADDRESS")), + EventRepo: eventRepo, + StatRepo: statRepo, + NFTBalanceRepo: nftBalanceRepo, + Echo: echo.New(), + CorsOrigins: strings.Split(os.Getenv("CORS_ORIGINS"), ","), + EthClient: l1EthClient, }) if err != nil { return nil, err diff --git a/packages/eventindexer/contracts/proverpool/ProverPool.go b/packages/eventindexer/contracts/proverpool/ProverPool.go deleted file mode 100644 index 01982db737..0000000000 --- a/packages/eventindexer/contracts/proverpool/ProverPool.go +++ /dev/null @@ -1,2071 +0,0 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - -package proverpool - -import ( - "errors" - "math/big" - "strings" - - ethereum "github.com/ethereum/go-ethereum" - "github.com/ethereum/go-ethereum/accounts/abi" - "github.com/ethereum/go-ethereum/accounts/abi/bind" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/event" -) - -// Reference imports to suppress errors if they are not otherwise used. -var ( - _ = errors.New - _ = big.NewInt - _ = strings.NewReader - _ = ethereum.NotFound - _ = bind.Bind - _ = common.Big1 - _ = types.BloomLookup - _ = event.NewSubscription - _ = abi.ConvertType -) - -// ProverPoolProver is an auto generated low-level Go binding around an user-defined struct. -type ProverPoolProver struct { - StakedAmount uint64 - RewardPerGas uint32 - CurrentCapacity uint32 -} - -// ProverPoolStaker is an auto generated low-level Go binding around an user-defined struct. -type ProverPoolStaker struct { - ExitRequestedAt uint64 - ExitAmount uint64 - MaxCapacity uint32 - ProverId uint32 -} - -// ProverPoolMetaData contains all meta data concerning the ProverPool contract. -var ProverPoolMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"name\":\"CHANGE_TOO_FREQUENT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_PARAMS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NO_MATURE_EXIT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PROVER_NOT_GOOD_ENOUGH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RESOLVER_DENIED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RESOLVER_INVALID_ADDR\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"}],\"name\":\"RESOLVER_ZERO_ADDR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UNAUTHORIZED\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addressManager\",\"type\":\"address\"}],\"name\":\"AddressManagerChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"Exited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"blockId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"Slashed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"rewardPerGas\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"currentCapacity\",\"type\":\"uint32\"}],\"name\":\"Staked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"Withdrawn\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"EXIT_PERIOD\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_NUM_PROVERS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_CAPACITY\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_CHANGE_DELAY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_STAKE_PER_CAPACITY\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASH_MULTIPLIER\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SLASH_POINTS\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"addressManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blockId\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"feePerGas\",\"type\":\"uint32\"}],\"name\":\"assignProver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"prover\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"rewardPerGas\",\"type\":\"uint32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"exit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCapacity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"capacity\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"feePerGas\",\"type\":\"uint32\"}],\"name\":\"getProverWeights\",\"outputs\":[{\"internalType\":\"uint256[32]\",\"name\":\"weights\",\"type\":\"uint256[32]\"},{\"internalType\":\"uint32[32]\",\"name\":\"erpg\",\"type\":\"uint32[32]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getProvers\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"stakedAmount\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"rewardPerGas\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"currentCapacity\",\"type\":\"uint32\"}],\"internalType\":\"structProverPool.Prover[]\",\"name\":\"_provers\",\"type\":\"tuple[]\"},{\"internalType\":\"address[]\",\"name\":\"_stakers\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getStaker\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"exitRequestedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"exitAmount\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"maxCapacity\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"proverId\",\"type\":\"uint32\"}],\"internalType\":\"structProverPool.Staker\",\"name\":\"staker\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"stakedAmount\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"rewardPerGas\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"currentCapacity\",\"type\":\"uint32\"}],\"internalType\":\"structProverPool.Prover\",\"name\":\"prover\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addressManager\",\"type\":\"address\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"proverIdToAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"prover\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"provers\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"stakedAmount\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"rewardPerGas\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"currentCapacity\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"releaseProver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"allowZeroAddress\",\"type\":\"bool\"}],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"allowZeroAddress\",\"type\":\"bool\"}],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAddressManager\",\"type\":\"address\"}],\"name\":\"setAddressManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blockId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"proofReward\",\"type\":\"uint64\"}],\"name\":\"slashProver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"rewardPerGas\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maxCapacity\",\"type\":\"uint32\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"staker\",\"type\":\"address\"}],\"name\":\"stakers\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"exitRequestedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"exitAmount\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"maxCapacity\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"proverId\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", -} - -// ProverPoolABI is the input ABI used to generate the binding from. -// Deprecated: Use ProverPoolMetaData.ABI instead. -var ProverPoolABI = ProverPoolMetaData.ABI - -// ProverPool is an auto generated Go binding around an Ethereum contract. -type ProverPool struct { - ProverPoolCaller // Read-only binding to the contract - ProverPoolTransactor // Write-only binding to the contract - ProverPoolFilterer // Log filterer for contract events -} - -// ProverPoolCaller is an auto generated read-only Go binding around an Ethereum contract. -type ProverPoolCaller struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// ProverPoolTransactor is an auto generated write-only Go binding around an Ethereum contract. -type ProverPoolTransactor struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// ProverPoolFilterer is an auto generated log filtering Go binding around an Ethereum contract events. -type ProverPoolFilterer struct { - contract *bind.BoundContract // Generic contract wrapper for the low level calls -} - -// ProverPoolSession is an auto generated Go binding around an Ethereum contract, -// with pre-set call and transact options. -type ProverPoolSession struct { - Contract *ProverPool // Generic contract binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// ProverPoolCallerSession is an auto generated read-only Go binding around an Ethereum contract, -// with pre-set call options. -type ProverPoolCallerSession struct { - Contract *ProverPoolCaller // Generic contract caller binding to set the session for - CallOpts bind.CallOpts // Call options to use throughout this session -} - -// ProverPoolTransactorSession is an auto generated write-only Go binding around an Ethereum contract, -// with pre-set transact options. -type ProverPoolTransactorSession struct { - Contract *ProverPoolTransactor // Generic contract transactor binding to set the session for - TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session -} - -// ProverPoolRaw is an auto generated low-level Go binding around an Ethereum contract. -type ProverPoolRaw struct { - Contract *ProverPool // Generic contract binding to access the raw methods on -} - -// ProverPoolCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. -type ProverPoolCallerRaw struct { - Contract *ProverPoolCaller // Generic read-only contract binding to access the raw methods on -} - -// ProverPoolTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. -type ProverPoolTransactorRaw struct { - Contract *ProverPoolTransactor // Generic write-only contract binding to access the raw methods on -} - -// NewProverPool creates a new instance of ProverPool, bound to a specific deployed contract. -func NewProverPool(address common.Address, backend bind.ContractBackend) (*ProverPool, error) { - contract, err := bindProverPool(address, backend, backend, backend) - if err != nil { - return nil, err - } - return &ProverPool{ProverPoolCaller: ProverPoolCaller{contract: contract}, ProverPoolTransactor: ProverPoolTransactor{contract: contract}, ProverPoolFilterer: ProverPoolFilterer{contract: contract}}, nil -} - -// NewProverPoolCaller creates a new read-only instance of ProverPool, bound to a specific deployed contract. -func NewProverPoolCaller(address common.Address, caller bind.ContractCaller) (*ProverPoolCaller, error) { - contract, err := bindProverPool(address, caller, nil, nil) - if err != nil { - return nil, err - } - return &ProverPoolCaller{contract: contract}, nil -} - -// NewProverPoolTransactor creates a new write-only instance of ProverPool, bound to a specific deployed contract. -func NewProverPoolTransactor(address common.Address, transactor bind.ContractTransactor) (*ProverPoolTransactor, error) { - contract, err := bindProverPool(address, nil, transactor, nil) - if err != nil { - return nil, err - } - return &ProverPoolTransactor{contract: contract}, nil -} - -// NewProverPoolFilterer creates a new log filterer instance of ProverPool, bound to a specific deployed contract. -func NewProverPoolFilterer(address common.Address, filterer bind.ContractFilterer) (*ProverPoolFilterer, error) { - contract, err := bindProverPool(address, nil, nil, filterer) - if err != nil { - return nil, err - } - return &ProverPoolFilterer{contract: contract}, nil -} - -// bindProverPool binds a generic wrapper to an already deployed contract. -func bindProverPool(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { - parsed, err := ProverPoolMetaData.GetAbi() - if err != nil { - return nil, err - } - return bind.NewBoundContract(address, *parsed, caller, transactor, filterer), nil -} - -// Call invokes the (constant) contract method with params as input values and -// sets the output to result. The result type might be a single field for simple -// returns, a slice of interfaces for anonymous returns and a struct for named -// returns. -func (_ProverPool *ProverPoolRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _ProverPool.Contract.ProverPoolCaller.contract.Call(opts, result, method, params...) -} - -// Transfer initiates a plain transaction to move funds to the contract, calling -// its default method if one is available. -func (_ProverPool *ProverPoolRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _ProverPool.Contract.ProverPoolTransactor.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_ProverPool *ProverPoolRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _ProverPool.Contract.ProverPoolTransactor.contract.Transact(opts, method, params...) -} - -// Call invokes the (constant) contract method with params as input values and -// sets the output to result. The result type might be a single field for simple -// returns, a slice of interfaces for anonymous returns and a struct for named -// returns. -func (_ProverPool *ProverPoolCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { - return _ProverPool.Contract.contract.Call(opts, result, method, params...) -} - -// Transfer initiates a plain transaction to move funds to the contract, calling -// its default method if one is available. -func (_ProverPool *ProverPoolTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { - return _ProverPool.Contract.contract.Transfer(opts) -} - -// Transact invokes the (paid) contract method with params as input values. -func (_ProverPool *ProverPoolTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { - return _ProverPool.Contract.contract.Transact(opts, method, params...) -} - -// EXITPERIOD is a free data retrieval call binding the contract method 0xc04b5f65. -// -// Solidity: function EXIT_PERIOD() view returns(uint64) -func (_ProverPool *ProverPoolCaller) EXITPERIOD(opts *bind.CallOpts) (uint64, error) { - var out []interface{} - err := _ProverPool.contract.Call(opts, &out, "EXIT_PERIOD") - - if err != nil { - return *new(uint64), err - } - - out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) - - return out0, err - -} - -// EXITPERIOD is a free data retrieval call binding the contract method 0xc04b5f65. -// -// Solidity: function EXIT_PERIOD() view returns(uint64) -func (_ProverPool *ProverPoolSession) EXITPERIOD() (uint64, error) { - return _ProverPool.Contract.EXITPERIOD(&_ProverPool.CallOpts) -} - -// EXITPERIOD is a free data retrieval call binding the contract method 0xc04b5f65. -// -// Solidity: function EXIT_PERIOD() view returns(uint64) -func (_ProverPool *ProverPoolCallerSession) EXITPERIOD() (uint64, error) { - return _ProverPool.Contract.EXITPERIOD(&_ProverPool.CallOpts) -} - -// MAXNUMPROVERS is a free data retrieval call binding the contract method 0x62c0fd98. -// -// Solidity: function MAX_NUM_PROVERS() view returns(uint256) -func (_ProverPool *ProverPoolCaller) MAXNUMPROVERS(opts *bind.CallOpts) (*big.Int, error) { - var out []interface{} - err := _ProverPool.contract.Call(opts, &out, "MAX_NUM_PROVERS") - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// MAXNUMPROVERS is a free data retrieval call binding the contract method 0x62c0fd98. -// -// Solidity: function MAX_NUM_PROVERS() view returns(uint256) -func (_ProverPool *ProverPoolSession) MAXNUMPROVERS() (*big.Int, error) { - return _ProverPool.Contract.MAXNUMPROVERS(&_ProverPool.CallOpts) -} - -// MAXNUMPROVERS is a free data retrieval call binding the contract method 0x62c0fd98. -// -// Solidity: function MAX_NUM_PROVERS() view returns(uint256) -func (_ProverPool *ProverPoolCallerSession) MAXNUMPROVERS() (*big.Int, error) { - return _ProverPool.Contract.MAXNUMPROVERS(&_ProverPool.CallOpts) -} - -// MINCAPACITY is a free data retrieval call binding the contract method 0x4256cae6. -// -// Solidity: function MIN_CAPACITY() view returns(uint32) -func (_ProverPool *ProverPoolCaller) MINCAPACITY(opts *bind.CallOpts) (uint32, error) { - var out []interface{} - err := _ProverPool.contract.Call(opts, &out, "MIN_CAPACITY") - - if err != nil { - return *new(uint32), err - } - - out0 := *abi.ConvertType(out[0], new(uint32)).(*uint32) - - return out0, err - -} - -// MINCAPACITY is a free data retrieval call binding the contract method 0x4256cae6. -// -// Solidity: function MIN_CAPACITY() view returns(uint32) -func (_ProverPool *ProverPoolSession) MINCAPACITY() (uint32, error) { - return _ProverPool.Contract.MINCAPACITY(&_ProverPool.CallOpts) -} - -// MINCAPACITY is a free data retrieval call binding the contract method 0x4256cae6. -// -// Solidity: function MIN_CAPACITY() view returns(uint32) -func (_ProverPool *ProverPoolCallerSession) MINCAPACITY() (uint32, error) { - return _ProverPool.Contract.MINCAPACITY(&_ProverPool.CallOpts) -} - -// MINCHANGEDELAY is a free data retrieval call binding the contract method 0x71aff3a6. -// -// Solidity: function MIN_CHANGE_DELAY() view returns(uint256) -func (_ProverPool *ProverPoolCaller) MINCHANGEDELAY(opts *bind.CallOpts) (*big.Int, error) { - var out []interface{} - err := _ProverPool.contract.Call(opts, &out, "MIN_CHANGE_DELAY") - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// MINCHANGEDELAY is a free data retrieval call binding the contract method 0x71aff3a6. -// -// Solidity: function MIN_CHANGE_DELAY() view returns(uint256) -func (_ProverPool *ProverPoolSession) MINCHANGEDELAY() (*big.Int, error) { - return _ProverPool.Contract.MINCHANGEDELAY(&_ProverPool.CallOpts) -} - -// MINCHANGEDELAY is a free data retrieval call binding the contract method 0x71aff3a6. -// -// Solidity: function MIN_CHANGE_DELAY() view returns(uint256) -func (_ProverPool *ProverPoolCallerSession) MINCHANGEDELAY() (*big.Int, error) { - return _ProverPool.Contract.MINCHANGEDELAY(&_ProverPool.CallOpts) -} - -// MINSTAKEPERCAPACITY is a free data retrieval call binding the contract method 0x7d62c057. -// -// Solidity: function MIN_STAKE_PER_CAPACITY() view returns(uint64) -func (_ProverPool *ProverPoolCaller) MINSTAKEPERCAPACITY(opts *bind.CallOpts) (uint64, error) { - var out []interface{} - err := _ProverPool.contract.Call(opts, &out, "MIN_STAKE_PER_CAPACITY") - - if err != nil { - return *new(uint64), err - } - - out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) - - return out0, err - -} - -// MINSTAKEPERCAPACITY is a free data retrieval call binding the contract method 0x7d62c057. -// -// Solidity: function MIN_STAKE_PER_CAPACITY() view returns(uint64) -func (_ProverPool *ProverPoolSession) MINSTAKEPERCAPACITY() (uint64, error) { - return _ProverPool.Contract.MINSTAKEPERCAPACITY(&_ProverPool.CallOpts) -} - -// MINSTAKEPERCAPACITY is a free data retrieval call binding the contract method 0x7d62c057. -// -// Solidity: function MIN_STAKE_PER_CAPACITY() view returns(uint64) -func (_ProverPool *ProverPoolCallerSession) MINSTAKEPERCAPACITY() (uint64, error) { - return _ProverPool.Contract.MINSTAKEPERCAPACITY(&_ProverPool.CallOpts) -} - -// SLASHMULTIPLIER is a free data retrieval call binding the contract method 0x55f1a57c. -// -// Solidity: function SLASH_MULTIPLIER() view returns(uint64) -func (_ProverPool *ProverPoolCaller) SLASHMULTIPLIER(opts *bind.CallOpts) (uint64, error) { - var out []interface{} - err := _ProverPool.contract.Call(opts, &out, "SLASH_MULTIPLIER") - - if err != nil { - return *new(uint64), err - } - - out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) - - return out0, err - -} - -// SLASHMULTIPLIER is a free data retrieval call binding the contract method 0x55f1a57c. -// -// Solidity: function SLASH_MULTIPLIER() view returns(uint64) -func (_ProverPool *ProverPoolSession) SLASHMULTIPLIER() (uint64, error) { - return _ProverPool.Contract.SLASHMULTIPLIER(&_ProverPool.CallOpts) -} - -// SLASHMULTIPLIER is a free data retrieval call binding the contract method 0x55f1a57c. -// -// Solidity: function SLASH_MULTIPLIER() view returns(uint64) -func (_ProverPool *ProverPoolCallerSession) SLASHMULTIPLIER() (uint64, error) { - return _ProverPool.Contract.SLASHMULTIPLIER(&_ProverPool.CallOpts) -} - -// SLASHPOINTS is a free data retrieval call binding the contract method 0xdd9fb65c. -// -// Solidity: function SLASH_POINTS() view returns(uint64) -func (_ProverPool *ProverPoolCaller) SLASHPOINTS(opts *bind.CallOpts) (uint64, error) { - var out []interface{} - err := _ProverPool.contract.Call(opts, &out, "SLASH_POINTS") - - if err != nil { - return *new(uint64), err - } - - out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) - - return out0, err - -} - -// SLASHPOINTS is a free data retrieval call binding the contract method 0xdd9fb65c. -// -// Solidity: function SLASH_POINTS() view returns(uint64) -func (_ProverPool *ProverPoolSession) SLASHPOINTS() (uint64, error) { - return _ProverPool.Contract.SLASHPOINTS(&_ProverPool.CallOpts) -} - -// SLASHPOINTS is a free data retrieval call binding the contract method 0xdd9fb65c. -// -// Solidity: function SLASH_POINTS() view returns(uint64) -func (_ProverPool *ProverPoolCallerSession) SLASHPOINTS() (uint64, error) { - return _ProverPool.Contract.SLASHPOINTS(&_ProverPool.CallOpts) -} - -// AddressManager is a free data retrieval call binding the contract method 0x3ab76e9f. -// -// Solidity: function addressManager() view returns(address) -func (_ProverPool *ProverPoolCaller) AddressManager(opts *bind.CallOpts) (common.Address, error) { - var out []interface{} - err := _ProverPool.contract.Call(opts, &out, "addressManager") - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -// AddressManager is a free data retrieval call binding the contract method 0x3ab76e9f. -// -// Solidity: function addressManager() view returns(address) -func (_ProverPool *ProverPoolSession) AddressManager() (common.Address, error) { - return _ProverPool.Contract.AddressManager(&_ProverPool.CallOpts) -} - -// AddressManager is a free data retrieval call binding the contract method 0x3ab76e9f. -// -// Solidity: function addressManager() view returns(address) -func (_ProverPool *ProverPoolCallerSession) AddressManager() (common.Address, error) { - return _ProverPool.Contract.AddressManager(&_ProverPool.CallOpts) -} - -// GetCapacity is a free data retrieval call binding the contract method 0xc40000d4. -// -// Solidity: function getCapacity() view returns(uint256 capacity) -func (_ProverPool *ProverPoolCaller) GetCapacity(opts *bind.CallOpts) (*big.Int, error) { - var out []interface{} - err := _ProverPool.contract.Call(opts, &out, "getCapacity") - - if err != nil { - return *new(*big.Int), err - } - - out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) - - return out0, err - -} - -// GetCapacity is a free data retrieval call binding the contract method 0xc40000d4. -// -// Solidity: function getCapacity() view returns(uint256 capacity) -func (_ProverPool *ProverPoolSession) GetCapacity() (*big.Int, error) { - return _ProverPool.Contract.GetCapacity(&_ProverPool.CallOpts) -} - -// GetCapacity is a free data retrieval call binding the contract method 0xc40000d4. -// -// Solidity: function getCapacity() view returns(uint256 capacity) -func (_ProverPool *ProverPoolCallerSession) GetCapacity() (*big.Int, error) { - return _ProverPool.Contract.GetCapacity(&_ProverPool.CallOpts) -} - -// GetProverWeights is a free data retrieval call binding the contract method 0x3acba718. -// -// Solidity: function getProverWeights(uint32 feePerGas) view returns(uint256[32] weights, uint32[32] erpg) -func (_ProverPool *ProverPoolCaller) GetProverWeights(opts *bind.CallOpts, feePerGas uint32) (struct { - Weights [32]*big.Int - Erpg [32]uint32 -}, error) { - var out []interface{} - err := _ProverPool.contract.Call(opts, &out, "getProverWeights", feePerGas) - - outstruct := new(struct { - Weights [32]*big.Int - Erpg [32]uint32 - }) - if err != nil { - return *outstruct, err - } - - outstruct.Weights = *abi.ConvertType(out[0], new([32]*big.Int)).(*[32]*big.Int) - outstruct.Erpg = *abi.ConvertType(out[1], new([32]uint32)).(*[32]uint32) - - return *outstruct, err - -} - -// GetProverWeights is a free data retrieval call binding the contract method 0x3acba718. -// -// Solidity: function getProverWeights(uint32 feePerGas) view returns(uint256[32] weights, uint32[32] erpg) -func (_ProverPool *ProverPoolSession) GetProverWeights(feePerGas uint32) (struct { - Weights [32]*big.Int - Erpg [32]uint32 -}, error) { - return _ProverPool.Contract.GetProverWeights(&_ProverPool.CallOpts, feePerGas) -} - -// GetProverWeights is a free data retrieval call binding the contract method 0x3acba718. -// -// Solidity: function getProverWeights(uint32 feePerGas) view returns(uint256[32] weights, uint32[32] erpg) -func (_ProverPool *ProverPoolCallerSession) GetProverWeights(feePerGas uint32) (struct { - Weights [32]*big.Int - Erpg [32]uint32 -}, error) { - return _ProverPool.Contract.GetProverWeights(&_ProverPool.CallOpts, feePerGas) -} - -// GetProvers is a free data retrieval call binding the contract method 0xc0bfd036. -// -// Solidity: function getProvers() view returns((uint64,uint32,uint32)[] _provers, address[] _stakers) -func (_ProverPool *ProverPoolCaller) GetProvers(opts *bind.CallOpts) (struct { - Provers []ProverPoolProver - Stakers []common.Address -}, error) { - var out []interface{} - err := _ProverPool.contract.Call(opts, &out, "getProvers") - - outstruct := new(struct { - Provers []ProverPoolProver - Stakers []common.Address - }) - if err != nil { - return *outstruct, err - } - - outstruct.Provers = *abi.ConvertType(out[0], new([]ProverPoolProver)).(*[]ProverPoolProver) - outstruct.Stakers = *abi.ConvertType(out[1], new([]common.Address)).(*[]common.Address) - - return *outstruct, err - -} - -// GetProvers is a free data retrieval call binding the contract method 0xc0bfd036. -// -// Solidity: function getProvers() view returns((uint64,uint32,uint32)[] _provers, address[] _stakers) -func (_ProverPool *ProverPoolSession) GetProvers() (struct { - Provers []ProverPoolProver - Stakers []common.Address -}, error) { - return _ProverPool.Contract.GetProvers(&_ProverPool.CallOpts) -} - -// GetProvers is a free data retrieval call binding the contract method 0xc0bfd036. -// -// Solidity: function getProvers() view returns((uint64,uint32,uint32)[] _provers, address[] _stakers) -func (_ProverPool *ProverPoolCallerSession) GetProvers() (struct { - Provers []ProverPoolProver - Stakers []common.Address -}, error) { - return _ProverPool.Contract.GetProvers(&_ProverPool.CallOpts) -} - -// GetStaker is a free data retrieval call binding the contract method 0xa23c44b1. -// -// Solidity: function getStaker(address addr) view returns((uint64,uint64,uint32,uint32) staker, (uint64,uint32,uint32) prover) -func (_ProverPool *ProverPoolCaller) GetStaker(opts *bind.CallOpts, addr common.Address) (struct { - Staker ProverPoolStaker - Prover ProverPoolProver -}, error) { - var out []interface{} - err := _ProverPool.contract.Call(opts, &out, "getStaker", addr) - - outstruct := new(struct { - Staker ProverPoolStaker - Prover ProverPoolProver - }) - if err != nil { - return *outstruct, err - } - - outstruct.Staker = *abi.ConvertType(out[0], new(ProverPoolStaker)).(*ProverPoolStaker) - outstruct.Prover = *abi.ConvertType(out[1], new(ProverPoolProver)).(*ProverPoolProver) - - return *outstruct, err - -} - -// GetStaker is a free data retrieval call binding the contract method 0xa23c44b1. -// -// Solidity: function getStaker(address addr) view returns((uint64,uint64,uint32,uint32) staker, (uint64,uint32,uint32) prover) -func (_ProverPool *ProverPoolSession) GetStaker(addr common.Address) (struct { - Staker ProverPoolStaker - Prover ProverPoolProver -}, error) { - return _ProverPool.Contract.GetStaker(&_ProverPool.CallOpts, addr) -} - -// GetStaker is a free data retrieval call binding the contract method 0xa23c44b1. -// -// Solidity: function getStaker(address addr) view returns((uint64,uint64,uint32,uint32) staker, (uint64,uint32,uint32) prover) -func (_ProverPool *ProverPoolCallerSession) GetStaker(addr common.Address) (struct { - Staker ProverPoolStaker - Prover ProverPoolProver -}, error) { - return _ProverPool.Contract.GetStaker(&_ProverPool.CallOpts, addr) -} - -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. -// -// Solidity: function owner() view returns(address) -func (_ProverPool *ProverPoolCaller) Owner(opts *bind.CallOpts) (common.Address, error) { - var out []interface{} - err := _ProverPool.contract.Call(opts, &out, "owner") - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. -// -// Solidity: function owner() view returns(address) -func (_ProverPool *ProverPoolSession) Owner() (common.Address, error) { - return _ProverPool.Contract.Owner(&_ProverPool.CallOpts) -} - -// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. -// -// Solidity: function owner() view returns(address) -func (_ProverPool *ProverPoolCallerSession) Owner() (common.Address, error) { - return _ProverPool.Contract.Owner(&_ProverPool.CallOpts) -} - -// ProverIdToAddress is a free data retrieval call binding the contract method 0xf064afa0. -// -// Solidity: function proverIdToAddress(uint256 id) view returns(address prover) -func (_ProverPool *ProverPoolCaller) ProverIdToAddress(opts *bind.CallOpts, id *big.Int) (common.Address, error) { - var out []interface{} - err := _ProverPool.contract.Call(opts, &out, "proverIdToAddress", id) - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -// ProverIdToAddress is a free data retrieval call binding the contract method 0xf064afa0. -// -// Solidity: function proverIdToAddress(uint256 id) view returns(address prover) -func (_ProverPool *ProverPoolSession) ProverIdToAddress(id *big.Int) (common.Address, error) { - return _ProverPool.Contract.ProverIdToAddress(&_ProverPool.CallOpts, id) -} - -// ProverIdToAddress is a free data retrieval call binding the contract method 0xf064afa0. -// -// Solidity: function proverIdToAddress(uint256 id) view returns(address prover) -func (_ProverPool *ProverPoolCallerSession) ProverIdToAddress(id *big.Int) (common.Address, error) { - return _ProverPool.Contract.ProverIdToAddress(&_ProverPool.CallOpts, id) -} - -// Provers is a free data retrieval call binding the contract method 0xfd1190ea. -// -// Solidity: function provers(uint256 ) view returns(uint64 stakedAmount, uint32 rewardPerGas, uint32 currentCapacity) -func (_ProverPool *ProverPoolCaller) Provers(opts *bind.CallOpts, arg0 *big.Int) (struct { - StakedAmount uint64 - RewardPerGas uint32 - CurrentCapacity uint32 -}, error) { - var out []interface{} - err := _ProverPool.contract.Call(opts, &out, "provers", arg0) - - outstruct := new(struct { - StakedAmount uint64 - RewardPerGas uint32 - CurrentCapacity uint32 - }) - if err != nil { - return *outstruct, err - } - - outstruct.StakedAmount = *abi.ConvertType(out[0], new(uint64)).(*uint64) - outstruct.RewardPerGas = *abi.ConvertType(out[1], new(uint32)).(*uint32) - outstruct.CurrentCapacity = *abi.ConvertType(out[2], new(uint32)).(*uint32) - - return *outstruct, err - -} - -// Provers is a free data retrieval call binding the contract method 0xfd1190ea. -// -// Solidity: function provers(uint256 ) view returns(uint64 stakedAmount, uint32 rewardPerGas, uint32 currentCapacity) -func (_ProverPool *ProverPoolSession) Provers(arg0 *big.Int) (struct { - StakedAmount uint64 - RewardPerGas uint32 - CurrentCapacity uint32 -}, error) { - return _ProverPool.Contract.Provers(&_ProverPool.CallOpts, arg0) -} - -// Provers is a free data retrieval call binding the contract method 0xfd1190ea. -// -// Solidity: function provers(uint256 ) view returns(uint64 stakedAmount, uint32 rewardPerGas, uint32 currentCapacity) -func (_ProverPool *ProverPoolCallerSession) Provers(arg0 *big.Int) (struct { - StakedAmount uint64 - RewardPerGas uint32 - CurrentCapacity uint32 -}, error) { - return _ProverPool.Contract.Provers(&_ProverPool.CallOpts, arg0) -} - -// Resolve is a free data retrieval call binding the contract method 0x6c6563f6. -// -// Solidity: function resolve(uint256 chainId, bytes32 name, bool allowZeroAddress) view returns(address addr) -func (_ProverPool *ProverPoolCaller) Resolve(opts *bind.CallOpts, chainId *big.Int, name [32]byte, allowZeroAddress bool) (common.Address, error) { - var out []interface{} - err := _ProverPool.contract.Call(opts, &out, "resolve", chainId, name, allowZeroAddress) - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -// Resolve is a free data retrieval call binding the contract method 0x6c6563f6. -// -// Solidity: function resolve(uint256 chainId, bytes32 name, bool allowZeroAddress) view returns(address addr) -func (_ProverPool *ProverPoolSession) Resolve(chainId *big.Int, name [32]byte, allowZeroAddress bool) (common.Address, error) { - return _ProverPool.Contract.Resolve(&_ProverPool.CallOpts, chainId, name, allowZeroAddress) -} - -// Resolve is a free data retrieval call binding the contract method 0x6c6563f6. -// -// Solidity: function resolve(uint256 chainId, bytes32 name, bool allowZeroAddress) view returns(address addr) -func (_ProverPool *ProverPoolCallerSession) Resolve(chainId *big.Int, name [32]byte, allowZeroAddress bool) (common.Address, error) { - return _ProverPool.Contract.Resolve(&_ProverPool.CallOpts, chainId, name, allowZeroAddress) -} - -// Resolve0 is a free data retrieval call binding the contract method 0xa86f9d9e. -// -// Solidity: function resolve(bytes32 name, bool allowZeroAddress) view returns(address addr) -func (_ProverPool *ProverPoolCaller) Resolve0(opts *bind.CallOpts, name [32]byte, allowZeroAddress bool) (common.Address, error) { - var out []interface{} - err := _ProverPool.contract.Call(opts, &out, "resolve0", name, allowZeroAddress) - - if err != nil { - return *new(common.Address), err - } - - out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) - - return out0, err - -} - -// Resolve0 is a free data retrieval call binding the contract method 0xa86f9d9e. -// -// Solidity: function resolve(bytes32 name, bool allowZeroAddress) view returns(address addr) -func (_ProverPool *ProverPoolSession) Resolve0(name [32]byte, allowZeroAddress bool) (common.Address, error) { - return _ProverPool.Contract.Resolve0(&_ProverPool.CallOpts, name, allowZeroAddress) -} - -// Resolve0 is a free data retrieval call binding the contract method 0xa86f9d9e. -// -// Solidity: function resolve(bytes32 name, bool allowZeroAddress) view returns(address addr) -func (_ProverPool *ProverPoolCallerSession) Resolve0(name [32]byte, allowZeroAddress bool) (common.Address, error) { - return _ProverPool.Contract.Resolve0(&_ProverPool.CallOpts, name, allowZeroAddress) -} - -// Stakers is a free data retrieval call binding the contract method 0x9168ae72. -// -// Solidity: function stakers(address staker) view returns(uint64 exitRequestedAt, uint64 exitAmount, uint32 maxCapacity, uint32 proverId) -func (_ProverPool *ProverPoolCaller) Stakers(opts *bind.CallOpts, staker common.Address) (struct { - ExitRequestedAt uint64 - ExitAmount uint64 - MaxCapacity uint32 - ProverId uint32 -}, error) { - var out []interface{} - err := _ProverPool.contract.Call(opts, &out, "stakers", staker) - - outstruct := new(struct { - ExitRequestedAt uint64 - ExitAmount uint64 - MaxCapacity uint32 - ProverId uint32 - }) - if err != nil { - return *outstruct, err - } - - outstruct.ExitRequestedAt = *abi.ConvertType(out[0], new(uint64)).(*uint64) - outstruct.ExitAmount = *abi.ConvertType(out[1], new(uint64)).(*uint64) - outstruct.MaxCapacity = *abi.ConvertType(out[2], new(uint32)).(*uint32) - outstruct.ProverId = *abi.ConvertType(out[3], new(uint32)).(*uint32) - - return *outstruct, err - -} - -// Stakers is a free data retrieval call binding the contract method 0x9168ae72. -// -// Solidity: function stakers(address staker) view returns(uint64 exitRequestedAt, uint64 exitAmount, uint32 maxCapacity, uint32 proverId) -func (_ProverPool *ProverPoolSession) Stakers(staker common.Address) (struct { - ExitRequestedAt uint64 - ExitAmount uint64 - MaxCapacity uint32 - ProverId uint32 -}, error) { - return _ProverPool.Contract.Stakers(&_ProverPool.CallOpts, staker) -} - -// Stakers is a free data retrieval call binding the contract method 0x9168ae72. -// -// Solidity: function stakers(address staker) view returns(uint64 exitRequestedAt, uint64 exitAmount, uint32 maxCapacity, uint32 proverId) -func (_ProverPool *ProverPoolCallerSession) Stakers(staker common.Address) (struct { - ExitRequestedAt uint64 - ExitAmount uint64 - MaxCapacity uint32 - ProverId uint32 -}, error) { - return _ProverPool.Contract.Stakers(&_ProverPool.CallOpts, staker) -} - -// AssignProver is a paid mutator transaction binding the contract method 0xbd849fe9. -// -// Solidity: function assignProver(uint64 blockId, uint32 feePerGas) returns(address prover, uint32 rewardPerGas) -func (_ProverPool *ProverPoolTransactor) AssignProver(opts *bind.TransactOpts, blockId uint64, feePerGas uint32) (*types.Transaction, error) { - return _ProverPool.contract.Transact(opts, "assignProver", blockId, feePerGas) -} - -// AssignProver is a paid mutator transaction binding the contract method 0xbd849fe9. -// -// Solidity: function assignProver(uint64 blockId, uint32 feePerGas) returns(address prover, uint32 rewardPerGas) -func (_ProverPool *ProverPoolSession) AssignProver(blockId uint64, feePerGas uint32) (*types.Transaction, error) { - return _ProverPool.Contract.AssignProver(&_ProverPool.TransactOpts, blockId, feePerGas) -} - -// AssignProver is a paid mutator transaction binding the contract method 0xbd849fe9. -// -// Solidity: function assignProver(uint64 blockId, uint32 feePerGas) returns(address prover, uint32 rewardPerGas) -func (_ProverPool *ProverPoolTransactorSession) AssignProver(blockId uint64, feePerGas uint32) (*types.Transaction, error) { - return _ProverPool.Contract.AssignProver(&_ProverPool.TransactOpts, blockId, feePerGas) -} - -// Exit is a paid mutator transaction binding the contract method 0xe9fad8ee. -// -// Solidity: function exit() returns() -func (_ProverPool *ProverPoolTransactor) Exit(opts *bind.TransactOpts) (*types.Transaction, error) { - return _ProverPool.contract.Transact(opts, "exit") -} - -// Exit is a paid mutator transaction binding the contract method 0xe9fad8ee. -// -// Solidity: function exit() returns() -func (_ProverPool *ProverPoolSession) Exit() (*types.Transaction, error) { - return _ProverPool.Contract.Exit(&_ProverPool.TransactOpts) -} - -// Exit is a paid mutator transaction binding the contract method 0xe9fad8ee. -// -// Solidity: function exit() returns() -func (_ProverPool *ProverPoolTransactorSession) Exit() (*types.Transaction, error) { - return _ProverPool.Contract.Exit(&_ProverPool.TransactOpts) -} - -// Init is a paid mutator transaction binding the contract method 0x19ab453c. -// -// Solidity: function init(address _addressManager) returns() -func (_ProverPool *ProverPoolTransactor) Init(opts *bind.TransactOpts, _addressManager common.Address) (*types.Transaction, error) { - return _ProverPool.contract.Transact(opts, "init", _addressManager) -} - -// Init is a paid mutator transaction binding the contract method 0x19ab453c. -// -// Solidity: function init(address _addressManager) returns() -func (_ProverPool *ProverPoolSession) Init(_addressManager common.Address) (*types.Transaction, error) { - return _ProverPool.Contract.Init(&_ProverPool.TransactOpts, _addressManager) -} - -// Init is a paid mutator transaction binding the contract method 0x19ab453c. -// -// Solidity: function init(address _addressManager) returns() -func (_ProverPool *ProverPoolTransactorSession) Init(_addressManager common.Address) (*types.Transaction, error) { - return _ProverPool.Contract.Init(&_ProverPool.TransactOpts, _addressManager) -} - -// ReleaseProver is a paid mutator transaction binding the contract method 0xcba0414f. -// -// Solidity: function releaseProver(address addr) returns() -func (_ProverPool *ProverPoolTransactor) ReleaseProver(opts *bind.TransactOpts, addr common.Address) (*types.Transaction, error) { - return _ProverPool.contract.Transact(opts, "releaseProver", addr) -} - -// ReleaseProver is a paid mutator transaction binding the contract method 0xcba0414f. -// -// Solidity: function releaseProver(address addr) returns() -func (_ProverPool *ProverPoolSession) ReleaseProver(addr common.Address) (*types.Transaction, error) { - return _ProverPool.Contract.ReleaseProver(&_ProverPool.TransactOpts, addr) -} - -// ReleaseProver is a paid mutator transaction binding the contract method 0xcba0414f. -// -// Solidity: function releaseProver(address addr) returns() -func (_ProverPool *ProverPoolTransactorSession) ReleaseProver(addr common.Address) (*types.Transaction, error) { - return _ProverPool.Contract.ReleaseProver(&_ProverPool.TransactOpts, addr) -} - -// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. -// -// Solidity: function renounceOwnership() returns() -func (_ProverPool *ProverPoolTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { - return _ProverPool.contract.Transact(opts, "renounceOwnership") -} - -// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. -// -// Solidity: function renounceOwnership() returns() -func (_ProverPool *ProverPoolSession) RenounceOwnership() (*types.Transaction, error) { - return _ProverPool.Contract.RenounceOwnership(&_ProverPool.TransactOpts) -} - -// RenounceOwnership is a paid mutator transaction binding the contract method 0x715018a6. -// -// Solidity: function renounceOwnership() returns() -func (_ProverPool *ProverPoolTransactorSession) RenounceOwnership() (*types.Transaction, error) { - return _ProverPool.Contract.RenounceOwnership(&_ProverPool.TransactOpts) -} - -// SetAddressManager is a paid mutator transaction binding the contract method 0x0652b57a. -// -// Solidity: function setAddressManager(address newAddressManager) returns() -func (_ProverPool *ProverPoolTransactor) SetAddressManager(opts *bind.TransactOpts, newAddressManager common.Address) (*types.Transaction, error) { - return _ProverPool.contract.Transact(opts, "setAddressManager", newAddressManager) -} - -// SetAddressManager is a paid mutator transaction binding the contract method 0x0652b57a. -// -// Solidity: function setAddressManager(address newAddressManager) returns() -func (_ProverPool *ProverPoolSession) SetAddressManager(newAddressManager common.Address) (*types.Transaction, error) { - return _ProverPool.Contract.SetAddressManager(&_ProverPool.TransactOpts, newAddressManager) -} - -// SetAddressManager is a paid mutator transaction binding the contract method 0x0652b57a. -// -// Solidity: function setAddressManager(address newAddressManager) returns() -func (_ProverPool *ProverPoolTransactorSession) SetAddressManager(newAddressManager common.Address) (*types.Transaction, error) { - return _ProverPool.Contract.SetAddressManager(&_ProverPool.TransactOpts, newAddressManager) -} - -// SlashProver is a paid mutator transaction binding the contract method 0x6615e310. -// -// Solidity: function slashProver(uint64 blockId, address addr, uint64 proofReward) returns() -func (_ProverPool *ProverPoolTransactor) SlashProver(opts *bind.TransactOpts, blockId uint64, addr common.Address, proofReward uint64) (*types.Transaction, error) { - return _ProverPool.contract.Transact(opts, "slashProver", blockId, addr, proofReward) -} - -// SlashProver is a paid mutator transaction binding the contract method 0x6615e310. -// -// Solidity: function slashProver(uint64 blockId, address addr, uint64 proofReward) returns() -func (_ProverPool *ProverPoolSession) SlashProver(blockId uint64, addr common.Address, proofReward uint64) (*types.Transaction, error) { - return _ProverPool.Contract.SlashProver(&_ProverPool.TransactOpts, blockId, addr, proofReward) -} - -// SlashProver is a paid mutator transaction binding the contract method 0x6615e310. -// -// Solidity: function slashProver(uint64 blockId, address addr, uint64 proofReward) returns() -func (_ProverPool *ProverPoolTransactorSession) SlashProver(blockId uint64, addr common.Address, proofReward uint64) (*types.Transaction, error) { - return _ProverPool.Contract.SlashProver(&_ProverPool.TransactOpts, blockId, addr, proofReward) -} - -// Stake is a paid mutator transaction binding the contract method 0xb19ead66. -// -// Solidity: function stake(uint64 amount, uint32 rewardPerGas, uint32 maxCapacity) returns() -func (_ProverPool *ProverPoolTransactor) Stake(opts *bind.TransactOpts, amount uint64, rewardPerGas uint32, maxCapacity uint32) (*types.Transaction, error) { - return _ProverPool.contract.Transact(opts, "stake", amount, rewardPerGas, maxCapacity) -} - -// Stake is a paid mutator transaction binding the contract method 0xb19ead66. -// -// Solidity: function stake(uint64 amount, uint32 rewardPerGas, uint32 maxCapacity) returns() -func (_ProverPool *ProverPoolSession) Stake(amount uint64, rewardPerGas uint32, maxCapacity uint32) (*types.Transaction, error) { - return _ProverPool.Contract.Stake(&_ProverPool.TransactOpts, amount, rewardPerGas, maxCapacity) -} - -// Stake is a paid mutator transaction binding the contract method 0xb19ead66. -// -// Solidity: function stake(uint64 amount, uint32 rewardPerGas, uint32 maxCapacity) returns() -func (_ProverPool *ProverPoolTransactorSession) Stake(amount uint64, rewardPerGas uint32, maxCapacity uint32) (*types.Transaction, error) { - return _ProverPool.Contract.Stake(&_ProverPool.TransactOpts, amount, rewardPerGas, maxCapacity) -} - -// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. -// -// Solidity: function transferOwnership(address newOwner) returns() -func (_ProverPool *ProverPoolTransactor) TransferOwnership(opts *bind.TransactOpts, newOwner common.Address) (*types.Transaction, error) { - return _ProverPool.contract.Transact(opts, "transferOwnership", newOwner) -} - -// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. -// -// Solidity: function transferOwnership(address newOwner) returns() -func (_ProverPool *ProverPoolSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { - return _ProverPool.Contract.TransferOwnership(&_ProverPool.TransactOpts, newOwner) -} - -// TransferOwnership is a paid mutator transaction binding the contract method 0xf2fde38b. -// -// Solidity: function transferOwnership(address newOwner) returns() -func (_ProverPool *ProverPoolTransactorSession) TransferOwnership(newOwner common.Address) (*types.Transaction, error) { - return _ProverPool.Contract.TransferOwnership(&_ProverPool.TransactOpts, newOwner) -} - -// Withdraw is a paid mutator transaction binding the contract method 0x3ccfd60b. -// -// Solidity: function withdraw() returns() -func (_ProverPool *ProverPoolTransactor) Withdraw(opts *bind.TransactOpts) (*types.Transaction, error) { - return _ProverPool.contract.Transact(opts, "withdraw") -} - -// Withdraw is a paid mutator transaction binding the contract method 0x3ccfd60b. -// -// Solidity: function withdraw() returns() -func (_ProverPool *ProverPoolSession) Withdraw() (*types.Transaction, error) { - return _ProverPool.Contract.Withdraw(&_ProverPool.TransactOpts) -} - -// Withdraw is a paid mutator transaction binding the contract method 0x3ccfd60b. -// -// Solidity: function withdraw() returns() -func (_ProverPool *ProverPoolTransactorSession) Withdraw() (*types.Transaction, error) { - return _ProverPool.Contract.Withdraw(&_ProverPool.TransactOpts) -} - -// ProverPoolAddressManagerChangedIterator is returned from FilterAddressManagerChanged and is used to iterate over the raw logs and unpacked data for AddressManagerChanged events raised by the ProverPool contract. -type ProverPoolAddressManagerChangedIterator struct { - Event *ProverPoolAddressManagerChanged // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *ProverPoolAddressManagerChangedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(ProverPoolAddressManagerChanged) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(ProverPoolAddressManagerChanged) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *ProverPoolAddressManagerChangedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *ProverPoolAddressManagerChangedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// ProverPoolAddressManagerChanged represents a AddressManagerChanged event raised by the ProverPool contract. -type ProverPoolAddressManagerChanged struct { - AddressManager common.Address - Raw types.Log // Blockchain specific contextual infos -} - -// FilterAddressManagerChanged is a free log retrieval operation binding the contract event 0x399ded90cb5ed8d89ef7e76ff4af65c373f06d3bf5d7eef55f4228e7b702a18b. -// -// Solidity: event AddressManagerChanged(address indexed addressManager) -func (_ProverPool *ProverPoolFilterer) FilterAddressManagerChanged(opts *bind.FilterOpts, addressManager []common.Address) (*ProverPoolAddressManagerChangedIterator, error) { - - var addressManagerRule []interface{} - for _, addressManagerItem := range addressManager { - addressManagerRule = append(addressManagerRule, addressManagerItem) - } - - logs, sub, err := _ProverPool.contract.FilterLogs(opts, "AddressManagerChanged", addressManagerRule) - if err != nil { - return nil, err - } - return &ProverPoolAddressManagerChangedIterator{contract: _ProverPool.contract, event: "AddressManagerChanged", logs: logs, sub: sub}, nil -} - -// WatchAddressManagerChanged is a free log subscription operation binding the contract event 0x399ded90cb5ed8d89ef7e76ff4af65c373f06d3bf5d7eef55f4228e7b702a18b. -// -// Solidity: event AddressManagerChanged(address indexed addressManager) -func (_ProverPool *ProverPoolFilterer) WatchAddressManagerChanged(opts *bind.WatchOpts, sink chan<- *ProverPoolAddressManagerChanged, addressManager []common.Address) (event.Subscription, error) { - - var addressManagerRule []interface{} - for _, addressManagerItem := range addressManager { - addressManagerRule = append(addressManagerRule, addressManagerItem) - } - - logs, sub, err := _ProverPool.contract.WatchLogs(opts, "AddressManagerChanged", addressManagerRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(ProverPoolAddressManagerChanged) - if err := _ProverPool.contract.UnpackLog(event, "AddressManagerChanged", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseAddressManagerChanged is a log parse operation binding the contract event 0x399ded90cb5ed8d89ef7e76ff4af65c373f06d3bf5d7eef55f4228e7b702a18b. -// -// Solidity: event AddressManagerChanged(address indexed addressManager) -func (_ProverPool *ProverPoolFilterer) ParseAddressManagerChanged(log types.Log) (*ProverPoolAddressManagerChanged, error) { - event := new(ProverPoolAddressManagerChanged) - if err := _ProverPool.contract.UnpackLog(event, "AddressManagerChanged", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// ProverPoolExitedIterator is returned from FilterExited and is used to iterate over the raw logs and unpacked data for Exited events raised by the ProverPool contract. -type ProverPoolExitedIterator struct { - Event *ProverPoolExited // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *ProverPoolExitedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(ProverPoolExited) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(ProverPoolExited) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *ProverPoolExitedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *ProverPoolExitedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// ProverPoolExited represents a Exited event raised by the ProverPool contract. -type ProverPoolExited struct { - Addr common.Address - Amount uint64 - Raw types.Log // Blockchain specific contextual infos -} - -// FilterExited is a free log retrieval operation binding the contract event 0x7b870040d0137f84191e3e446a10f48b5ac5d26ec96be3f795fcfc4c954410fe. -// -// Solidity: event Exited(address indexed addr, uint64 amount) -func (_ProverPool *ProverPoolFilterer) FilterExited(opts *bind.FilterOpts, addr []common.Address) (*ProverPoolExitedIterator, error) { - - var addrRule []interface{} - for _, addrItem := range addr { - addrRule = append(addrRule, addrItem) - } - - logs, sub, err := _ProverPool.contract.FilterLogs(opts, "Exited", addrRule) - if err != nil { - return nil, err - } - return &ProverPoolExitedIterator{contract: _ProverPool.contract, event: "Exited", logs: logs, sub: sub}, nil -} - -// WatchExited is a free log subscription operation binding the contract event 0x7b870040d0137f84191e3e446a10f48b5ac5d26ec96be3f795fcfc4c954410fe. -// -// Solidity: event Exited(address indexed addr, uint64 amount) -func (_ProverPool *ProverPoolFilterer) WatchExited(opts *bind.WatchOpts, sink chan<- *ProverPoolExited, addr []common.Address) (event.Subscription, error) { - - var addrRule []interface{} - for _, addrItem := range addr { - addrRule = append(addrRule, addrItem) - } - - logs, sub, err := _ProverPool.contract.WatchLogs(opts, "Exited", addrRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(ProverPoolExited) - if err := _ProverPool.contract.UnpackLog(event, "Exited", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseExited is a log parse operation binding the contract event 0x7b870040d0137f84191e3e446a10f48b5ac5d26ec96be3f795fcfc4c954410fe. -// -// Solidity: event Exited(address indexed addr, uint64 amount) -func (_ProverPool *ProverPoolFilterer) ParseExited(log types.Log) (*ProverPoolExited, error) { - event := new(ProverPoolExited) - if err := _ProverPool.contract.UnpackLog(event, "Exited", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// ProverPoolInitializedIterator is returned from FilterInitialized and is used to iterate over the raw logs and unpacked data for Initialized events raised by the ProverPool contract. -type ProverPoolInitializedIterator struct { - Event *ProverPoolInitialized // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *ProverPoolInitializedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(ProverPoolInitialized) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(ProverPoolInitialized) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *ProverPoolInitializedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *ProverPoolInitializedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// ProverPoolInitialized represents a Initialized event raised by the ProverPool contract. -type ProverPoolInitialized struct { - Version uint8 - Raw types.Log // Blockchain specific contextual infos -} - -// FilterInitialized is a free log retrieval operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. -// -// Solidity: event Initialized(uint8 version) -func (_ProverPool *ProverPoolFilterer) FilterInitialized(opts *bind.FilterOpts) (*ProverPoolInitializedIterator, error) { - - logs, sub, err := _ProverPool.contract.FilterLogs(opts, "Initialized") - if err != nil { - return nil, err - } - return &ProverPoolInitializedIterator{contract: _ProverPool.contract, event: "Initialized", logs: logs, sub: sub}, nil -} - -// WatchInitialized is a free log subscription operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. -// -// Solidity: event Initialized(uint8 version) -func (_ProverPool *ProverPoolFilterer) WatchInitialized(opts *bind.WatchOpts, sink chan<- *ProverPoolInitialized) (event.Subscription, error) { - - logs, sub, err := _ProverPool.contract.WatchLogs(opts, "Initialized") - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(ProverPoolInitialized) - if err := _ProverPool.contract.UnpackLog(event, "Initialized", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseInitialized is a log parse operation binding the contract event 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498. -// -// Solidity: event Initialized(uint8 version) -func (_ProverPool *ProverPoolFilterer) ParseInitialized(log types.Log) (*ProverPoolInitialized, error) { - event := new(ProverPoolInitialized) - if err := _ProverPool.contract.UnpackLog(event, "Initialized", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// ProverPoolOwnershipTransferredIterator is returned from FilterOwnershipTransferred and is used to iterate over the raw logs and unpacked data for OwnershipTransferred events raised by the ProverPool contract. -type ProverPoolOwnershipTransferredIterator struct { - Event *ProverPoolOwnershipTransferred // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *ProverPoolOwnershipTransferredIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(ProverPoolOwnershipTransferred) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(ProverPoolOwnershipTransferred) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *ProverPoolOwnershipTransferredIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *ProverPoolOwnershipTransferredIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// ProverPoolOwnershipTransferred represents a OwnershipTransferred event raised by the ProverPool contract. -type ProverPoolOwnershipTransferred struct { - PreviousOwner common.Address - NewOwner common.Address - Raw types.Log // Blockchain specific contextual infos -} - -// FilterOwnershipTransferred is a free log retrieval operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. -// -// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) -func (_ProverPool *ProverPoolFilterer) FilterOwnershipTransferred(opts *bind.FilterOpts, previousOwner []common.Address, newOwner []common.Address) (*ProverPoolOwnershipTransferredIterator, error) { - - var previousOwnerRule []interface{} - for _, previousOwnerItem := range previousOwner { - previousOwnerRule = append(previousOwnerRule, previousOwnerItem) - } - var newOwnerRule []interface{} - for _, newOwnerItem := range newOwner { - newOwnerRule = append(newOwnerRule, newOwnerItem) - } - - logs, sub, err := _ProverPool.contract.FilterLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) - if err != nil { - return nil, err - } - return &ProverPoolOwnershipTransferredIterator{contract: _ProverPool.contract, event: "OwnershipTransferred", logs: logs, sub: sub}, nil -} - -// WatchOwnershipTransferred is a free log subscription operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. -// -// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) -func (_ProverPool *ProverPoolFilterer) WatchOwnershipTransferred(opts *bind.WatchOpts, sink chan<- *ProverPoolOwnershipTransferred, previousOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { - - var previousOwnerRule []interface{} - for _, previousOwnerItem := range previousOwner { - previousOwnerRule = append(previousOwnerRule, previousOwnerItem) - } - var newOwnerRule []interface{} - for _, newOwnerItem := range newOwner { - newOwnerRule = append(newOwnerRule, newOwnerItem) - } - - logs, sub, err := _ProverPool.contract.WatchLogs(opts, "OwnershipTransferred", previousOwnerRule, newOwnerRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(ProverPoolOwnershipTransferred) - if err := _ProverPool.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseOwnershipTransferred is a log parse operation binding the contract event 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0. -// -// Solidity: event OwnershipTransferred(address indexed previousOwner, address indexed newOwner) -func (_ProverPool *ProverPoolFilterer) ParseOwnershipTransferred(log types.Log) (*ProverPoolOwnershipTransferred, error) { - event := new(ProverPoolOwnershipTransferred) - if err := _ProverPool.contract.UnpackLog(event, "OwnershipTransferred", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// ProverPoolSlashedIterator is returned from FilterSlashed and is used to iterate over the raw logs and unpacked data for Slashed events raised by the ProverPool contract. -type ProverPoolSlashedIterator struct { - Event *ProverPoolSlashed // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *ProverPoolSlashedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(ProverPoolSlashed) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(ProverPoolSlashed) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *ProverPoolSlashedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *ProverPoolSlashedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// ProverPoolSlashed represents a Slashed event raised by the ProverPool contract. -type ProverPoolSlashed struct { - BlockId uint64 - Addr common.Address - Amount uint64 - Raw types.Log // Blockchain specific contextual infos -} - -// FilterSlashed is a free log retrieval operation binding the contract event 0x743ce7cf7b1ba140d9cf7e0e6fd0eaacb92a579aaebaece2e50bc2ec855948d4. -// -// Solidity: event Slashed(uint64 indexed blockId, address indexed addr, uint64 amount) -func (_ProverPool *ProverPoolFilterer) FilterSlashed(opts *bind.FilterOpts, blockId []uint64, addr []common.Address) (*ProverPoolSlashedIterator, error) { - - var blockIdRule []interface{} - for _, blockIdItem := range blockId { - blockIdRule = append(blockIdRule, blockIdItem) - } - var addrRule []interface{} - for _, addrItem := range addr { - addrRule = append(addrRule, addrItem) - } - - logs, sub, err := _ProverPool.contract.FilterLogs(opts, "Slashed", blockIdRule, addrRule) - if err != nil { - return nil, err - } - return &ProverPoolSlashedIterator{contract: _ProverPool.contract, event: "Slashed", logs: logs, sub: sub}, nil -} - -// WatchSlashed is a free log subscription operation binding the contract event 0x743ce7cf7b1ba140d9cf7e0e6fd0eaacb92a579aaebaece2e50bc2ec855948d4. -// -// Solidity: event Slashed(uint64 indexed blockId, address indexed addr, uint64 amount) -func (_ProverPool *ProverPoolFilterer) WatchSlashed(opts *bind.WatchOpts, sink chan<- *ProverPoolSlashed, blockId []uint64, addr []common.Address) (event.Subscription, error) { - - var blockIdRule []interface{} - for _, blockIdItem := range blockId { - blockIdRule = append(blockIdRule, blockIdItem) - } - var addrRule []interface{} - for _, addrItem := range addr { - addrRule = append(addrRule, addrItem) - } - - logs, sub, err := _ProverPool.contract.WatchLogs(opts, "Slashed", blockIdRule, addrRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(ProverPoolSlashed) - if err := _ProverPool.contract.UnpackLog(event, "Slashed", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseSlashed is a log parse operation binding the contract event 0x743ce7cf7b1ba140d9cf7e0e6fd0eaacb92a579aaebaece2e50bc2ec855948d4. -// -// Solidity: event Slashed(uint64 indexed blockId, address indexed addr, uint64 amount) -func (_ProverPool *ProverPoolFilterer) ParseSlashed(log types.Log) (*ProverPoolSlashed, error) { - event := new(ProverPoolSlashed) - if err := _ProverPool.contract.UnpackLog(event, "Slashed", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// ProverPoolStakedIterator is returned from FilterStaked and is used to iterate over the raw logs and unpacked data for Staked events raised by the ProverPool contract. -type ProverPoolStakedIterator struct { - Event *ProverPoolStaked // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *ProverPoolStakedIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(ProverPoolStaked) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(ProverPoolStaked) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *ProverPoolStakedIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *ProverPoolStakedIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// ProverPoolStaked represents a Staked event raised by the ProverPool contract. -type ProverPoolStaked struct { - Addr common.Address - Amount uint64 - RewardPerGas uint32 - CurrentCapacity uint32 - Raw types.Log // Blockchain specific contextual infos -} - -// FilterStaked is a free log retrieval operation binding the contract event 0x5ca6ec890c0c084d4fe6c6c49e6aea6fd8dbf1460730c83b5b12bf22811851e3. -// -// Solidity: event Staked(address indexed addr, uint64 amount, uint32 rewardPerGas, uint32 currentCapacity) -func (_ProverPool *ProverPoolFilterer) FilterStaked(opts *bind.FilterOpts, addr []common.Address) (*ProverPoolStakedIterator, error) { - - var addrRule []interface{} - for _, addrItem := range addr { - addrRule = append(addrRule, addrItem) - } - - logs, sub, err := _ProverPool.contract.FilterLogs(opts, "Staked", addrRule) - if err != nil { - return nil, err - } - return &ProverPoolStakedIterator{contract: _ProverPool.contract, event: "Staked", logs: logs, sub: sub}, nil -} - -// WatchStaked is a free log subscription operation binding the contract event 0x5ca6ec890c0c084d4fe6c6c49e6aea6fd8dbf1460730c83b5b12bf22811851e3. -// -// Solidity: event Staked(address indexed addr, uint64 amount, uint32 rewardPerGas, uint32 currentCapacity) -func (_ProverPool *ProverPoolFilterer) WatchStaked(opts *bind.WatchOpts, sink chan<- *ProverPoolStaked, addr []common.Address) (event.Subscription, error) { - - var addrRule []interface{} - for _, addrItem := range addr { - addrRule = append(addrRule, addrItem) - } - - logs, sub, err := _ProverPool.contract.WatchLogs(opts, "Staked", addrRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(ProverPoolStaked) - if err := _ProverPool.contract.UnpackLog(event, "Staked", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseStaked is a log parse operation binding the contract event 0x5ca6ec890c0c084d4fe6c6c49e6aea6fd8dbf1460730c83b5b12bf22811851e3. -// -// Solidity: event Staked(address indexed addr, uint64 amount, uint32 rewardPerGas, uint32 currentCapacity) -func (_ProverPool *ProverPoolFilterer) ParseStaked(log types.Log) (*ProverPoolStaked, error) { - event := new(ProverPoolStaked) - if err := _ProverPool.contract.UnpackLog(event, "Staked", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} - -// ProverPoolWithdrawnIterator is returned from FilterWithdrawn and is used to iterate over the raw logs and unpacked data for Withdrawn events raised by the ProverPool contract. -type ProverPoolWithdrawnIterator struct { - Event *ProverPoolWithdrawn // Event containing the contract specifics and raw log - - contract *bind.BoundContract // Generic contract to use for unpacking event data - event string // Event name to use for unpacking event data - - logs chan types.Log // Log channel receiving the found contract events - sub ethereum.Subscription // Subscription for errors, completion and termination - done bool // Whether the subscription completed delivering logs - fail error // Occurred error to stop iteration -} - -// Next advances the iterator to the subsequent event, returning whether there -// are any more events found. In case of a retrieval or parsing error, false is -// returned and Error() can be queried for the exact failure. -func (it *ProverPoolWithdrawnIterator) Next() bool { - // If the iterator failed, stop iterating - if it.fail != nil { - return false - } - // If the iterator completed, deliver directly whatever's available - if it.done { - select { - case log := <-it.logs: - it.Event = new(ProverPoolWithdrawn) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - default: - return false - } - } - // Iterator still in progress, wait for either a data or an error event - select { - case log := <-it.logs: - it.Event = new(ProverPoolWithdrawn) - if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { - it.fail = err - return false - } - it.Event.Raw = log - return true - - case err := <-it.sub.Err(): - it.done = true - it.fail = err - return it.Next() - } -} - -// Error returns any retrieval or parsing error occurred during filtering. -func (it *ProverPoolWithdrawnIterator) Error() error { - return it.fail -} - -// Close terminates the iteration process, releasing any pending underlying -// resources. -func (it *ProverPoolWithdrawnIterator) Close() error { - it.sub.Unsubscribe() - return nil -} - -// ProverPoolWithdrawn represents a Withdrawn event raised by the ProverPool contract. -type ProverPoolWithdrawn struct { - Addr common.Address - Amount uint64 - Raw types.Log // Blockchain specific contextual infos -} - -// FilterWithdrawn is a free log retrieval operation binding the contract event 0xbae95d59332d6e1e8f1ae78e7bebdaeef072d57b731c8790a636667e3a0a87ee. -// -// Solidity: event Withdrawn(address indexed addr, uint64 amount) -func (_ProverPool *ProverPoolFilterer) FilterWithdrawn(opts *bind.FilterOpts, addr []common.Address) (*ProverPoolWithdrawnIterator, error) { - - var addrRule []interface{} - for _, addrItem := range addr { - addrRule = append(addrRule, addrItem) - } - - logs, sub, err := _ProverPool.contract.FilterLogs(opts, "Withdrawn", addrRule) - if err != nil { - return nil, err - } - return &ProverPoolWithdrawnIterator{contract: _ProverPool.contract, event: "Withdrawn", logs: logs, sub: sub}, nil -} - -// WatchWithdrawn is a free log subscription operation binding the contract event 0xbae95d59332d6e1e8f1ae78e7bebdaeef072d57b731c8790a636667e3a0a87ee. -// -// Solidity: event Withdrawn(address indexed addr, uint64 amount) -func (_ProverPool *ProverPoolFilterer) WatchWithdrawn(opts *bind.WatchOpts, sink chan<- *ProverPoolWithdrawn, addr []common.Address) (event.Subscription, error) { - - var addrRule []interface{} - for _, addrItem := range addr { - addrRule = append(addrRule, addrItem) - } - - logs, sub, err := _ProverPool.contract.WatchLogs(opts, "Withdrawn", addrRule) - if err != nil { - return nil, err - } - return event.NewSubscription(func(quit <-chan struct{}) error { - defer sub.Unsubscribe() - for { - select { - case log := <-logs: - // New log arrived, parse the event and forward to the user - event := new(ProverPoolWithdrawn) - if err := _ProverPool.contract.UnpackLog(event, "Withdrawn", log); err != nil { - return err - } - event.Raw = log - - select { - case sink <- event: - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - case err := <-sub.Err(): - return err - case <-quit: - return nil - } - } - }), nil -} - -// ParseWithdrawn is a log parse operation binding the contract event 0xbae95d59332d6e1e8f1ae78e7bebdaeef072d57b731c8790a636667e3a0a87ee. -// -// Solidity: event Withdrawn(address indexed addr, uint64 amount) -func (_ProverPool *ProverPoolFilterer) ParseWithdrawn(log types.Log) (*ProverPoolWithdrawn, error) { - event := new(ProverPoolWithdrawn) - if err := _ProverPool.contract.UnpackLog(event, "Withdrawn", log); err != nil { - return nil, err - } - event.Raw = log - return event, nil -} diff --git a/packages/eventindexer/contracts/taikol1/TaikoL1.go b/packages/eventindexer/contracts/taikol1/TaikoL1.go index 4c2fd4db3b..b60a05648c 100644 --- a/packages/eventindexer/contracts/taikol1/TaikoL1.go +++ b/packages/eventindexer/contracts/taikol1/TaikoL1.go @@ -29,6 +29,18 @@ var ( _ = abi.ConvertType ) +// TaikoDataBlock is an auto generated low-level Go binding around an user-defined struct. +type TaikoDataBlock struct { + MetaHash [32]byte + Prover common.Address + ProposedAt uint64 + NextForkChoiceId uint16 + VerifiedForkChoiceId uint16 + BlockId uint64 + ProofBond *big.Int + ProofWindow uint16 +} + // TaikoDataBlockMetadata is an auto generated low-level Go binding around an user-defined struct. type TaikoDataBlockMetadata struct { Id uint64 @@ -41,37 +53,34 @@ type TaikoDataBlockMetadata struct { TxListByteEnd *big.Int GasLimit uint32 Beneficiary common.Address - Treasury common.Address DepositsProcessed []TaikoDataEthDeposit } // TaikoDataConfig is an auto generated low-level Go binding around an user-defined struct. type TaikoDataConfig struct { - ChainId *big.Int - RelaySignalRoot bool - BlockMaxProposals *big.Int - BlockRingBufferSize *big.Int - BlockMaxVerificationsPerTx *big.Int - BlockMaxGasLimit uint32 - BlockFeeBaseGas uint32 - BlockMaxTransactions uint64 - BlockMaxTxListBytes uint64 - BlockTxListExpiry *big.Int - ProofRegularCooldown *big.Int - ProofOracleCooldown *big.Int - ProofMinWindow uint16 - ProofMaxWindow uint16 - ProofWindowMultiplier uint16 - EthDepositRingBufferSize *big.Int - EthDepositMinCountPerBlock uint64 - EthDepositMaxCountPerBlock uint64 - EthDepositMinAmount *big.Int - EthDepositMaxAmount *big.Int - EthDepositGas *big.Int - EthDepositMaxFee *big.Int - RewardOpenMultipler uint8 - RewardOpenMaxCount uint32 - RewardMaxDelayPenalty uint32 + ChainId *big.Int + RelaySignalRoot bool + BlockMaxProposals uint64 + BlockRingBufferSize uint64 + BlockMaxVerificationsPerTx uint64 + BlockMaxGasLimit uint32 + BlockFeeBaseGas uint32 + BlockMaxTxListBytes *big.Int + BlockTxListExpiry *big.Int + ProposerRewardPerSecond *big.Int + ProposerRewardMax *big.Int + ProofRegularCooldown *big.Int + ProofOracleCooldown *big.Int + ProofWindow uint16 + ProofBond *big.Int + SkipProverAssignmentVerificaiton bool + EthDepositRingBufferSize *big.Int + EthDepositMinCountPerBlock uint64 + EthDepositMaxCountPerBlock uint64 + EthDepositMinAmount *big.Int + EthDepositMaxAmount *big.Int + EthDepositGas *big.Int + EthDepositMaxFee *big.Int } // TaikoDataEthDeposit is an auto generated low-level Go binding around an user-defined struct. @@ -88,12 +97,26 @@ type TaikoDataForkChoice struct { SignalRoot [32]byte Prover common.Address ProvenAt uint64 - GasUsed uint32 +} + +// TaikoDataSlotA is an auto generated low-level Go binding around an user-defined struct. +type TaikoDataSlotA struct { + GenesisHeight uint64 + GenesisTimestamp uint64 + NumEthDeposits uint64 + NextEthDepositToProcess uint64 +} + +// TaikoDataSlotB is an auto generated low-level Go binding around an user-defined struct. +type TaikoDataSlotB struct { + NumBlocks uint64 + NextEthDepositToProcess uint64 + LastVerifiedAt uint64 + LastVerifiedBlockId uint64 } // TaikoDataStateVariables is an auto generated low-level Go binding around an user-defined struct. type TaikoDataStateVariables struct { - FeePerGas uint32 GenesisHeight uint64 GenesisTimestamp uint64 NumBlocks uint64 @@ -104,7 +127,7 @@ type TaikoDataStateVariables struct { // TaikoL1MetaData contains all meta data concerning the TaikoL1 contract. var TaikoL1MetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"name\":\"L1_ALREADY_PROVEN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_ALREADY_PROVEN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_BATCH_NOT_AUCTIONABLE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_BLOCK_ID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_BLOCK_ID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_BLOCK_ID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actual\",\"type\":\"bytes32\"}],\"name\":\"L1_EVIDENCE_MISMATCH\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actual\",\"type\":\"bytes32\"}],\"name\":\"L1_EVIDENCE_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_FORK_CHOICE_NOT_FOUND\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_FORK_CHOICE_NOT_FOUND\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INSUFFICIENT_TOKEN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INSUFFICIENT_TOKEN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INSUFFICIENT_TOKEN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_BID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_CONFIG\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_CONFIG\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_ETH_DEPOSIT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_ETH_DEPOSIT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_EVIDENCE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_EVIDENCE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_METADATA\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_METADATA\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_PARAM\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_PROOF\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_NOT_BETTER_BID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_NOT_PROVEABLE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_NOT_PROVEABLE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_NOT_SPECIAL_PROVER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_PERMISSION_DENIED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_PERMISSION_DENIED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_SAME_PROOF\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_SAME_PROOF\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TOO_MANY_BLOCKS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TOO_MANY_BLOCKS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TOO_MANY_OPEN_BLOCKS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TOO_MANY_OPEN_BLOCKS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TX_LIST\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TX_LIST\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TX_LIST_HASH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TX_LIST_HASH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TX_LIST_NOT_EXIST\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TX_LIST_NOT_EXIST\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TX_LIST_RANGE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TX_LIST_RANGE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_UNAUTHORIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_UNAUTHORIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RESOLVER_DENIED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RESOLVER_INVALID_ADDR\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"}],\"name\":\"RESOLVER_ZERO_ADDR\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addressManager\",\"type\":\"address\"}],\"name\":\"AddressManagerChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"blockId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"assignedProver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"rewardPerGas\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"feePerGas\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"l1Height\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"l1Hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"mixHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"txListHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"txListByteStart\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"txListByteEnd\",\"type\":\"uint24\"},{\"internalType\":\"uint32\",\"name\":\"gasLimit\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"amount\",\"type\":\"uint96\"},{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"internalType\":\"structTaikoData.EthDeposit[]\",\"name\":\"depositsProcessed\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"structTaikoData.BlockMetadata\",\"name\":\"meta\",\"type\":\"tuple\"}],\"name\":\"BlockProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"blockId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"assignedProver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"rewardPerGas\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"feePerGas\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"l1Height\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"l1Hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"mixHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"txListHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"txListByteStart\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"txListByteEnd\",\"type\":\"uint24\"},{\"internalType\":\"uint32\",\"name\":\"gasLimit\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"amount\",\"type\":\"uint96\"},{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"internalType\":\"structTaikoData.EthDeposit[]\",\"name\":\"depositsProcessed\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"structTaikoData.BlockMetadata\",\"name\":\"meta\",\"type\":\"tuple\"}],\"name\":\"BlockProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"blockId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"parentHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signalRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"prover\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"parentGasUsed\",\"type\":\"uint32\"}],\"name\":\"BlockProven\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"blockId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"parentHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signalRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"prover\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"parentGasUsed\",\"type\":\"uint32\"}],\"name\":\"BlockProven\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"blockId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"prover\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"blockFee\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"proofReward\",\"type\":\"uint64\"}],\"name\":\"BlockVerified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"blockId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"prover\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"blockFee\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"proofReward\",\"type\":\"uint64\"}],\"name\":\"BlockVerified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"srcHeight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signalRoot\",\"type\":\"bytes32\"}],\"name\":\"CrossChainSynced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"srcHeight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signalRoot\",\"type\":\"bytes32\"}],\"name\":\"CrossChainSynced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"amount\",\"type\":\"uint96\"},{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"structTaikoData.EthDeposit\",\"name\":\"deposit\",\"type\":\"tuple\"}],\"name\":\"EthDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"amount\",\"type\":\"uint96\"},{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"structTaikoData.EthDeposit\",\"name\":\"deposit\",\"type\":\"tuple\"}],\"name\":\"EthDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"addressManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"canDepositEthToL2\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"depositEtherToL2\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"depositTaikoToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockId\",\"type\":\"uint256\"}],\"name\":\"getBlock\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_metaHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"_gasLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint24\",\"name\":\"_nextForkChoiceId\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"_verifiedForkChoiceId\",\"type\":\"uint24\"},{\"internalType\":\"bool\",\"name\":\"_proverReleased\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"_proposer\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_feePerGas\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"_proposedAt\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"_assignedProver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_rewardPerGas\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"_proofWindow\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"gasLimit\",\"type\":\"uint32\"}],\"name\":\"getBlockFee\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"relaySignalRoot\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"blockMaxProposals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockRingBufferSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockMaxVerificationsPerTx\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"blockMaxGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"blockFeeBaseGas\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"blockMaxTransactions\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"blockMaxTxListBytes\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"blockTxListExpiry\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proofRegularCooldown\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proofOracleCooldown\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"proofMinWindow\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"proofMaxWindow\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"proofWindowMultiplier\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"ethDepositRingBufferSize\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"ethDepositMinCountPerBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"ethDepositMaxCountPerBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint96\",\"name\":\"ethDepositMinAmount\",\"type\":\"uint96\"},{\"internalType\":\"uint96\",\"name\":\"ethDepositMaxAmount\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"ethDepositGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ethDepositMaxFee\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"rewardOpenMultipler\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"rewardOpenMaxCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"rewardMaxDelayPenalty\",\"type\":\"uint32\"}],\"internalType\":\"structTaikoData.Config\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockId\",\"type\":\"uint256\"}],\"name\":\"getCrossChainBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockId\",\"type\":\"uint256\"}],\"name\":\"getCrossChainSignalRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"parentHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"parentGasUsed\",\"type\":\"uint32\"}],\"name\":\"getForkChoice\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"signalRoot\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"prover\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"provenAt\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"gasUsed\",\"type\":\"uint32\"}],\"internalType\":\"structTaikoData.ForkChoice\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStateVariables\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"feePerGas\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"genesisHeight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"genesisTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"numBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastVerifiedBlockId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextEthDepositToProcess\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"numEthDeposits\",\"type\":\"uint64\"}],\"internalType\":\"structTaikoData.StateVariables\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getTaikoTokenBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"id\",\"type\":\"uint16\"}],\"name\":\"getVerifierName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addressManager\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_genesisBlockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"_initFeePerGas\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_initAvgProofDelay\",\"type\":\"uint16\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"txList\",\"type\":\"bytes\"}],\"name\":\"proposeBlock\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"l1Height\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"l1Hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"mixHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"txListHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"txListByteStart\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"txListByteEnd\",\"type\":\"uint24\"},{\"internalType\":\"uint32\",\"name\":\"gasLimit\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"amount\",\"type\":\"uint96\"},{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"internalType\":\"structTaikoData.EthDeposit[]\",\"name\":\"depositsProcessed\",\"type\":\"tuple[]\"}],\"internalType\":\"structTaikoData.BlockMetadata\",\"name\":\"meta\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"}],\"name\":\"proveBlock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"allowZeroAddress\",\"type\":\"bool\"}],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"allowZeroAddress\",\"type\":\"bool\"}],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAddressManager\",\"type\":\"address\"}],\"name\":\"setAddressManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"state\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"genesisHeight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"genesisTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"__reserved70\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"__reserved71\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"numOpenBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"numEthDeposits\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"numBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextEthDepositToProcess\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastVerifiedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastVerifiedBlockId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"__reserved90\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"feePerGas\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"avgProofDelay\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maxBlocks\",\"type\":\"uint256\"}],\"name\":\"verifyBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawTaikoToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", + ABI: "[{\"inputs\":[],\"name\":\"L1_ALREADY_PROVEN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_ALREADY_PROVEN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_BLOCK_ID_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_BLOCK_ID_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_BLOCK_ID_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_EVIDENCE_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_EVIDENCE_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_FORK_CHOICE_NOT_FOUND\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_FORK_CHOICE_NOT_FOUND\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INSUFFICIENT_TOKEN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INSUFFICIENT_TOKEN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_ASSIGNMENT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_ASSIGNMENT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_BLOCK_ID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_BLOCK_ID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_BLOCK_ID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_CONFIG\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_CONFIG\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_ETH_DEPOSIT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_ETH_DEPOSIT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_EVIDENCE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_EVIDENCE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_METADATA\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_METADATA\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_ORACLE_PROVER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_ORACLE_PROVER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_PARAM\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_PROOF\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_PROPOSER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_PROPOSER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_PROVER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_PROVER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_PROVER_SIG\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_PROVER_SIG\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_NOT_PROVEABLE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_NOT_PROVEABLE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_SAME_PROOF\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_SAME_PROOF\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TOO_MANY_BLOCKS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TOO_MANY_BLOCKS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TX_LIST\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TX_LIST\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TX_LIST_HASH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TX_LIST_HASH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TX_LIST_NOT_EXIST\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TX_LIST_NOT_EXIST\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TX_LIST_RANGE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TX_LIST_RANGE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_UNEXPECTED_FORK_CHOICE_ID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_UNEXPECTED_FORK_CHOICE_ID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RESOLVER_DENIED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RESOLVER_INVALID_ADDR\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"}],\"name\":\"RESOLVER_ZERO_ADDR\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addressManager\",\"type\":\"address\"}],\"name\":\"AddressManagerChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"blockId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"prover\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"l1Height\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"l1Hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"mixHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"txListHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"txListByteStart\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"txListByteEnd\",\"type\":\"uint24\"},{\"internalType\":\"uint32\",\"name\":\"gasLimit\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"amount\",\"type\":\"uint96\"},{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"internalType\":\"structTaikoData.EthDeposit[]\",\"name\":\"depositsProcessed\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"structTaikoData.BlockMetadata\",\"name\":\"meta\",\"type\":\"tuple\"}],\"name\":\"BlockProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"blockId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"prover\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"l1Height\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"l1Hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"mixHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"txListHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"txListByteStart\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"txListByteEnd\",\"type\":\"uint24\"},{\"internalType\":\"uint32\",\"name\":\"gasLimit\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"amount\",\"type\":\"uint96\"},{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"internalType\":\"structTaikoData.EthDeposit[]\",\"name\":\"depositsProcessed\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"structTaikoData.BlockMetadata\",\"name\":\"meta\",\"type\":\"tuple\"}],\"name\":\"BlockProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"blockId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"parentHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signalRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"prover\",\"type\":\"address\"}],\"name\":\"BlockProven\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"blockId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"parentHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signalRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"prover\",\"type\":\"address\"}],\"name\":\"BlockProven\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"blockId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"prover\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"name\":\"BlockVerified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"blockId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"prover\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"name\":\"BlockVerified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"srcHeight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signalRoot\",\"type\":\"bytes32\"}],\"name\":\"CrossChainSynced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"srcHeight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signalRoot\",\"type\":\"bytes32\"}],\"name\":\"CrossChainSynced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"amount\",\"type\":\"uint96\"},{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"structTaikoData.EthDeposit\",\"name\":\"deposit\",\"type\":\"tuple\"}],\"name\":\"EthDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"amount\",\"type\":\"uint96\"},{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"structTaikoData.EthDeposit\",\"name\":\"deposit\",\"type\":\"tuple\"}],\"name\":\"EthDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"addressManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"canDepositEthToL2\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"depositEtherToL2\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"depositTaikoToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blockId\",\"type\":\"uint64\"}],\"name\":\"getBlock\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"metaHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"prover\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"proposedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"nextForkChoiceId\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"verifiedForkChoiceId\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"blockId\",\"type\":\"uint64\"},{\"internalType\":\"uint96\",\"name\":\"proofBond\",\"type\":\"uint96\"},{\"internalType\":\"uint16\",\"name\":\"proofWindow\",\"type\":\"uint16\"}],\"internalType\":\"structTaikoData.Block\",\"name\":\"blk\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"relaySignalRoot\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"blockMaxProposals\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"blockRingBufferSize\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"blockMaxVerificationsPerTx\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"blockMaxGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"blockFeeBaseGas\",\"type\":\"uint32\"},{\"internalType\":\"uint24\",\"name\":\"blockMaxTxListBytes\",\"type\":\"uint24\"},{\"internalType\":\"uint256\",\"name\":\"blockTxListExpiry\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proposerRewardPerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proposerRewardMax\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proofRegularCooldown\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proofOracleCooldown\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"proofWindow\",\"type\":\"uint16\"},{\"internalType\":\"uint96\",\"name\":\"proofBond\",\"type\":\"uint96\"},{\"internalType\":\"bool\",\"name\":\"skipProverAssignmentVerificaiton\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"ethDepositRingBufferSize\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"ethDepositMinCountPerBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"ethDepositMaxCountPerBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint96\",\"name\":\"ethDepositMinAmount\",\"type\":\"uint96\"},{\"internalType\":\"uint96\",\"name\":\"ethDepositMaxAmount\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"ethDepositGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ethDepositMaxFee\",\"type\":\"uint256\"}],\"internalType\":\"structTaikoData.Config\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blockId\",\"type\":\"uint64\"}],\"name\":\"getCrossChainBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blockId\",\"type\":\"uint64\"}],\"name\":\"getCrossChainSignalRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blockId\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"parentHash\",\"type\":\"bytes32\"}],\"name\":\"getForkChoice\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"signalRoot\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"prover\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"provenAt\",\"type\":\"uint64\"}],\"internalType\":\"structTaikoData.ForkChoice\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStateVariables\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"genesisHeight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"genesisTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"numBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastVerifiedBlockId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextEthDepositToProcess\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"numEthDeposits\",\"type\":\"uint64\"}],\"internalType\":\"structTaikoData.StateVariables\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getTaikoTokenBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"id\",\"type\":\"uint16\"}],\"name\":\"getVerifierName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addressManager\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_genesisBlockHash\",\"type\":\"bytes32\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"assignment\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"txList\",\"type\":\"bytes\"}],\"name\":\"proposeBlock\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"l1Height\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"l1Hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"mixHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"txListHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"txListByteStart\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"txListByteEnd\",\"type\":\"uint24\"},{\"internalType\":\"uint32\",\"name\":\"gasLimit\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"amount\",\"type\":\"uint96\"},{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"internalType\":\"structTaikoData.EthDeposit[]\",\"name\":\"depositsProcessed\",\"type\":\"tuple[]\"}],\"internalType\":\"structTaikoData.BlockMetadata\",\"name\":\"meta\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blockId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"}],\"name\":\"proveBlock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"allowZeroAddress\",\"type\":\"bool\"}],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"allowZeroAddress\",\"type\":\"bool\"}],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAddressManager\",\"type\":\"address\"}],\"name\":\"setAddressManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"state\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"genesisHeight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"genesisTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"numEthDeposits\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextEthDepositToProcess\",\"type\":\"uint64\"}],\"internalType\":\"structTaikoData.SlotA\",\"name\":\"slotA\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"numBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextEthDepositToProcess\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastVerifiedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastVerifiedBlockId\",\"type\":\"uint64\"}],\"internalType\":\"structTaikoData.SlotB\",\"name\":\"slotB\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"maxBlocks\",\"type\":\"uint64\"}],\"name\":\"verifyBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawTaikoToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", } // TaikoL1ABI is the input ABI used to generate the binding from. @@ -315,130 +338,40 @@ func (_TaikoL1 *TaikoL1CallerSession) CanDepositEthToL2(amount *big.Int) (bool, return _TaikoL1.Contract.CanDepositEthToL2(&_TaikoL1.CallOpts, amount) } -// GetBlock is a free data retrieval call binding the contract method 0x04c07569. +// GetBlock is a free data retrieval call binding the contract method 0x5fa15e79. // -// Solidity: function getBlock(uint256 blockId) view returns(bytes32 _metaHash, uint32 _gasLimit, uint24 _nextForkChoiceId, uint24 _verifiedForkChoiceId, bool _proverReleased, address _proposer, uint32 _feePerGas, uint64 _proposedAt, address _assignedProver, uint32 _rewardPerGas, uint64 _proofWindow) -func (_TaikoL1 *TaikoL1Caller) GetBlock(opts *bind.CallOpts, blockId *big.Int) (struct { - MetaHash [32]byte - GasLimit uint32 - NextForkChoiceId *big.Int - VerifiedForkChoiceId *big.Int - ProverReleased bool - Proposer common.Address - FeePerGas uint32 - ProposedAt uint64 - AssignedProver common.Address - RewardPerGas uint32 - ProofWindow uint64 -}, error) { +// Solidity: function getBlock(uint64 blockId) view returns((bytes32,address,uint64,uint16,uint16,uint64,uint96,uint16) blk) +func (_TaikoL1 *TaikoL1Caller) GetBlock(opts *bind.CallOpts, blockId uint64) (TaikoDataBlock, error) { var out []interface{} err := _TaikoL1.contract.Call(opts, &out, "getBlock", blockId) - outstruct := new(struct { - MetaHash [32]byte - GasLimit uint32 - NextForkChoiceId *big.Int - VerifiedForkChoiceId *big.Int - ProverReleased bool - Proposer common.Address - FeePerGas uint32 - ProposedAt uint64 - AssignedProver common.Address - RewardPerGas uint32 - ProofWindow uint64 - }) if err != nil { - return *outstruct, err + return *new(TaikoDataBlock), err } - outstruct.MetaHash = *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - outstruct.GasLimit = *abi.ConvertType(out[1], new(uint32)).(*uint32) - outstruct.NextForkChoiceId = *abi.ConvertType(out[2], new(*big.Int)).(**big.Int) - outstruct.VerifiedForkChoiceId = *abi.ConvertType(out[3], new(*big.Int)).(**big.Int) - outstruct.ProverReleased = *abi.ConvertType(out[4], new(bool)).(*bool) - outstruct.Proposer = *abi.ConvertType(out[5], new(common.Address)).(*common.Address) - outstruct.FeePerGas = *abi.ConvertType(out[6], new(uint32)).(*uint32) - outstruct.ProposedAt = *abi.ConvertType(out[7], new(uint64)).(*uint64) - outstruct.AssignedProver = *abi.ConvertType(out[8], new(common.Address)).(*common.Address) - outstruct.RewardPerGas = *abi.ConvertType(out[9], new(uint32)).(*uint32) - outstruct.ProofWindow = *abi.ConvertType(out[10], new(uint64)).(*uint64) + out0 := *abi.ConvertType(out[0], new(TaikoDataBlock)).(*TaikoDataBlock) - return *outstruct, err + return out0, err } -// GetBlock is a free data retrieval call binding the contract method 0x04c07569. +// GetBlock is a free data retrieval call binding the contract method 0x5fa15e79. // -// Solidity: function getBlock(uint256 blockId) view returns(bytes32 _metaHash, uint32 _gasLimit, uint24 _nextForkChoiceId, uint24 _verifiedForkChoiceId, bool _proverReleased, address _proposer, uint32 _feePerGas, uint64 _proposedAt, address _assignedProver, uint32 _rewardPerGas, uint64 _proofWindow) -func (_TaikoL1 *TaikoL1Session) GetBlock(blockId *big.Int) (struct { - MetaHash [32]byte - GasLimit uint32 - NextForkChoiceId *big.Int - VerifiedForkChoiceId *big.Int - ProverReleased bool - Proposer common.Address - FeePerGas uint32 - ProposedAt uint64 - AssignedProver common.Address - RewardPerGas uint32 - ProofWindow uint64 -}, error) { +// Solidity: function getBlock(uint64 blockId) view returns((bytes32,address,uint64,uint16,uint16,uint64,uint96,uint16) blk) +func (_TaikoL1 *TaikoL1Session) GetBlock(blockId uint64) (TaikoDataBlock, error) { return _TaikoL1.Contract.GetBlock(&_TaikoL1.CallOpts, blockId) } -// GetBlock is a free data retrieval call binding the contract method 0x04c07569. +// GetBlock is a free data retrieval call binding the contract method 0x5fa15e79. // -// Solidity: function getBlock(uint256 blockId) view returns(bytes32 _metaHash, uint32 _gasLimit, uint24 _nextForkChoiceId, uint24 _verifiedForkChoiceId, bool _proverReleased, address _proposer, uint32 _feePerGas, uint64 _proposedAt, address _assignedProver, uint32 _rewardPerGas, uint64 _proofWindow) -func (_TaikoL1 *TaikoL1CallerSession) GetBlock(blockId *big.Int) (struct { - MetaHash [32]byte - GasLimit uint32 - NextForkChoiceId *big.Int - VerifiedForkChoiceId *big.Int - ProverReleased bool - Proposer common.Address - FeePerGas uint32 - ProposedAt uint64 - AssignedProver common.Address - RewardPerGas uint32 - ProofWindow uint64 -}, error) { +// Solidity: function getBlock(uint64 blockId) view returns((bytes32,address,uint64,uint16,uint16,uint64,uint96,uint16) blk) +func (_TaikoL1 *TaikoL1CallerSession) GetBlock(blockId uint64) (TaikoDataBlock, error) { return _TaikoL1.Contract.GetBlock(&_TaikoL1.CallOpts, blockId) } -// GetBlockFee is a free data retrieval call binding the contract method 0xffb2784f. -// -// Solidity: function getBlockFee(uint32 gasLimit) view returns(uint64) -func (_TaikoL1 *TaikoL1Caller) GetBlockFee(opts *bind.CallOpts, gasLimit uint32) (uint64, error) { - var out []interface{} - err := _TaikoL1.contract.Call(opts, &out, "getBlockFee", gasLimit) - - if err != nil { - return *new(uint64), err - } - - out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) - - return out0, err - -} - -// GetBlockFee is a free data retrieval call binding the contract method 0xffb2784f. -// -// Solidity: function getBlockFee(uint32 gasLimit) view returns(uint64) -func (_TaikoL1 *TaikoL1Session) GetBlockFee(gasLimit uint32) (uint64, error) { - return _TaikoL1.Contract.GetBlockFee(&_TaikoL1.CallOpts, gasLimit) -} - -// GetBlockFee is a free data retrieval call binding the contract method 0xffb2784f. -// -// Solidity: function getBlockFee(uint32 gasLimit) view returns(uint64) -func (_TaikoL1 *TaikoL1CallerSession) GetBlockFee(gasLimit uint32) (uint64, error) { - return _TaikoL1.Contract.GetBlockFee(&_TaikoL1.CallOpts, gasLimit) -} - // GetConfig is a free data retrieval call binding the contract method 0xc3f909d4. // -// Solidity: function getConfig() pure returns((uint256,bool,uint256,uint256,uint256,uint32,uint32,uint64,uint64,uint256,uint256,uint256,uint16,uint16,uint16,uint256,uint64,uint64,uint96,uint96,uint256,uint256,uint8,uint32,uint32)) +// Solidity: function getConfig() pure returns((uint256,bool,uint64,uint64,uint64,uint32,uint32,uint24,uint256,uint256,uint256,uint256,uint256,uint16,uint96,bool,uint256,uint64,uint64,uint96,uint96,uint256,uint256)) func (_TaikoL1 *TaikoL1Caller) GetConfig(opts *bind.CallOpts) (TaikoDataConfig, error) { var out []interface{} err := _TaikoL1.contract.Call(opts, &out, "getConfig") @@ -455,22 +388,22 @@ func (_TaikoL1 *TaikoL1Caller) GetConfig(opts *bind.CallOpts) (TaikoDataConfig, // GetConfig is a free data retrieval call binding the contract method 0xc3f909d4. // -// Solidity: function getConfig() pure returns((uint256,bool,uint256,uint256,uint256,uint32,uint32,uint64,uint64,uint256,uint256,uint256,uint16,uint16,uint16,uint256,uint64,uint64,uint96,uint96,uint256,uint256,uint8,uint32,uint32)) +// Solidity: function getConfig() pure returns((uint256,bool,uint64,uint64,uint64,uint32,uint32,uint24,uint256,uint256,uint256,uint256,uint256,uint16,uint96,bool,uint256,uint64,uint64,uint96,uint96,uint256,uint256)) func (_TaikoL1 *TaikoL1Session) GetConfig() (TaikoDataConfig, error) { return _TaikoL1.Contract.GetConfig(&_TaikoL1.CallOpts) } // GetConfig is a free data retrieval call binding the contract method 0xc3f909d4. // -// Solidity: function getConfig() pure returns((uint256,bool,uint256,uint256,uint256,uint32,uint32,uint64,uint64,uint256,uint256,uint256,uint16,uint16,uint16,uint256,uint64,uint64,uint96,uint96,uint256,uint256,uint8,uint32,uint32)) +// Solidity: function getConfig() pure returns((uint256,bool,uint64,uint64,uint64,uint32,uint32,uint24,uint256,uint256,uint256,uint256,uint256,uint16,uint96,bool,uint256,uint64,uint64,uint96,uint96,uint256,uint256)) func (_TaikoL1 *TaikoL1CallerSession) GetConfig() (TaikoDataConfig, error) { return _TaikoL1.Contract.GetConfig(&_TaikoL1.CallOpts) } -// GetCrossChainBlockHash is a free data retrieval call binding the contract method 0xbacb386d. +// GetCrossChainBlockHash is a free data retrieval call binding the contract method 0xbdd6bc36. // -// Solidity: function getCrossChainBlockHash(uint256 blockId) view returns(bytes32) -func (_TaikoL1 *TaikoL1Caller) GetCrossChainBlockHash(opts *bind.CallOpts, blockId *big.Int) ([32]byte, error) { +// Solidity: function getCrossChainBlockHash(uint64 blockId) view returns(bytes32) +func (_TaikoL1 *TaikoL1Caller) GetCrossChainBlockHash(opts *bind.CallOpts, blockId uint64) ([32]byte, error) { var out []interface{} err := _TaikoL1.contract.Call(opts, &out, "getCrossChainBlockHash", blockId) @@ -484,24 +417,24 @@ func (_TaikoL1 *TaikoL1Caller) GetCrossChainBlockHash(opts *bind.CallOpts, block } -// GetCrossChainBlockHash is a free data retrieval call binding the contract method 0xbacb386d. +// GetCrossChainBlockHash is a free data retrieval call binding the contract method 0xbdd6bc36. // -// Solidity: function getCrossChainBlockHash(uint256 blockId) view returns(bytes32) -func (_TaikoL1 *TaikoL1Session) GetCrossChainBlockHash(blockId *big.Int) ([32]byte, error) { +// Solidity: function getCrossChainBlockHash(uint64 blockId) view returns(bytes32) +func (_TaikoL1 *TaikoL1Session) GetCrossChainBlockHash(blockId uint64) ([32]byte, error) { return _TaikoL1.Contract.GetCrossChainBlockHash(&_TaikoL1.CallOpts, blockId) } -// GetCrossChainBlockHash is a free data retrieval call binding the contract method 0xbacb386d. +// GetCrossChainBlockHash is a free data retrieval call binding the contract method 0xbdd6bc36. // -// Solidity: function getCrossChainBlockHash(uint256 blockId) view returns(bytes32) -func (_TaikoL1 *TaikoL1CallerSession) GetCrossChainBlockHash(blockId *big.Int) ([32]byte, error) { +// Solidity: function getCrossChainBlockHash(uint64 blockId) view returns(bytes32) +func (_TaikoL1 *TaikoL1CallerSession) GetCrossChainBlockHash(blockId uint64) ([32]byte, error) { return _TaikoL1.Contract.GetCrossChainBlockHash(&_TaikoL1.CallOpts, blockId) } -// GetCrossChainSignalRoot is a free data retrieval call binding the contract method 0xb8914ce4. +// GetCrossChainSignalRoot is a free data retrieval call binding the contract method 0x0599d294. // -// Solidity: function getCrossChainSignalRoot(uint256 blockId) view returns(bytes32) -func (_TaikoL1 *TaikoL1Caller) GetCrossChainSignalRoot(opts *bind.CallOpts, blockId *big.Int) ([32]byte, error) { +// Solidity: function getCrossChainSignalRoot(uint64 blockId) view returns(bytes32) +func (_TaikoL1 *TaikoL1Caller) GetCrossChainSignalRoot(opts *bind.CallOpts, blockId uint64) ([32]byte, error) { var out []interface{} err := _TaikoL1.contract.Call(opts, &out, "getCrossChainSignalRoot", blockId) @@ -515,26 +448,26 @@ func (_TaikoL1 *TaikoL1Caller) GetCrossChainSignalRoot(opts *bind.CallOpts, bloc } -// GetCrossChainSignalRoot is a free data retrieval call binding the contract method 0xb8914ce4. +// GetCrossChainSignalRoot is a free data retrieval call binding the contract method 0x0599d294. // -// Solidity: function getCrossChainSignalRoot(uint256 blockId) view returns(bytes32) -func (_TaikoL1 *TaikoL1Session) GetCrossChainSignalRoot(blockId *big.Int) ([32]byte, error) { +// Solidity: function getCrossChainSignalRoot(uint64 blockId) view returns(bytes32) +func (_TaikoL1 *TaikoL1Session) GetCrossChainSignalRoot(blockId uint64) ([32]byte, error) { return _TaikoL1.Contract.GetCrossChainSignalRoot(&_TaikoL1.CallOpts, blockId) } -// GetCrossChainSignalRoot is a free data retrieval call binding the contract method 0xb8914ce4. +// GetCrossChainSignalRoot is a free data retrieval call binding the contract method 0x0599d294. // -// Solidity: function getCrossChainSignalRoot(uint256 blockId) view returns(bytes32) -func (_TaikoL1 *TaikoL1CallerSession) GetCrossChainSignalRoot(blockId *big.Int) ([32]byte, error) { +// Solidity: function getCrossChainSignalRoot(uint64 blockId) view returns(bytes32) +func (_TaikoL1 *TaikoL1CallerSession) GetCrossChainSignalRoot(blockId uint64) ([32]byte, error) { return _TaikoL1.Contract.GetCrossChainSignalRoot(&_TaikoL1.CallOpts, blockId) } -// GetForkChoice is a free data retrieval call binding the contract method 0x7163e0ed. +// GetForkChoice is a free data retrieval call binding the contract method 0xc24c235c. // -// Solidity: function getForkChoice(uint256 blockId, bytes32 parentHash, uint32 parentGasUsed) view returns((bytes32,bytes32,bytes32,address,uint64,uint32)) -func (_TaikoL1 *TaikoL1Caller) GetForkChoice(opts *bind.CallOpts, blockId *big.Int, parentHash [32]byte, parentGasUsed uint32) (TaikoDataForkChoice, error) { +// Solidity: function getForkChoice(uint64 blockId, bytes32 parentHash) view returns((bytes32,bytes32,bytes32,address,uint64)) +func (_TaikoL1 *TaikoL1Caller) GetForkChoice(opts *bind.CallOpts, blockId uint64, parentHash [32]byte) (TaikoDataForkChoice, error) { var out []interface{} - err := _TaikoL1.contract.Call(opts, &out, "getForkChoice", blockId, parentHash, parentGasUsed) + err := _TaikoL1.contract.Call(opts, &out, "getForkChoice", blockId, parentHash) if err != nil { return *new(TaikoDataForkChoice), err @@ -546,23 +479,23 @@ func (_TaikoL1 *TaikoL1Caller) GetForkChoice(opts *bind.CallOpts, blockId *big.I } -// GetForkChoice is a free data retrieval call binding the contract method 0x7163e0ed. +// GetForkChoice is a free data retrieval call binding the contract method 0xc24c235c. // -// Solidity: function getForkChoice(uint256 blockId, bytes32 parentHash, uint32 parentGasUsed) view returns((bytes32,bytes32,bytes32,address,uint64,uint32)) -func (_TaikoL1 *TaikoL1Session) GetForkChoice(blockId *big.Int, parentHash [32]byte, parentGasUsed uint32) (TaikoDataForkChoice, error) { - return _TaikoL1.Contract.GetForkChoice(&_TaikoL1.CallOpts, blockId, parentHash, parentGasUsed) +// Solidity: function getForkChoice(uint64 blockId, bytes32 parentHash) view returns((bytes32,bytes32,bytes32,address,uint64)) +func (_TaikoL1 *TaikoL1Session) GetForkChoice(blockId uint64, parentHash [32]byte) (TaikoDataForkChoice, error) { + return _TaikoL1.Contract.GetForkChoice(&_TaikoL1.CallOpts, blockId, parentHash) } -// GetForkChoice is a free data retrieval call binding the contract method 0x7163e0ed. +// GetForkChoice is a free data retrieval call binding the contract method 0xc24c235c. // -// Solidity: function getForkChoice(uint256 blockId, bytes32 parentHash, uint32 parentGasUsed) view returns((bytes32,bytes32,bytes32,address,uint64,uint32)) -func (_TaikoL1 *TaikoL1CallerSession) GetForkChoice(blockId *big.Int, parentHash [32]byte, parentGasUsed uint32) (TaikoDataForkChoice, error) { - return _TaikoL1.Contract.GetForkChoice(&_TaikoL1.CallOpts, blockId, parentHash, parentGasUsed) +// Solidity: function getForkChoice(uint64 blockId, bytes32 parentHash) view returns((bytes32,bytes32,bytes32,address,uint64)) +func (_TaikoL1 *TaikoL1CallerSession) GetForkChoice(blockId uint64, parentHash [32]byte) (TaikoDataForkChoice, error) { + return _TaikoL1.Contract.GetForkChoice(&_TaikoL1.CallOpts, blockId, parentHash) } // GetStateVariables is a free data retrieval call binding the contract method 0xdde89cf5. // -// Solidity: function getStateVariables() view returns((uint32,uint64,uint64,uint64,uint64,uint64,uint64)) +// Solidity: function getStateVariables() view returns((uint64,uint64,uint64,uint64,uint64,uint64)) func (_TaikoL1 *TaikoL1Caller) GetStateVariables(opts *bind.CallOpts) (TaikoDataStateVariables, error) { var out []interface{} err := _TaikoL1.contract.Call(opts, &out, "getStateVariables") @@ -579,14 +512,14 @@ func (_TaikoL1 *TaikoL1Caller) GetStateVariables(opts *bind.CallOpts) (TaikoData // GetStateVariables is a free data retrieval call binding the contract method 0xdde89cf5. // -// Solidity: function getStateVariables() view returns((uint32,uint64,uint64,uint64,uint64,uint64,uint64)) +// Solidity: function getStateVariables() view returns((uint64,uint64,uint64,uint64,uint64,uint64)) func (_TaikoL1 *TaikoL1Session) GetStateVariables() (TaikoDataStateVariables, error) { return _TaikoL1.Contract.GetStateVariables(&_TaikoL1.CallOpts) } // GetStateVariables is a free data retrieval call binding the contract method 0xdde89cf5. // -// Solidity: function getStateVariables() view returns((uint32,uint64,uint64,uint64,uint64,uint64,uint64)) +// Solidity: function getStateVariables() view returns((uint64,uint64,uint64,uint64,uint64,uint64)) func (_TaikoL1 *TaikoL1CallerSession) GetStateVariables() (TaikoDataStateVariables, error) { return _TaikoL1.Contract.GetStateVariables(&_TaikoL1.CallOpts) } @@ -748,57 +681,24 @@ func (_TaikoL1 *TaikoL1CallerSession) Resolve0(name [32]byte, allowZeroAddress b // State is a free data retrieval call binding the contract method 0xc19d93fb. // -// Solidity: function state() view returns(uint64 genesisHeight, uint64 genesisTimestamp, uint64 __reserved70, uint64 __reserved71, uint64 numOpenBlocks, uint64 numEthDeposits, uint64 numBlocks, uint64 nextEthDepositToProcess, uint64 lastVerifiedAt, uint64 lastVerifiedBlockId, uint64 __reserved90, uint32 feePerGas, uint16 avgProofDelay) +// Solidity: function state() view returns((uint64,uint64,uint64,uint64) slotA, (uint64,uint64,uint64,uint64) slotB) func (_TaikoL1 *TaikoL1Caller) State(opts *bind.CallOpts) (struct { - GenesisHeight uint64 - GenesisTimestamp uint64 - Reserved70 uint64 - Reserved71 uint64 - NumOpenBlocks uint64 - NumEthDeposits uint64 - NumBlocks uint64 - NextEthDepositToProcess uint64 - LastVerifiedAt uint64 - LastVerifiedBlockId uint64 - Reserved90 uint64 - FeePerGas uint32 - AvgProofDelay uint16 + SlotA TaikoDataSlotA + SlotB TaikoDataSlotB }, error) { var out []interface{} err := _TaikoL1.contract.Call(opts, &out, "state") outstruct := new(struct { - GenesisHeight uint64 - GenesisTimestamp uint64 - Reserved70 uint64 - Reserved71 uint64 - NumOpenBlocks uint64 - NumEthDeposits uint64 - NumBlocks uint64 - NextEthDepositToProcess uint64 - LastVerifiedAt uint64 - LastVerifiedBlockId uint64 - Reserved90 uint64 - FeePerGas uint32 - AvgProofDelay uint16 + SlotA TaikoDataSlotA + SlotB TaikoDataSlotB }) if err != nil { return *outstruct, err } - outstruct.GenesisHeight = *abi.ConvertType(out[0], new(uint64)).(*uint64) - outstruct.GenesisTimestamp = *abi.ConvertType(out[1], new(uint64)).(*uint64) - outstruct.Reserved70 = *abi.ConvertType(out[2], new(uint64)).(*uint64) - outstruct.Reserved71 = *abi.ConvertType(out[3], new(uint64)).(*uint64) - outstruct.NumOpenBlocks = *abi.ConvertType(out[4], new(uint64)).(*uint64) - outstruct.NumEthDeposits = *abi.ConvertType(out[5], new(uint64)).(*uint64) - outstruct.NumBlocks = *abi.ConvertType(out[6], new(uint64)).(*uint64) - outstruct.NextEthDepositToProcess = *abi.ConvertType(out[7], new(uint64)).(*uint64) - outstruct.LastVerifiedAt = *abi.ConvertType(out[8], new(uint64)).(*uint64) - outstruct.LastVerifiedBlockId = *abi.ConvertType(out[9], new(uint64)).(*uint64) - outstruct.Reserved90 = *abi.ConvertType(out[10], new(uint64)).(*uint64) - outstruct.FeePerGas = *abi.ConvertType(out[11], new(uint32)).(*uint32) - outstruct.AvgProofDelay = *abi.ConvertType(out[12], new(uint16)).(*uint16) + outstruct.SlotA = *abi.ConvertType(out[0], new(TaikoDataSlotA)).(*TaikoDataSlotA) + outstruct.SlotB = *abi.ConvertType(out[1], new(TaikoDataSlotB)).(*TaikoDataSlotB) return *outstruct, err @@ -806,42 +706,20 @@ func (_TaikoL1 *TaikoL1Caller) State(opts *bind.CallOpts) (struct { // State is a free data retrieval call binding the contract method 0xc19d93fb. // -// Solidity: function state() view returns(uint64 genesisHeight, uint64 genesisTimestamp, uint64 __reserved70, uint64 __reserved71, uint64 numOpenBlocks, uint64 numEthDeposits, uint64 numBlocks, uint64 nextEthDepositToProcess, uint64 lastVerifiedAt, uint64 lastVerifiedBlockId, uint64 __reserved90, uint32 feePerGas, uint16 avgProofDelay) +// Solidity: function state() view returns((uint64,uint64,uint64,uint64) slotA, (uint64,uint64,uint64,uint64) slotB) func (_TaikoL1 *TaikoL1Session) State() (struct { - GenesisHeight uint64 - GenesisTimestamp uint64 - Reserved70 uint64 - Reserved71 uint64 - NumOpenBlocks uint64 - NumEthDeposits uint64 - NumBlocks uint64 - NextEthDepositToProcess uint64 - LastVerifiedAt uint64 - LastVerifiedBlockId uint64 - Reserved90 uint64 - FeePerGas uint32 - AvgProofDelay uint16 + SlotA TaikoDataSlotA + SlotB TaikoDataSlotB }, error) { return _TaikoL1.Contract.State(&_TaikoL1.CallOpts) } // State is a free data retrieval call binding the contract method 0xc19d93fb. // -// Solidity: function state() view returns(uint64 genesisHeight, uint64 genesisTimestamp, uint64 __reserved70, uint64 __reserved71, uint64 numOpenBlocks, uint64 numEthDeposits, uint64 numBlocks, uint64 nextEthDepositToProcess, uint64 lastVerifiedAt, uint64 lastVerifiedBlockId, uint64 __reserved90, uint32 feePerGas, uint16 avgProofDelay) +// Solidity: function state() view returns((uint64,uint64,uint64,uint64) slotA, (uint64,uint64,uint64,uint64) slotB) func (_TaikoL1 *TaikoL1CallerSession) State() (struct { - GenesisHeight uint64 - GenesisTimestamp uint64 - Reserved70 uint64 - Reserved71 uint64 - NumOpenBlocks uint64 - NumEthDeposits uint64 - NumBlocks uint64 - NextEthDepositToProcess uint64 - LastVerifiedAt uint64 - LastVerifiedBlockId uint64 - Reserved90 uint64 - FeePerGas uint32 - AvgProofDelay uint16 + SlotA TaikoDataSlotA + SlotB TaikoDataSlotB }, error) { return _TaikoL1.Contract.State(&_TaikoL1.CallOpts) } @@ -888,66 +766,66 @@ func (_TaikoL1 *TaikoL1TransactorSession) DepositTaikoToken(amount *big.Int) (*t return _TaikoL1.Contract.DepositTaikoToken(&_TaikoL1.TransactOpts, amount) } -// Init is a paid mutator transaction binding the contract method 0xa72111dc. +// Init is a paid mutator transaction binding the contract method 0x2cc0b254. // -// Solidity: function init(address _addressManager, bytes32 _genesisBlockHash, uint32 _initFeePerGas, uint16 _initAvgProofDelay) returns() -func (_TaikoL1 *TaikoL1Transactor) Init(opts *bind.TransactOpts, _addressManager common.Address, _genesisBlockHash [32]byte, _initFeePerGas uint32, _initAvgProofDelay uint16) (*types.Transaction, error) { - return _TaikoL1.contract.Transact(opts, "init", _addressManager, _genesisBlockHash, _initFeePerGas, _initAvgProofDelay) +// Solidity: function init(address _addressManager, bytes32 _genesisBlockHash) returns() +func (_TaikoL1 *TaikoL1Transactor) Init(opts *bind.TransactOpts, _addressManager common.Address, _genesisBlockHash [32]byte) (*types.Transaction, error) { + return _TaikoL1.contract.Transact(opts, "init", _addressManager, _genesisBlockHash) } -// Init is a paid mutator transaction binding the contract method 0xa72111dc. +// Init is a paid mutator transaction binding the contract method 0x2cc0b254. // -// Solidity: function init(address _addressManager, bytes32 _genesisBlockHash, uint32 _initFeePerGas, uint16 _initAvgProofDelay) returns() -func (_TaikoL1 *TaikoL1Session) Init(_addressManager common.Address, _genesisBlockHash [32]byte, _initFeePerGas uint32, _initAvgProofDelay uint16) (*types.Transaction, error) { - return _TaikoL1.Contract.Init(&_TaikoL1.TransactOpts, _addressManager, _genesisBlockHash, _initFeePerGas, _initAvgProofDelay) +// Solidity: function init(address _addressManager, bytes32 _genesisBlockHash) returns() +func (_TaikoL1 *TaikoL1Session) Init(_addressManager common.Address, _genesisBlockHash [32]byte) (*types.Transaction, error) { + return _TaikoL1.Contract.Init(&_TaikoL1.TransactOpts, _addressManager, _genesisBlockHash) } -// Init is a paid mutator transaction binding the contract method 0xa72111dc. +// Init is a paid mutator transaction binding the contract method 0x2cc0b254. // -// Solidity: function init(address _addressManager, bytes32 _genesisBlockHash, uint32 _initFeePerGas, uint16 _initAvgProofDelay) returns() -func (_TaikoL1 *TaikoL1TransactorSession) Init(_addressManager common.Address, _genesisBlockHash [32]byte, _initFeePerGas uint32, _initAvgProofDelay uint16) (*types.Transaction, error) { - return _TaikoL1.Contract.Init(&_TaikoL1.TransactOpts, _addressManager, _genesisBlockHash, _initFeePerGas, _initAvgProofDelay) +// Solidity: function init(address _addressManager, bytes32 _genesisBlockHash) returns() +func (_TaikoL1 *TaikoL1TransactorSession) Init(_addressManager common.Address, _genesisBlockHash [32]byte) (*types.Transaction, error) { + return _TaikoL1.Contract.Init(&_TaikoL1.TransactOpts, _addressManager, _genesisBlockHash) } -// ProposeBlock is a paid mutator transaction binding the contract method 0xef16e845. +// ProposeBlock is a paid mutator transaction binding the contract method 0xb6d5a397. // -// Solidity: function proposeBlock(bytes input, bytes txList) returns((uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,address,(address,uint96,uint64)[]) meta) -func (_TaikoL1 *TaikoL1Transactor) ProposeBlock(opts *bind.TransactOpts, input []byte, txList []byte) (*types.Transaction, error) { - return _TaikoL1.contract.Transact(opts, "proposeBlock", input, txList) +// Solidity: function proposeBlock(bytes input, bytes assignment, bytes txList) payable returns((uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,(address,uint96,uint64)[]) meta) +func (_TaikoL1 *TaikoL1Transactor) ProposeBlock(opts *bind.TransactOpts, input []byte, assignment []byte, txList []byte) (*types.Transaction, error) { + return _TaikoL1.contract.Transact(opts, "proposeBlock", input, assignment, txList) } -// ProposeBlock is a paid mutator transaction binding the contract method 0xef16e845. +// ProposeBlock is a paid mutator transaction binding the contract method 0xb6d5a397. // -// Solidity: function proposeBlock(bytes input, bytes txList) returns((uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,address,(address,uint96,uint64)[]) meta) -func (_TaikoL1 *TaikoL1Session) ProposeBlock(input []byte, txList []byte) (*types.Transaction, error) { - return _TaikoL1.Contract.ProposeBlock(&_TaikoL1.TransactOpts, input, txList) +// Solidity: function proposeBlock(bytes input, bytes assignment, bytes txList) payable returns((uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,(address,uint96,uint64)[]) meta) +func (_TaikoL1 *TaikoL1Session) ProposeBlock(input []byte, assignment []byte, txList []byte) (*types.Transaction, error) { + return _TaikoL1.Contract.ProposeBlock(&_TaikoL1.TransactOpts, input, assignment, txList) } -// ProposeBlock is a paid mutator transaction binding the contract method 0xef16e845. +// ProposeBlock is a paid mutator transaction binding the contract method 0xb6d5a397. // -// Solidity: function proposeBlock(bytes input, bytes txList) returns((uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,address,(address,uint96,uint64)[]) meta) -func (_TaikoL1 *TaikoL1TransactorSession) ProposeBlock(input []byte, txList []byte) (*types.Transaction, error) { - return _TaikoL1.Contract.ProposeBlock(&_TaikoL1.TransactOpts, input, txList) +// Solidity: function proposeBlock(bytes input, bytes assignment, bytes txList) payable returns((uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,(address,uint96,uint64)[]) meta) +func (_TaikoL1 *TaikoL1TransactorSession) ProposeBlock(input []byte, assignment []byte, txList []byte) (*types.Transaction, error) { + return _TaikoL1.Contract.ProposeBlock(&_TaikoL1.TransactOpts, input, assignment, txList) } -// ProveBlock is a paid mutator transaction binding the contract method 0xf3840f60. +// ProveBlock is a paid mutator transaction binding the contract method 0x10d008bd. // -// Solidity: function proveBlock(uint256 blockId, bytes input) returns() -func (_TaikoL1 *TaikoL1Transactor) ProveBlock(opts *bind.TransactOpts, blockId *big.Int, input []byte) (*types.Transaction, error) { +// Solidity: function proveBlock(uint64 blockId, bytes input) returns() +func (_TaikoL1 *TaikoL1Transactor) ProveBlock(opts *bind.TransactOpts, blockId uint64, input []byte) (*types.Transaction, error) { return _TaikoL1.contract.Transact(opts, "proveBlock", blockId, input) } -// ProveBlock is a paid mutator transaction binding the contract method 0xf3840f60. +// ProveBlock is a paid mutator transaction binding the contract method 0x10d008bd. // -// Solidity: function proveBlock(uint256 blockId, bytes input) returns() -func (_TaikoL1 *TaikoL1Session) ProveBlock(blockId *big.Int, input []byte) (*types.Transaction, error) { +// Solidity: function proveBlock(uint64 blockId, bytes input) returns() +func (_TaikoL1 *TaikoL1Session) ProveBlock(blockId uint64, input []byte) (*types.Transaction, error) { return _TaikoL1.Contract.ProveBlock(&_TaikoL1.TransactOpts, blockId, input) } -// ProveBlock is a paid mutator transaction binding the contract method 0xf3840f60. +// ProveBlock is a paid mutator transaction binding the contract method 0x10d008bd. // -// Solidity: function proveBlock(uint256 blockId, bytes input) returns() -func (_TaikoL1 *TaikoL1TransactorSession) ProveBlock(blockId *big.Int, input []byte) (*types.Transaction, error) { +// Solidity: function proveBlock(uint64 blockId, bytes input) returns() +func (_TaikoL1 *TaikoL1TransactorSession) ProveBlock(blockId uint64, input []byte) (*types.Transaction, error) { return _TaikoL1.Contract.ProveBlock(&_TaikoL1.TransactOpts, blockId, input) } @@ -1014,24 +892,24 @@ func (_TaikoL1 *TaikoL1TransactorSession) TransferOwnership(newOwner common.Addr return _TaikoL1.Contract.TransferOwnership(&_TaikoL1.TransactOpts, newOwner) } -// VerifyBlocks is a paid mutator transaction binding the contract method 0x2fb5ae0a. +// VerifyBlocks is a paid mutator transaction binding the contract method 0x8778209d. // -// Solidity: function verifyBlocks(uint256 maxBlocks) returns() -func (_TaikoL1 *TaikoL1Transactor) VerifyBlocks(opts *bind.TransactOpts, maxBlocks *big.Int) (*types.Transaction, error) { +// Solidity: function verifyBlocks(uint64 maxBlocks) returns() +func (_TaikoL1 *TaikoL1Transactor) VerifyBlocks(opts *bind.TransactOpts, maxBlocks uint64) (*types.Transaction, error) { return _TaikoL1.contract.Transact(opts, "verifyBlocks", maxBlocks) } -// VerifyBlocks is a paid mutator transaction binding the contract method 0x2fb5ae0a. +// VerifyBlocks is a paid mutator transaction binding the contract method 0x8778209d. // -// Solidity: function verifyBlocks(uint256 maxBlocks) returns() -func (_TaikoL1 *TaikoL1Session) VerifyBlocks(maxBlocks *big.Int) (*types.Transaction, error) { +// Solidity: function verifyBlocks(uint64 maxBlocks) returns() +func (_TaikoL1 *TaikoL1Session) VerifyBlocks(maxBlocks uint64) (*types.Transaction, error) { return _TaikoL1.Contract.VerifyBlocks(&_TaikoL1.TransactOpts, maxBlocks) } -// VerifyBlocks is a paid mutator transaction binding the contract method 0x2fb5ae0a. +// VerifyBlocks is a paid mutator transaction binding the contract method 0x8778209d. // -// Solidity: function verifyBlocks(uint256 maxBlocks) returns() -func (_TaikoL1 *TaikoL1TransactorSession) VerifyBlocks(maxBlocks *big.Int) (*types.Transaction, error) { +// Solidity: function verifyBlocks(uint64 maxBlocks) returns() +func (_TaikoL1 *TaikoL1TransactorSession) VerifyBlocks(maxBlocks uint64) (*types.Transaction, error) { return _TaikoL1.Contract.VerifyBlocks(&_TaikoL1.TransactOpts, maxBlocks) } @@ -1290,50 +1168,49 @@ func (it *TaikoL1BlockProposedIterator) Close() error { // TaikoL1BlockProposed represents a BlockProposed event raised by the TaikoL1 contract. type TaikoL1BlockProposed struct { - BlockId *big.Int - AssignedProver common.Address - RewardPerGas uint32 - FeePerGas uint64 - Meta TaikoDataBlockMetadata - Raw types.Log // Blockchain specific contextual infos + BlockId *big.Int + Prover common.Address + Reward *big.Int + Meta TaikoDataBlockMetadata + Raw types.Log // Blockchain specific contextual infos } -// FilterBlockProposed is a free log retrieval operation binding the contract event 0xeff8292b096b6478c20f0047b60a36bbc7d7c8ec6465769a628fbad6b151170d. +// FilterBlockProposed is a free log retrieval operation binding the contract event 0xe3713939242e9072c6fbb16f90e98d4b583d66b9fae9208ba2148aa8d6e82af6. // -// Solidity: event BlockProposed(uint256 indexed blockId, address indexed assignedProver, uint32 rewardPerGas, uint64 feePerGas, (uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,address,(address,uint96,uint64)[]) meta) -func (_TaikoL1 *TaikoL1Filterer) FilterBlockProposed(opts *bind.FilterOpts, blockId []*big.Int, assignedProver []common.Address) (*TaikoL1BlockProposedIterator, error) { +// Solidity: event BlockProposed(uint256 indexed blockId, address indexed prover, uint256 reward, (uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,(address,uint96,uint64)[]) meta) +func (_TaikoL1 *TaikoL1Filterer) FilterBlockProposed(opts *bind.FilterOpts, blockId []*big.Int, prover []common.Address) (*TaikoL1BlockProposedIterator, error) { var blockIdRule []interface{} for _, blockIdItem := range blockId { blockIdRule = append(blockIdRule, blockIdItem) } - var assignedProverRule []interface{} - for _, assignedProverItem := range assignedProver { - assignedProverRule = append(assignedProverRule, assignedProverItem) + var proverRule []interface{} + for _, proverItem := range prover { + proverRule = append(proverRule, proverItem) } - logs, sub, err := _TaikoL1.contract.FilterLogs(opts, "BlockProposed", blockIdRule, assignedProverRule) + logs, sub, err := _TaikoL1.contract.FilterLogs(opts, "BlockProposed", blockIdRule, proverRule) if err != nil { return nil, err } return &TaikoL1BlockProposedIterator{contract: _TaikoL1.contract, event: "BlockProposed", logs: logs, sub: sub}, nil } -// WatchBlockProposed is a free log subscription operation binding the contract event 0xeff8292b096b6478c20f0047b60a36bbc7d7c8ec6465769a628fbad6b151170d. +// WatchBlockProposed is a free log subscription operation binding the contract event 0xe3713939242e9072c6fbb16f90e98d4b583d66b9fae9208ba2148aa8d6e82af6. // -// Solidity: event BlockProposed(uint256 indexed blockId, address indexed assignedProver, uint32 rewardPerGas, uint64 feePerGas, (uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,address,(address,uint96,uint64)[]) meta) -func (_TaikoL1 *TaikoL1Filterer) WatchBlockProposed(opts *bind.WatchOpts, sink chan<- *TaikoL1BlockProposed, blockId []*big.Int, assignedProver []common.Address) (event.Subscription, error) { +// Solidity: event BlockProposed(uint256 indexed blockId, address indexed prover, uint256 reward, (uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,(address,uint96,uint64)[]) meta) +func (_TaikoL1 *TaikoL1Filterer) WatchBlockProposed(opts *bind.WatchOpts, sink chan<- *TaikoL1BlockProposed, blockId []*big.Int, prover []common.Address) (event.Subscription, error) { var blockIdRule []interface{} for _, blockIdItem := range blockId { blockIdRule = append(blockIdRule, blockIdItem) } - var assignedProverRule []interface{} - for _, assignedProverItem := range assignedProver { - assignedProverRule = append(assignedProverRule, assignedProverItem) + var proverRule []interface{} + for _, proverItem := range prover { + proverRule = append(proverRule, proverItem) } - logs, sub, err := _TaikoL1.contract.WatchLogs(opts, "BlockProposed", blockIdRule, assignedProverRule) + logs, sub, err := _TaikoL1.contract.WatchLogs(opts, "BlockProposed", blockIdRule, proverRule) if err != nil { return nil, err } @@ -1365,9 +1242,9 @@ func (_TaikoL1 *TaikoL1Filterer) WatchBlockProposed(opts *bind.WatchOpts, sink c }), nil } -// ParseBlockProposed is a log parse operation binding the contract event 0xeff8292b096b6478c20f0047b60a36bbc7d7c8ec6465769a628fbad6b151170d. +// ParseBlockProposed is a log parse operation binding the contract event 0xe3713939242e9072c6fbb16f90e98d4b583d66b9fae9208ba2148aa8d6e82af6. // -// Solidity: event BlockProposed(uint256 indexed blockId, address indexed assignedProver, uint32 rewardPerGas, uint64 feePerGas, (uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,address,(address,uint96,uint64)[]) meta) +// Solidity: event BlockProposed(uint256 indexed blockId, address indexed prover, uint256 reward, (uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,(address,uint96,uint64)[]) meta) func (_TaikoL1 *TaikoL1Filterer) ParseBlockProposed(log types.Log) (*TaikoL1BlockProposed, error) { event := new(TaikoL1BlockProposed) if err := _TaikoL1.contract.UnpackLog(event, "BlockProposed", log); err != nil { @@ -1446,50 +1323,49 @@ func (it *TaikoL1BlockProposed0Iterator) Close() error { // TaikoL1BlockProposed0 represents a BlockProposed0 event raised by the TaikoL1 contract. type TaikoL1BlockProposed0 struct { - BlockId *big.Int - AssignedProver common.Address - RewardPerGas uint32 - FeePerGas uint64 - Meta TaikoDataBlockMetadata - Raw types.Log // Blockchain specific contextual infos + BlockId *big.Int + Prover common.Address + Reward *big.Int + Meta TaikoDataBlockMetadata + Raw types.Log // Blockchain specific contextual infos } -// FilterBlockProposed0 is a free log retrieval operation binding the contract event 0xeff8292b096b6478c20f0047b60a36bbc7d7c8ec6465769a628fbad6b151170d. +// FilterBlockProposed0 is a free log retrieval operation binding the contract event 0xe3713939242e9072c6fbb16f90e98d4b583d66b9fae9208ba2148aa8d6e82af6. // -// Solidity: event BlockProposed(uint256 indexed blockId, address indexed assignedProver, uint32 rewardPerGas, uint64 feePerGas, (uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,address,(address,uint96,uint64)[]) meta) -func (_TaikoL1 *TaikoL1Filterer) FilterBlockProposed0(opts *bind.FilterOpts, blockId []*big.Int, assignedProver []common.Address) (*TaikoL1BlockProposed0Iterator, error) { +// Solidity: event BlockProposed(uint256 indexed blockId, address indexed prover, uint256 reward, (uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,(address,uint96,uint64)[]) meta) +func (_TaikoL1 *TaikoL1Filterer) FilterBlockProposed0(opts *bind.FilterOpts, blockId []*big.Int, prover []common.Address) (*TaikoL1BlockProposed0Iterator, error) { var blockIdRule []interface{} for _, blockIdItem := range blockId { blockIdRule = append(blockIdRule, blockIdItem) } - var assignedProverRule []interface{} - for _, assignedProverItem := range assignedProver { - assignedProverRule = append(assignedProverRule, assignedProverItem) + var proverRule []interface{} + for _, proverItem := range prover { + proverRule = append(proverRule, proverItem) } - logs, sub, err := _TaikoL1.contract.FilterLogs(opts, "BlockProposed0", blockIdRule, assignedProverRule) + logs, sub, err := _TaikoL1.contract.FilterLogs(opts, "BlockProposed0", blockIdRule, proverRule) if err != nil { return nil, err } return &TaikoL1BlockProposed0Iterator{contract: _TaikoL1.contract, event: "BlockProposed0", logs: logs, sub: sub}, nil } -// WatchBlockProposed0 is a free log subscription operation binding the contract event 0xeff8292b096b6478c20f0047b60a36bbc7d7c8ec6465769a628fbad6b151170d. +// WatchBlockProposed0 is a free log subscription operation binding the contract event 0xe3713939242e9072c6fbb16f90e98d4b583d66b9fae9208ba2148aa8d6e82af6. // -// Solidity: event BlockProposed(uint256 indexed blockId, address indexed assignedProver, uint32 rewardPerGas, uint64 feePerGas, (uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,address,(address,uint96,uint64)[]) meta) -func (_TaikoL1 *TaikoL1Filterer) WatchBlockProposed0(opts *bind.WatchOpts, sink chan<- *TaikoL1BlockProposed0, blockId []*big.Int, assignedProver []common.Address) (event.Subscription, error) { +// Solidity: event BlockProposed(uint256 indexed blockId, address indexed prover, uint256 reward, (uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,(address,uint96,uint64)[]) meta) +func (_TaikoL1 *TaikoL1Filterer) WatchBlockProposed0(opts *bind.WatchOpts, sink chan<- *TaikoL1BlockProposed0, blockId []*big.Int, prover []common.Address) (event.Subscription, error) { var blockIdRule []interface{} for _, blockIdItem := range blockId { blockIdRule = append(blockIdRule, blockIdItem) } - var assignedProverRule []interface{} - for _, assignedProverItem := range assignedProver { - assignedProverRule = append(assignedProverRule, assignedProverItem) + var proverRule []interface{} + for _, proverItem := range prover { + proverRule = append(proverRule, proverItem) } - logs, sub, err := _TaikoL1.contract.WatchLogs(opts, "BlockProposed0", blockIdRule, assignedProverRule) + logs, sub, err := _TaikoL1.contract.WatchLogs(opts, "BlockProposed0", blockIdRule, proverRule) if err != nil { return nil, err } @@ -1521,9 +1397,9 @@ func (_TaikoL1 *TaikoL1Filterer) WatchBlockProposed0(opts *bind.WatchOpts, sink }), nil } -// ParseBlockProposed0 is a log parse operation binding the contract event 0xeff8292b096b6478c20f0047b60a36bbc7d7c8ec6465769a628fbad6b151170d. +// ParseBlockProposed0 is a log parse operation binding the contract event 0xe3713939242e9072c6fbb16f90e98d4b583d66b9fae9208ba2148aa8d6e82af6. // -// Solidity: event BlockProposed(uint256 indexed blockId, address indexed assignedProver, uint32 rewardPerGas, uint64 feePerGas, (uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,address,(address,uint96,uint64)[]) meta) +// Solidity: event BlockProposed(uint256 indexed blockId, address indexed prover, uint256 reward, (uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,(address,uint96,uint64)[]) meta) func (_TaikoL1 *TaikoL1Filterer) ParseBlockProposed0(log types.Log) (*TaikoL1BlockProposed0, error) { event := new(TaikoL1BlockProposed0) if err := _TaikoL1.contract.UnpackLog(event, "BlockProposed0", log); err != nil { @@ -1602,18 +1478,17 @@ func (it *TaikoL1BlockProvenIterator) Close() error { // TaikoL1BlockProven represents a BlockProven event raised by the TaikoL1 contract. type TaikoL1BlockProven struct { - BlockId *big.Int - ParentHash [32]byte - BlockHash [32]byte - SignalRoot [32]byte - Prover common.Address - ParentGasUsed uint32 - Raw types.Log // Blockchain specific contextual infos + BlockId *big.Int + ParentHash [32]byte + BlockHash [32]byte + SignalRoot [32]byte + Prover common.Address + Raw types.Log // Blockchain specific contextual infos } -// FilterBlockProven is a free log retrieval operation binding the contract event 0x2295930c498c7b1f60143439a63dd1d24bbb730f08ff6ed383b490ba2c1cafa4. +// FilterBlockProven is a free log retrieval operation binding the contract event 0xd93fde3ea1bb11dcd7a4e66320a05fc5aa63983b6447eff660084c4b1b1b499b. // -// Solidity: event BlockProven(uint256 indexed blockId, bytes32 parentHash, bytes32 blockHash, bytes32 signalRoot, address prover, uint32 parentGasUsed) +// Solidity: event BlockProven(uint256 indexed blockId, bytes32 parentHash, bytes32 blockHash, bytes32 signalRoot, address prover) func (_TaikoL1 *TaikoL1Filterer) FilterBlockProven(opts *bind.FilterOpts, blockId []*big.Int) (*TaikoL1BlockProvenIterator, error) { var blockIdRule []interface{} @@ -1628,9 +1503,9 @@ func (_TaikoL1 *TaikoL1Filterer) FilterBlockProven(opts *bind.FilterOpts, blockI return &TaikoL1BlockProvenIterator{contract: _TaikoL1.contract, event: "BlockProven", logs: logs, sub: sub}, nil } -// WatchBlockProven is a free log subscription operation binding the contract event 0x2295930c498c7b1f60143439a63dd1d24bbb730f08ff6ed383b490ba2c1cafa4. +// WatchBlockProven is a free log subscription operation binding the contract event 0xd93fde3ea1bb11dcd7a4e66320a05fc5aa63983b6447eff660084c4b1b1b499b. // -// Solidity: event BlockProven(uint256 indexed blockId, bytes32 parentHash, bytes32 blockHash, bytes32 signalRoot, address prover, uint32 parentGasUsed) +// Solidity: event BlockProven(uint256 indexed blockId, bytes32 parentHash, bytes32 blockHash, bytes32 signalRoot, address prover) func (_TaikoL1 *TaikoL1Filterer) WatchBlockProven(opts *bind.WatchOpts, sink chan<- *TaikoL1BlockProven, blockId []*big.Int) (event.Subscription, error) { var blockIdRule []interface{} @@ -1670,9 +1545,9 @@ func (_TaikoL1 *TaikoL1Filterer) WatchBlockProven(opts *bind.WatchOpts, sink cha }), nil } -// ParseBlockProven is a log parse operation binding the contract event 0x2295930c498c7b1f60143439a63dd1d24bbb730f08ff6ed383b490ba2c1cafa4. +// ParseBlockProven is a log parse operation binding the contract event 0xd93fde3ea1bb11dcd7a4e66320a05fc5aa63983b6447eff660084c4b1b1b499b. // -// Solidity: event BlockProven(uint256 indexed blockId, bytes32 parentHash, bytes32 blockHash, bytes32 signalRoot, address prover, uint32 parentGasUsed) +// Solidity: event BlockProven(uint256 indexed blockId, bytes32 parentHash, bytes32 blockHash, bytes32 signalRoot, address prover) func (_TaikoL1 *TaikoL1Filterer) ParseBlockProven(log types.Log) (*TaikoL1BlockProven, error) { event := new(TaikoL1BlockProven) if err := _TaikoL1.contract.UnpackLog(event, "BlockProven", log); err != nil { @@ -1751,18 +1626,17 @@ func (it *TaikoL1BlockProven0Iterator) Close() error { // TaikoL1BlockProven0 represents a BlockProven0 event raised by the TaikoL1 contract. type TaikoL1BlockProven0 struct { - BlockId *big.Int - ParentHash [32]byte - BlockHash [32]byte - SignalRoot [32]byte - Prover common.Address - ParentGasUsed uint32 - Raw types.Log // Blockchain specific contextual infos + BlockId *big.Int + ParentHash [32]byte + BlockHash [32]byte + SignalRoot [32]byte + Prover common.Address + Raw types.Log // Blockchain specific contextual infos } -// FilterBlockProven0 is a free log retrieval operation binding the contract event 0x2295930c498c7b1f60143439a63dd1d24bbb730f08ff6ed383b490ba2c1cafa4. +// FilterBlockProven0 is a free log retrieval operation binding the contract event 0xd93fde3ea1bb11dcd7a4e66320a05fc5aa63983b6447eff660084c4b1b1b499b. // -// Solidity: event BlockProven(uint256 indexed blockId, bytes32 parentHash, bytes32 blockHash, bytes32 signalRoot, address prover, uint32 parentGasUsed) +// Solidity: event BlockProven(uint256 indexed blockId, bytes32 parentHash, bytes32 blockHash, bytes32 signalRoot, address prover) func (_TaikoL1 *TaikoL1Filterer) FilterBlockProven0(opts *bind.FilterOpts, blockId []*big.Int) (*TaikoL1BlockProven0Iterator, error) { var blockIdRule []interface{} @@ -1777,9 +1651,9 @@ func (_TaikoL1 *TaikoL1Filterer) FilterBlockProven0(opts *bind.FilterOpts, block return &TaikoL1BlockProven0Iterator{contract: _TaikoL1.contract, event: "BlockProven0", logs: logs, sub: sub}, nil } -// WatchBlockProven0 is a free log subscription operation binding the contract event 0x2295930c498c7b1f60143439a63dd1d24bbb730f08ff6ed383b490ba2c1cafa4. +// WatchBlockProven0 is a free log subscription operation binding the contract event 0xd93fde3ea1bb11dcd7a4e66320a05fc5aa63983b6447eff660084c4b1b1b499b. // -// Solidity: event BlockProven(uint256 indexed blockId, bytes32 parentHash, bytes32 blockHash, bytes32 signalRoot, address prover, uint32 parentGasUsed) +// Solidity: event BlockProven(uint256 indexed blockId, bytes32 parentHash, bytes32 blockHash, bytes32 signalRoot, address prover) func (_TaikoL1 *TaikoL1Filterer) WatchBlockProven0(opts *bind.WatchOpts, sink chan<- *TaikoL1BlockProven0, blockId []*big.Int) (event.Subscription, error) { var blockIdRule []interface{} @@ -1819,9 +1693,9 @@ func (_TaikoL1 *TaikoL1Filterer) WatchBlockProven0(opts *bind.WatchOpts, sink ch }), nil } -// ParseBlockProven0 is a log parse operation binding the contract event 0x2295930c498c7b1f60143439a63dd1d24bbb730f08ff6ed383b490ba2c1cafa4. +// ParseBlockProven0 is a log parse operation binding the contract event 0xd93fde3ea1bb11dcd7a4e66320a05fc5aa63983b6447eff660084c4b1b1b499b. // -// Solidity: event BlockProven(uint256 indexed blockId, bytes32 parentHash, bytes32 blockHash, bytes32 signalRoot, address prover, uint32 parentGasUsed) +// Solidity: event BlockProven(uint256 indexed blockId, bytes32 parentHash, bytes32 blockHash, bytes32 signalRoot, address prover) func (_TaikoL1 *TaikoL1Filterer) ParseBlockProven0(log types.Log) (*TaikoL1BlockProven0, error) { event := new(TaikoL1BlockProven0) if err := _TaikoL1.contract.UnpackLog(event, "BlockProven0", log); err != nil { @@ -1900,42 +1774,48 @@ func (it *TaikoL1BlockVerifiedIterator) Close() error { // TaikoL1BlockVerified represents a BlockVerified event raised by the TaikoL1 contract. type TaikoL1BlockVerified struct { - BlockId *big.Int - BlockHash [32]byte - Prover common.Address - BlockFee uint64 - ProofReward uint64 - Raw types.Log // Blockchain specific contextual infos + BlockId *big.Int + Prover common.Address + BlockHash [32]byte + Raw types.Log // Blockchain specific contextual infos } -// FilterBlockVerified is a free log retrieval operation binding the contract event 0x9b08b6aa43471ed7ec774671665f95855fcc9146b7f461b985aef9d9b66df06e. +// FilterBlockVerified is a free log retrieval operation binding the contract event 0xb2fa36cea736414fca28c5aca50d94c59d740984c4c878c3dd8ba26791309b1a. // -// Solidity: event BlockVerified(uint256 indexed blockId, bytes32 blockHash, address prover, uint64 blockFee, uint64 proofReward) -func (_TaikoL1 *TaikoL1Filterer) FilterBlockVerified(opts *bind.FilterOpts, blockId []*big.Int) (*TaikoL1BlockVerifiedIterator, error) { +// Solidity: event BlockVerified(uint256 indexed blockId, address indexed prover, bytes32 blockHash) +func (_TaikoL1 *TaikoL1Filterer) FilterBlockVerified(opts *bind.FilterOpts, blockId []*big.Int, prover []common.Address) (*TaikoL1BlockVerifiedIterator, error) { var blockIdRule []interface{} for _, blockIdItem := range blockId { blockIdRule = append(blockIdRule, blockIdItem) } + var proverRule []interface{} + for _, proverItem := range prover { + proverRule = append(proverRule, proverItem) + } - logs, sub, err := _TaikoL1.contract.FilterLogs(opts, "BlockVerified", blockIdRule) + logs, sub, err := _TaikoL1.contract.FilterLogs(opts, "BlockVerified", blockIdRule, proverRule) if err != nil { return nil, err } return &TaikoL1BlockVerifiedIterator{contract: _TaikoL1.contract, event: "BlockVerified", logs: logs, sub: sub}, nil } -// WatchBlockVerified is a free log subscription operation binding the contract event 0x9b08b6aa43471ed7ec774671665f95855fcc9146b7f461b985aef9d9b66df06e. +// WatchBlockVerified is a free log subscription operation binding the contract event 0xb2fa36cea736414fca28c5aca50d94c59d740984c4c878c3dd8ba26791309b1a. // -// Solidity: event BlockVerified(uint256 indexed blockId, bytes32 blockHash, address prover, uint64 blockFee, uint64 proofReward) -func (_TaikoL1 *TaikoL1Filterer) WatchBlockVerified(opts *bind.WatchOpts, sink chan<- *TaikoL1BlockVerified, blockId []*big.Int) (event.Subscription, error) { +// Solidity: event BlockVerified(uint256 indexed blockId, address indexed prover, bytes32 blockHash) +func (_TaikoL1 *TaikoL1Filterer) WatchBlockVerified(opts *bind.WatchOpts, sink chan<- *TaikoL1BlockVerified, blockId []*big.Int, prover []common.Address) (event.Subscription, error) { var blockIdRule []interface{} for _, blockIdItem := range blockId { blockIdRule = append(blockIdRule, blockIdItem) } + var proverRule []interface{} + for _, proverItem := range prover { + proverRule = append(proverRule, proverItem) + } - logs, sub, err := _TaikoL1.contract.WatchLogs(opts, "BlockVerified", blockIdRule) + logs, sub, err := _TaikoL1.contract.WatchLogs(opts, "BlockVerified", blockIdRule, proverRule) if err != nil { return nil, err } @@ -1967,9 +1847,9 @@ func (_TaikoL1 *TaikoL1Filterer) WatchBlockVerified(opts *bind.WatchOpts, sink c }), nil } -// ParseBlockVerified is a log parse operation binding the contract event 0x9b08b6aa43471ed7ec774671665f95855fcc9146b7f461b985aef9d9b66df06e. +// ParseBlockVerified is a log parse operation binding the contract event 0xb2fa36cea736414fca28c5aca50d94c59d740984c4c878c3dd8ba26791309b1a. // -// Solidity: event BlockVerified(uint256 indexed blockId, bytes32 blockHash, address prover, uint64 blockFee, uint64 proofReward) +// Solidity: event BlockVerified(uint256 indexed blockId, address indexed prover, bytes32 blockHash) func (_TaikoL1 *TaikoL1Filterer) ParseBlockVerified(log types.Log) (*TaikoL1BlockVerified, error) { event := new(TaikoL1BlockVerified) if err := _TaikoL1.contract.UnpackLog(event, "BlockVerified", log); err != nil { @@ -2048,42 +1928,48 @@ func (it *TaikoL1BlockVerified0Iterator) Close() error { // TaikoL1BlockVerified0 represents a BlockVerified0 event raised by the TaikoL1 contract. type TaikoL1BlockVerified0 struct { - BlockId *big.Int - BlockHash [32]byte - Prover common.Address - BlockFee uint64 - ProofReward uint64 - Raw types.Log // Blockchain specific contextual infos + BlockId *big.Int + Prover common.Address + BlockHash [32]byte + Raw types.Log // Blockchain specific contextual infos } -// FilterBlockVerified0 is a free log retrieval operation binding the contract event 0x9b08b6aa43471ed7ec774671665f95855fcc9146b7f461b985aef9d9b66df06e. +// FilterBlockVerified0 is a free log retrieval operation binding the contract event 0xb2fa36cea736414fca28c5aca50d94c59d740984c4c878c3dd8ba26791309b1a. // -// Solidity: event BlockVerified(uint256 indexed blockId, bytes32 blockHash, address prover, uint64 blockFee, uint64 proofReward) -func (_TaikoL1 *TaikoL1Filterer) FilterBlockVerified0(opts *bind.FilterOpts, blockId []*big.Int) (*TaikoL1BlockVerified0Iterator, error) { +// Solidity: event BlockVerified(uint256 indexed blockId, address indexed prover, bytes32 blockHash) +func (_TaikoL1 *TaikoL1Filterer) FilterBlockVerified0(opts *bind.FilterOpts, blockId []*big.Int, prover []common.Address) (*TaikoL1BlockVerified0Iterator, error) { var blockIdRule []interface{} for _, blockIdItem := range blockId { blockIdRule = append(blockIdRule, blockIdItem) } + var proverRule []interface{} + for _, proverItem := range prover { + proverRule = append(proverRule, proverItem) + } - logs, sub, err := _TaikoL1.contract.FilterLogs(opts, "BlockVerified0", blockIdRule) + logs, sub, err := _TaikoL1.contract.FilterLogs(opts, "BlockVerified0", blockIdRule, proverRule) if err != nil { return nil, err } return &TaikoL1BlockVerified0Iterator{contract: _TaikoL1.contract, event: "BlockVerified0", logs: logs, sub: sub}, nil } -// WatchBlockVerified0 is a free log subscription operation binding the contract event 0x9b08b6aa43471ed7ec774671665f95855fcc9146b7f461b985aef9d9b66df06e. +// WatchBlockVerified0 is a free log subscription operation binding the contract event 0xb2fa36cea736414fca28c5aca50d94c59d740984c4c878c3dd8ba26791309b1a. // -// Solidity: event BlockVerified(uint256 indexed blockId, bytes32 blockHash, address prover, uint64 blockFee, uint64 proofReward) -func (_TaikoL1 *TaikoL1Filterer) WatchBlockVerified0(opts *bind.WatchOpts, sink chan<- *TaikoL1BlockVerified0, blockId []*big.Int) (event.Subscription, error) { +// Solidity: event BlockVerified(uint256 indexed blockId, address indexed prover, bytes32 blockHash) +func (_TaikoL1 *TaikoL1Filterer) WatchBlockVerified0(opts *bind.WatchOpts, sink chan<- *TaikoL1BlockVerified0, blockId []*big.Int, prover []common.Address) (event.Subscription, error) { var blockIdRule []interface{} for _, blockIdItem := range blockId { blockIdRule = append(blockIdRule, blockIdItem) } + var proverRule []interface{} + for _, proverItem := range prover { + proverRule = append(proverRule, proverItem) + } - logs, sub, err := _TaikoL1.contract.WatchLogs(opts, "BlockVerified0", blockIdRule) + logs, sub, err := _TaikoL1.contract.WatchLogs(opts, "BlockVerified0", blockIdRule, proverRule) if err != nil { return nil, err } @@ -2115,9 +2001,9 @@ func (_TaikoL1 *TaikoL1Filterer) WatchBlockVerified0(opts *bind.WatchOpts, sink }), nil } -// ParseBlockVerified0 is a log parse operation binding the contract event 0x9b08b6aa43471ed7ec774671665f95855fcc9146b7f461b985aef9d9b66df06e. +// ParseBlockVerified0 is a log parse operation binding the contract event 0xb2fa36cea736414fca28c5aca50d94c59d740984c4c878c3dd8ba26791309b1a. // -// Solidity: event BlockVerified(uint256 indexed blockId, bytes32 blockHash, address prover, uint64 blockFee, uint64 proofReward) +// Solidity: event BlockVerified(uint256 indexed blockId, address indexed prover, bytes32 blockHash) func (_TaikoL1 *TaikoL1Filterer) ParseBlockVerified0(log types.Log) (*TaikoL1BlockVerified0, error) { event := new(TaikoL1BlockVerified0) if err := _TaikoL1.contract.UnpackLog(event, "BlockVerified0", log); err != nil { @@ -2196,16 +2082,16 @@ func (it *TaikoL1CrossChainSyncedIterator) Close() error { // TaikoL1CrossChainSynced represents a CrossChainSynced event raised by the TaikoL1 contract. type TaikoL1CrossChainSynced struct { - SrcHeight *big.Int + SrcHeight uint64 BlockHash [32]byte SignalRoot [32]byte Raw types.Log // Blockchain specific contextual infos } -// FilterCrossChainSynced is a free log retrieval operation binding the contract event 0x7528bbd1cef0e5d13408706892a51ee8ef82bbf33d4ec0c37216f8beba71205b. +// FilterCrossChainSynced is a free log retrieval operation binding the contract event 0x004ce985b8852a486571d0545799251fd671adcf33b7854a5f0f6a6a2431a555. // -// Solidity: event CrossChainSynced(uint256 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) -func (_TaikoL1 *TaikoL1Filterer) FilterCrossChainSynced(opts *bind.FilterOpts, srcHeight []*big.Int) (*TaikoL1CrossChainSyncedIterator, error) { +// Solidity: event CrossChainSynced(uint64 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) +func (_TaikoL1 *TaikoL1Filterer) FilterCrossChainSynced(opts *bind.FilterOpts, srcHeight []uint64) (*TaikoL1CrossChainSyncedIterator, error) { var srcHeightRule []interface{} for _, srcHeightItem := range srcHeight { @@ -2219,10 +2105,10 @@ func (_TaikoL1 *TaikoL1Filterer) FilterCrossChainSynced(opts *bind.FilterOpts, s return &TaikoL1CrossChainSyncedIterator{contract: _TaikoL1.contract, event: "CrossChainSynced", logs: logs, sub: sub}, nil } -// WatchCrossChainSynced is a free log subscription operation binding the contract event 0x7528bbd1cef0e5d13408706892a51ee8ef82bbf33d4ec0c37216f8beba71205b. +// WatchCrossChainSynced is a free log subscription operation binding the contract event 0x004ce985b8852a486571d0545799251fd671adcf33b7854a5f0f6a6a2431a555. // -// Solidity: event CrossChainSynced(uint256 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) -func (_TaikoL1 *TaikoL1Filterer) WatchCrossChainSynced(opts *bind.WatchOpts, sink chan<- *TaikoL1CrossChainSynced, srcHeight []*big.Int) (event.Subscription, error) { +// Solidity: event CrossChainSynced(uint64 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) +func (_TaikoL1 *TaikoL1Filterer) WatchCrossChainSynced(opts *bind.WatchOpts, sink chan<- *TaikoL1CrossChainSynced, srcHeight []uint64) (event.Subscription, error) { var srcHeightRule []interface{} for _, srcHeightItem := range srcHeight { @@ -2261,9 +2147,9 @@ func (_TaikoL1 *TaikoL1Filterer) WatchCrossChainSynced(opts *bind.WatchOpts, sin }), nil } -// ParseCrossChainSynced is a log parse operation binding the contract event 0x7528bbd1cef0e5d13408706892a51ee8ef82bbf33d4ec0c37216f8beba71205b. +// ParseCrossChainSynced is a log parse operation binding the contract event 0x004ce985b8852a486571d0545799251fd671adcf33b7854a5f0f6a6a2431a555. // -// Solidity: event CrossChainSynced(uint256 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) +// Solidity: event CrossChainSynced(uint64 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) func (_TaikoL1 *TaikoL1Filterer) ParseCrossChainSynced(log types.Log) (*TaikoL1CrossChainSynced, error) { event := new(TaikoL1CrossChainSynced) if err := _TaikoL1.contract.UnpackLog(event, "CrossChainSynced", log); err != nil { @@ -2342,16 +2228,16 @@ func (it *TaikoL1CrossChainSynced0Iterator) Close() error { // TaikoL1CrossChainSynced0 represents a CrossChainSynced0 event raised by the TaikoL1 contract. type TaikoL1CrossChainSynced0 struct { - SrcHeight *big.Int + SrcHeight uint64 BlockHash [32]byte SignalRoot [32]byte Raw types.Log // Blockchain specific contextual infos } -// FilterCrossChainSynced0 is a free log retrieval operation binding the contract event 0x7528bbd1cef0e5d13408706892a51ee8ef82bbf33d4ec0c37216f8beba71205b. +// FilterCrossChainSynced0 is a free log retrieval operation binding the contract event 0x004ce985b8852a486571d0545799251fd671adcf33b7854a5f0f6a6a2431a555. // -// Solidity: event CrossChainSynced(uint256 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) -func (_TaikoL1 *TaikoL1Filterer) FilterCrossChainSynced0(opts *bind.FilterOpts, srcHeight []*big.Int) (*TaikoL1CrossChainSynced0Iterator, error) { +// Solidity: event CrossChainSynced(uint64 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) +func (_TaikoL1 *TaikoL1Filterer) FilterCrossChainSynced0(opts *bind.FilterOpts, srcHeight []uint64) (*TaikoL1CrossChainSynced0Iterator, error) { var srcHeightRule []interface{} for _, srcHeightItem := range srcHeight { @@ -2365,10 +2251,10 @@ func (_TaikoL1 *TaikoL1Filterer) FilterCrossChainSynced0(opts *bind.FilterOpts, return &TaikoL1CrossChainSynced0Iterator{contract: _TaikoL1.contract, event: "CrossChainSynced0", logs: logs, sub: sub}, nil } -// WatchCrossChainSynced0 is a free log subscription operation binding the contract event 0x7528bbd1cef0e5d13408706892a51ee8ef82bbf33d4ec0c37216f8beba71205b. +// WatchCrossChainSynced0 is a free log subscription operation binding the contract event 0x004ce985b8852a486571d0545799251fd671adcf33b7854a5f0f6a6a2431a555. // -// Solidity: event CrossChainSynced(uint256 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) -func (_TaikoL1 *TaikoL1Filterer) WatchCrossChainSynced0(opts *bind.WatchOpts, sink chan<- *TaikoL1CrossChainSynced0, srcHeight []*big.Int) (event.Subscription, error) { +// Solidity: event CrossChainSynced(uint64 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) +func (_TaikoL1 *TaikoL1Filterer) WatchCrossChainSynced0(opts *bind.WatchOpts, sink chan<- *TaikoL1CrossChainSynced0, srcHeight []uint64) (event.Subscription, error) { var srcHeightRule []interface{} for _, srcHeightItem := range srcHeight { @@ -2407,9 +2293,9 @@ func (_TaikoL1 *TaikoL1Filterer) WatchCrossChainSynced0(opts *bind.WatchOpts, si }), nil } -// ParseCrossChainSynced0 is a log parse operation binding the contract event 0x7528bbd1cef0e5d13408706892a51ee8ef82bbf33d4ec0c37216f8beba71205b. +// ParseCrossChainSynced0 is a log parse operation binding the contract event 0x004ce985b8852a486571d0545799251fd671adcf33b7854a5f0f6a6a2431a555. // -// Solidity: event CrossChainSynced(uint256 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) +// Solidity: event CrossChainSynced(uint64 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) func (_TaikoL1 *TaikoL1Filterer) ParseCrossChainSynced0(log types.Log) (*TaikoL1CrossChainSynced0, error) { event := new(TaikoL1CrossChainSynced0) if err := _TaikoL1.contract.UnpackLog(event, "CrossChainSynced0", log); err != nil { diff --git a/packages/eventindexer/event.go b/packages/eventindexer/event.go index fa75cb5698..c7714d4d88 100644 --- a/packages/eventindexer/event.go +++ b/packages/eventindexer/event.go @@ -15,12 +15,8 @@ var ( EventNameBlockProven = "BlockProven" EventNameBlockProposed = "BlockProposed" EventNameBlockVerified = "BlockVerified" - EventNameSlashed = "Slashed" EventNameMessageSent = "MessageSent" EventNameSwap = "Swap" - EventNameStaked = "Staked" - EventNameExited = "Exited" - EventNameWithdrawn = "Withdrawn" EventNameMint = "Mint" EventNameNFTTransfer = "Transfer" ) @@ -92,7 +88,6 @@ type EventRepository interface { address string, event string, ) (paginate.Page, error) - GetTotalSlashedTokens(ctx context.Context) (*big.Int, error) FirstByAddressAndEventName( ctx context.Context, address string, diff --git a/packages/eventindexer/http/get_current_provers.go b/packages/eventindexer/http/get_current_provers.go deleted file mode 100644 index 446085001a..0000000000 --- a/packages/eventindexer/http/get_current_provers.go +++ /dev/null @@ -1,62 +0,0 @@ -package http - -import ( - "context" - "net/http" - - "github.com/cyberhorsey/webutils" - "github.com/labstack/echo/v4" - "github.com/patrickmn/go-cache" -) - -type Prover struct { - CurrentCapacity uint32 `json:"currentCapacity"` - Address string `json:"address"` - AmountStaked uint64 `json:"amountStaked"` - RewardPerGas uint32 `json:"rewardPerGas"` -} - -type currentProversResponse struct { - Provers []Prover `json:"provers"` -} - -func (srv *Server) GetCurrentProvers(c echo.Context) error { - cached, found := srv.cache.Get(CacheKeyCurrentProvers) - - var resp *currentProversResponse - - var err error - - if found { - resp = cached.(*currentProversResponse) - } else { - resp, err = srv.getCurrentProvers(c.Request().Context()) - if err != nil { - return webutils.LogAndRenderErrors(c, http.StatusUnprocessableEntity, err) - } - - srv.cache.Set(CacheKeyCurrentProvers, resp, cache.DefaultExpiration) - } - - return c.JSON(http.StatusOK, resp) -} - -func (srv *Server) getCurrentProvers(ctx context.Context) (*currentProversResponse, error) { - provers, err := srv.proverPool.GetProvers(nil) - if err != nil { - return nil, err - } - - resp := ¤tProversResponse{} - - for i, prover := range provers.Provers { - resp.Provers = append(resp.Provers, Prover{ - CurrentCapacity: prover.CurrentCapacity, - AmountStaked: prover.StakedAmount, - Address: provers.Stakers[i].Hex(), - RewardPerGas: prover.RewardPerGas, - }) - } - - return resp, nil -} diff --git a/packages/eventindexer/http/get_pos_stats.go b/packages/eventindexer/http/get_pos_stats.go deleted file mode 100644 index cdb6fc3e0e..0000000000 --- a/packages/eventindexer/http/get_pos_stats.go +++ /dev/null @@ -1,64 +0,0 @@ -package http - -import ( - "context" - "net/http" - - "log/slog" - - "github.com/cyberhorsey/webutils" - "github.com/labstack/echo/v4" - "github.com/patrickmn/go-cache" -) - -type posStatsResponse struct { - TotalSlashedTokens string `json:"totalSlashedTokens"` - CurrentProtocolCapacity string `json:"currentProtocolCapacity"` -} - -func (srv *Server) GetPOSStats(c echo.Context) error { - cached, found := srv.cache.Get(CacheKeyPOSStats) - - var resp *posStatsResponse - - var err error - - if found { - resp = cached.(*posStatsResponse) - } else { - resp, err = srv.getPosStats(c.Request().Context()) - - if err != nil { - return webutils.LogAndRenderErrors(c, http.StatusUnprocessableEntity, err) - } - - srv.cache.Set(CacheKeyPOSStats, resp, cache.DefaultExpiration) - } - - return c.JSON(http.StatusOK, resp) -} - -func (srv *Server) getPosStats(ctx context.Context) (*posStatsResponse, error) { - totalSlashedTokens, err := srv.eventRepo.GetTotalSlashedTokens(ctx) - if err != nil { - return nil, err - } - - capacity, err := srv.proverPool.GetCapacity(nil) - if err != nil { - return nil, err - } - - slog.Info( - "pos stats", - "totalSlashedTokens", totalSlashedTokens.String(), - "capacity", capacity.String(), - ) - - resp := &posStatsResponse{ - TotalSlashedTokens: totalSlashedTokens.String(), - CurrentProtocolCapacity: capacity.String(), - } - - return resp, nil -} diff --git a/packages/eventindexer/http/get_pos_stats_test.go b/packages/eventindexer/http/get_pos_stats_test.go deleted file mode 100644 index 8917ca62af..0000000000 --- a/packages/eventindexer/http/get_pos_stats_test.go +++ /dev/null @@ -1,50 +0,0 @@ -package http - -import ( - "net/http" - "net/http/httptest" - "testing" - "time" - - "github.com/cyberhorsey/webutils/testutils" - "github.com/labstack/echo/v4" -) - -func Test_GetPOSStats(t *testing.T) { - srv := newTestServer("") - - srv.cache.Set(CacheKeyPOSStats, &posStatsResponse{ - TotalSlashedTokens: "1", - CurrentProtocolCapacity: "1", - }, 10*time.Second) - - tests := []struct { - name string - address string - wantStatus int - wantBodyRegexpMatches []string - }{ - { - "success", - "0x123", - http.StatusOK, - []string{`{"totalSlashedTokens":"1","currentProtocolCapacity":"1"}`}, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - req := testutils.NewUnauthenticatedRequest( - echo.GET, - "/posStats", - nil, - ) - - rec := httptest.NewRecorder() - - srv.ServeHTTP(rec, req) - - testutils.AssertStatusAndBody(t, rec, tt.wantStatus, tt.wantBodyRegexpMatches) - }) - } -} diff --git a/packages/eventindexer/http/routes.go b/packages/eventindexer/http/routes.go index 193ec75f0b..e89d1bc576 100644 --- a/packages/eventindexer/http/routes.go +++ b/packages/eventindexer/http/routes.go @@ -9,8 +9,6 @@ func (srv *Server) configureRoutes() { srv.echo.GET("/eventByAddress", srv.GetCountByAddressAndEventName) srv.echo.GET("/events", srv.GetByAddressAndEventName) srv.echo.GET("/stats", srv.GetStats) - srv.echo.GET("/posStats", srv.GetPOSStats) - srv.echo.GET("/currentProvers", srv.GetCurrentProvers) srv.echo.GET("/assignedBlocks", srv.GetAssignedBlocksByProverAddress) srv.echo.GET("/nftsByAddress", srv.GetNFTBalancesByAddessAndChainID) diff --git a/packages/eventindexer/http/server.go b/packages/eventindexer/http/server.go index 2e5048a197..241ffa4b41 100644 --- a/packages/eventindexer/http/server.go +++ b/packages/eventindexer/http/server.go @@ -7,12 +7,10 @@ import ( "os" "time" - "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/ethclient" "github.com/labstack/echo/v4/middleware" "github.com/patrickmn/go-cache" "github.com/taikoxyz/taiko-mono/packages/eventindexer" - "github.com/taikoxyz/taiko-mono/packages/eventindexer/contracts/proverpool" echoprom "github.com/labstack/echo-contrib/prometheus" echo "github.com/labstack/echo/v4" @@ -24,17 +22,15 @@ type Server struct { statRepo eventindexer.StatRepository nftBalanceRepo eventindexer.NFTBalanceRepository cache *cache.Cache - proverPool *proverpool.ProverPool } type NewServerOpts struct { - Echo *echo.Echo - EventRepo eventindexer.EventRepository - StatRepo eventindexer.StatRepository - NFTBalanceRepo eventindexer.NFTBalanceRepository - ProverPoolAddress common.Address - EthClient *ethclient.Client - CorsOrigins []string + Echo *echo.Echo + EventRepo eventindexer.EventRepository + StatRepo eventindexer.StatRepository + NFTBalanceRepo eventindexer.NFTBalanceRepository + EthClient *ethclient.Client + CorsOrigins []string } func (opts NewServerOpts) Validate() error { @@ -58,8 +54,6 @@ func (opts NewServerOpts) Validate() error { return eventindexer.ErrNoNFTBalanceRepository } - // proverpooladdress is optional - return nil } @@ -70,24 +64,12 @@ func NewServer(opts NewServerOpts) (*Server, error) { cache := cache.New(5*time.Minute, 10*time.Minute) - var proverPool *proverpool.ProverPool - - var err error - - if opts.ProverPoolAddress.Hex() != "" { - proverPool, err = proverpool.NewProverPool(opts.ProverPoolAddress, opts.EthClient) - if err != nil { - return nil, err - } - } - srv := &Server{ echo: opts.Echo, eventRepo: opts.EventRepo, statRepo: opts.StatRepo, nftBalanceRepo: opts.NFTBalanceRepo, cache: cache, - proverPool: proverPool, } corsOrigins := opts.CorsOrigins diff --git a/packages/eventindexer/indexer/filter.go b/packages/eventindexer/indexer/filter.go index 42bf83667d..9ff50bc2a8 100644 --- a/packages/eventindexer/indexer/filter.go +++ b/packages/eventindexer/indexer/filter.go @@ -57,7 +57,7 @@ func L1FilterFunc( }) wg.Go(func() error { - blockVerifiedEvents, err := svc.taikol1.FilterBlockVerified(filterOpts, nil) + blockVerifiedEvents, err := svc.taikol1.FilterBlockVerified(filterOpts, nil, nil) if err != nil { return errors.Wrap(err, "svc.taikol1.FilterBlockVerified") } @@ -87,63 +87,6 @@ func L1FilterFunc( }) } - if svc.proverPool != nil { - wg.Go(func() error { - slashedEvents, err := svc.proverPool.FilterSlashed(filterOpts, nil, nil) - if err != nil { - return errors.Wrap(err, "svc.proverPool.FilterSlashed") - } - - err = svc.saveSlashedEvents(ctx, chainID, slashedEvents) - if err != nil { - return errors.Wrap(err, "svc.saveSlashedEvents") - } - - return nil - }) - - wg.Go(func() error { - stakedEvents, err := svc.proverPool.FilterStaked(filterOpts, nil) - if err != nil { - return errors.Wrap(err, "svc.proverPool.FilterStaked") - } - - err = svc.saveStakedEvents(ctx, chainID, stakedEvents) - if err != nil { - return errors.Wrap(err, "svc.saveStakedEvents") - } - - return nil - }) - - wg.Go(func() error { - exitedEvents, err := svc.proverPool.FilterExited(filterOpts, nil) - if err != nil { - return errors.Wrap(err, "svc.proverPool.FilterExited") - } - - err = svc.saveExitedEvents(ctx, chainID, exitedEvents) - if err != nil { - return errors.Wrap(err, "svc.saveExitedEvents") - } - - return nil - }) - - wg.Go(func() error { - withdrawnEvents, err := svc.proverPool.FilterWithdrawn(filterOpts, nil) - if err != nil { - return errors.Wrap(err, "svc.proverPool.FilterWithdrawn") - } - - err = svc.saveWithdrawnEvents(ctx, chainID, withdrawnEvents) - if err != nil { - return errors.Wrap(err, "svc.saveWithdrawnEvents") - } - return nil - }) - } - if svc.indexNfts { wg.Go(func() error { if err := svc.indexNFTTransfers(ctx, chainID, filterOpts.Start, *filterOpts.End); err != nil { diff --git a/packages/eventindexer/indexer/save_block_proposed_event.go b/packages/eventindexer/indexer/save_block_proposed_event.go index a34e36ebab..aa653cccf3 100644 --- a/packages/eventindexer/indexer/save_block_proposed_event.go +++ b/packages/eventindexer/indexer/save_block_proposed_event.go @@ -67,7 +67,7 @@ func (svc *Service) saveBlockProposedEvent( blockID := event.BlockId.Int64() - assignedProver := event.AssignedProver.Hex() + assignedProver := event.Prover.Hex() _, err = svc.eventRepo.Save(ctx, eventindexer.SaveEventOpts{ Name: eventindexer.EventNameBlockProposed, diff --git a/packages/eventindexer/indexer/save_block_proven_event.go b/packages/eventindexer/indexer/save_block_proven_event.go index 40c5d93ea6..a445809fef 100644 --- a/packages/eventindexer/indexer/save_block_proven_event.go +++ b/packages/eventindexer/indexer/save_block_proven_event.go @@ -87,7 +87,7 @@ func (svc *Service) saveBlockProvenEvent( } func (svc *Service) updateAverageProofTime(ctx context.Context, event *taikol1.TaikoL1BlockProven) error { - block, err := svc.taikol1.GetBlock(nil, event.BlockId) + block, err := svc.taikol1.GetBlock(nil, event.BlockId.Uint64()) // will be unable to GetBlock for older blocks, just return nil, we dont // care about averageProofTime that much to be honest for older blocks if err != nil { diff --git a/packages/eventindexer/indexer/save_block_verified_event.go b/packages/eventindexer/indexer/save_block_verified_event.go index eaec389feb..c6dc38e33c 100644 --- a/packages/eventindexer/indexer/save_block_verified_event.go +++ b/packages/eventindexer/indexer/save_block_verified_event.go @@ -8,7 +8,6 @@ import ( "log/slog" "github.com/pkg/errors" - log "github.com/sirupsen/logrus" "github.com/taikoxyz/taiko-mono/packages/eventindexer" "github.com/taikoxyz/taiko-mono/packages/eventindexer/contracts/taikol1" ) @@ -70,44 +69,5 @@ func (svc *Service) saveBlockVerifiedEvent( eventindexer.BlockVerifiedEventsProcessed.Inc() - if err := svc.updateAverageBlockReward(ctx, event); err != nil { - return errors.Wrap(err, "svc.updateAverageBlockReward") - } - - return nil -} - -func (svc *Service) updateAverageBlockReward(ctx context.Context, event *taikol1.TaikoL1BlockVerified) error { - reward := event.ProofReward - - stat, err := svc.statRepo.Find(ctx) - if err != nil { - return errors.Wrap(err, "svc.statRepo.Find") - } - - avg, ok := new(big.Int).SetString(stat.AverageProofReward, 10) - if !ok { - return errors.New("unable to convert average proof reward to string") - } - - newAverageProofReward := calcNewAverage( - avg, - new(big.Int).SetUint64(stat.NumVerifiedBlocks), - new(big.Int).SetUint64(reward), - ) - log.Infof("blockVerified reward update. id: %v, newAvg: %v, oldAvg: %v, reward: %v", - event.BlockId.String(), - newAverageProofReward.String(), - avg.String(), - reward, - ) - - _, err = svc.statRepo.Save(ctx, eventindexer.SaveStatOpts{ - ProofReward: newAverageProofReward, - }) - if err != nil { - return errors.Wrap(err, "svc.statRepo.Save") - } - return nil } diff --git a/packages/eventindexer/indexer/save_exited_event.go b/packages/eventindexer/indexer/save_exited_event.go deleted file mode 100644 index 7de130828d..0000000000 --- a/packages/eventindexer/indexer/save_exited_event.go +++ /dev/null @@ -1,73 +0,0 @@ -package indexer - -import ( - "context" - "encoding/json" - "math/big" - "strconv" - - "log/slog" - - "github.com/pkg/errors" - "github.com/taikoxyz/taiko-mono/packages/eventindexer" - "github.com/taikoxyz/taiko-mono/packages/eventindexer/contracts/proverpool" -) - -func (svc *Service) saveExitedEvents( - ctx context.Context, - chainID *big.Int, - events *proverpool.ProverPoolExitedIterator, -) error { - if !events.Next() || events.Event == nil { - slog.Info("no Exited events") - return nil - } - - for { - event := events.Event - - slog.Info("new Exited event", - "address", - event.Addr.Hex(), - "amount", - strconv.FormatUint(event.Amount, 10), - ) - - if err := svc.saveExitedEvent(ctx, chainID, event); err != nil { - eventindexer.ExitedEventsProcessedError.Inc() - - return errors.Wrap(err, "svc.saveExitedEvent") - } - - if !events.Next() { - return nil - } - } -} - -func (svc *Service) saveExitedEvent( - ctx context.Context, - chainID *big.Int, - event *proverpool.ProverPoolExited, -) error { - marshaled, err := json.Marshal(event) - if err != nil { - return errors.Wrap(err, "json.Marshal(event)") - } - - _, err = svc.eventRepo.Save(ctx, eventindexer.SaveEventOpts{ - Name: eventindexer.EventNameExited, - Data: string(marshaled), - ChainID: chainID, - Event: eventindexer.EventNameExited, - Address: event.Addr.Hex(), - Amount: new(big.Int).SetUint64(event.Amount), - }) - if err != nil { - return errors.Wrap(err, "svc.eventRepo.Save") - } - - eventindexer.ExitedEventsProcessed.Inc() - - return nil -} diff --git a/packages/eventindexer/indexer/save_slashed_event.go b/packages/eventindexer/indexer/save_slashed_event.go deleted file mode 100644 index c45acf7a74..0000000000 --- a/packages/eventindexer/indexer/save_slashed_event.go +++ /dev/null @@ -1,71 +0,0 @@ -package indexer - -import ( - "context" - "encoding/json" - "math/big" - "strconv" - - "log/slog" - - "github.com/pkg/errors" - "github.com/taikoxyz/taiko-mono/packages/eventindexer" - "github.com/taikoxyz/taiko-mono/packages/eventindexer/contracts/proverpool" -) - -func (svc *Service) saveSlashedEvents( - ctx context.Context, - chainID *big.Int, - events *proverpool.ProverPoolSlashedIterator, -) error { - if !events.Next() || events.Event == nil { - slog.Info("no Slashed events") - return nil - } - - for { - event := events.Event - - slog.Info("new slashed event", - "address", event.Addr.Hex(), - "amount", strconv.FormatUint(event.Amount, 10), - ) - - if err := svc.saveSlashedEvent(ctx, chainID, event); err != nil { - eventindexer.SlashedEventsProcessedError.Inc() - - return errors.Wrap(err, "svc.saveSlashedEvent") - } - - if !events.Next() { - return nil - } - } -} - -func (svc *Service) saveSlashedEvent( - ctx context.Context, - chainID *big.Int, - event *proverpool.ProverPoolSlashed, -) error { - marshaled, err := json.Marshal(event) - if err != nil { - return errors.Wrap(err, "json.Marshal(event)") - } - - _, err = svc.eventRepo.Save(ctx, eventindexer.SaveEventOpts{ - Name: eventindexer.EventNameSlashed, - Data: string(marshaled), - ChainID: chainID, - Event: eventindexer.EventNameSlashed, - Address: event.Addr.Hex(), - Amount: new(big.Int).SetUint64(event.Amount), - }) - if err != nil { - return errors.Wrap(err, "svc.eventRepo.Save") - } - - eventindexer.SlashedEventsProcessed.Inc() - - return nil -} diff --git a/packages/eventindexer/indexer/save_staked_event.go b/packages/eventindexer/indexer/save_staked_event.go deleted file mode 100644 index 70956d4a09..0000000000 --- a/packages/eventindexer/indexer/save_staked_event.go +++ /dev/null @@ -1,71 +0,0 @@ -package indexer - -import ( - "context" - "encoding/json" - "math/big" - "strconv" - - "log/slog" - - "github.com/pkg/errors" - "github.com/taikoxyz/taiko-mono/packages/eventindexer" - "github.com/taikoxyz/taiko-mono/packages/eventindexer/contracts/proverpool" -) - -func (svc *Service) saveStakedEvents( - ctx context.Context, - chainID *big.Int, - events *proverpool.ProverPoolStakedIterator, -) error { - if !events.Next() || events.Event == nil { - slog.Info("no Staked events") - return nil - } - - for { - event := events.Event - - slog.Info("new Staked event", - "address", event.Addr.Hex(), - "amount", strconv.FormatUint(event.Amount, 10), - ) - - if err := svc.saveStakedEvent(ctx, chainID, event); err != nil { - eventindexer.StakedEventsProcessedError.Inc() - - return errors.Wrap(err, "svc.saveStakedEvent") - } - - if !events.Next() { - return nil - } - } -} - -func (svc *Service) saveStakedEvent( - ctx context.Context, - chainID *big.Int, - event *proverpool.ProverPoolStaked, -) error { - marshaled, err := json.Marshal(event) - if err != nil { - return errors.Wrap(err, "json.Marshal(event)") - } - - _, err = svc.eventRepo.Save(ctx, eventindexer.SaveEventOpts{ - Name: eventindexer.EventNameStaked, - Data: string(marshaled), - ChainID: chainID, - Event: eventindexer.EventNameStaked, - Address: event.Addr.Hex(), - Amount: new(big.Int).SetUint64(event.Amount), - }) - if err != nil { - return errors.Wrap(err, "svc.eventRepo.Save") - } - - eventindexer.StakedEventsProcessed.Inc() - - return nil -} diff --git a/packages/eventindexer/indexer/save_withdrawn_event.go b/packages/eventindexer/indexer/save_withdrawn_event.go deleted file mode 100644 index df2db547b9..0000000000 --- a/packages/eventindexer/indexer/save_withdrawn_event.go +++ /dev/null @@ -1,70 +0,0 @@ -package indexer - -import ( - "context" - "encoding/json" - "log/slog" - "math/big" - "strconv" - - "github.com/pkg/errors" - "github.com/taikoxyz/taiko-mono/packages/eventindexer" - "github.com/taikoxyz/taiko-mono/packages/eventindexer/contracts/proverpool" -) - -func (svc *Service) saveWithdrawnEvents( - ctx context.Context, - chainID *big.Int, - events *proverpool.ProverPoolWithdrawnIterator, -) error { - if !events.Next() || events.Event == nil { - slog.Info("no Withdrawn events") - return nil - } - - for { - event := events.Event - - slog.Info("new Withdrawn event", - "address", event.Addr.Hex(), - "amount", strconv.FormatUint(event.Amount, 10), - ) - - if err := svc.saveWithdrawnEvent(ctx, chainID, event); err != nil { - eventindexer.WithdrawnEventsProcessedError.Inc() - - return errors.Wrap(err, "svc.saveWithdrawnEvent") - } - - if !events.Next() { - return nil - } - } -} - -func (svc *Service) saveWithdrawnEvent( - ctx context.Context, - chainID *big.Int, - event *proverpool.ProverPoolWithdrawn, -) error { - marshaled, err := json.Marshal(event) - if err != nil { - return errors.Wrap(err, "json.Marshal(event)") - } - - _, err = svc.eventRepo.Save(ctx, eventindexer.SaveEventOpts{ - Name: eventindexer.EventNameWithdrawn, - Data: string(marshaled), - ChainID: chainID, - Event: eventindexer.EventNameWithdrawn, - Address: event.Addr.Hex(), - Amount: new(big.Int).SetUint64(event.Amount), - }) - if err != nil { - return errors.Wrap(err, "svc.eventRepo.Save") - } - - eventindexer.WithdrawnEventsProcessed.Inc() - - return nil -} diff --git a/packages/eventindexer/indexer/service.go b/packages/eventindexer/indexer/service.go index 7a908ae421..549d942d4a 100644 --- a/packages/eventindexer/indexer/service.go +++ b/packages/eventindexer/indexer/service.go @@ -9,7 +9,6 @@ import ( "github.com/ethereum/go-ethereum/rpc" "github.com/taikoxyz/taiko-mono/packages/eventindexer" "github.com/taikoxyz/taiko-mono/packages/eventindexer/contracts/bridge" - "github.com/taikoxyz/taiko-mono/packages/eventindexer/contracts/proverpool" "github.com/taikoxyz/taiko-mono/packages/eventindexer/contracts/swap" "github.com/taikoxyz/taiko-mono/packages/eventindexer/contracts/taikol1" ) @@ -30,10 +29,9 @@ type Service struct { blockBatchSize uint64 subscriptionBackoff time.Duration - taikol1 *taikol1.TaikoL1 - proverPool *proverpool.ProverPool - bridge *bridge.Bridge - swaps []*swap.Swap + taikol1 *taikol1.TaikoL1 + bridge *bridge.Bridge + swaps []*swap.Swap indexNfts bool } @@ -46,7 +44,6 @@ type NewServiceOpts struct { EthClient *ethclient.Client RPCClient *rpc.Client SrcTaikoAddress common.Address - ProverPoolAddress common.Address SrcBridgeAddress common.Address SrcSwapAddresses []common.Address BlockBatchSize uint64 @@ -104,14 +101,6 @@ func NewService(opts NewServiceOpts) (*Service, error) { } } - var proverPool *proverpool.ProverPool - if opts.ProverPoolAddress.Hex() != ZeroAddress.Hex() { - proverPool, err = proverpool.NewProverPool(opts.ProverPoolAddress, opts.EthClient) - if err != nil { - return nil, errors.Wrap(err, "proverpool.NewProverPool") - } - } - return &Service{ eventRepo: opts.EventRepo, blockRepo: opts.BlockRepo, @@ -120,7 +109,6 @@ func NewService(opts NewServiceOpts) (*Service, error) { ethClient: opts.EthClient, taikol1: taikoL1, bridge: bridgeContract, - proverPool: proverPool, swaps: swapContracts, blockBatchSize: opts.BlockBatchSize, diff --git a/packages/eventindexer/indexer/subscribe.go b/packages/eventindexer/indexer/subscribe.go index cea2e0d08b..5dc905a384 100644 --- a/packages/eventindexer/indexer/subscribe.go +++ b/packages/eventindexer/indexer/subscribe.go @@ -3,7 +3,6 @@ package indexer import ( "context" "math/big" - "strconv" "log/slog" @@ -14,7 +13,6 @@ import ( "github.com/pkg/errors" "github.com/taikoxyz/taiko-mono/packages/eventindexer" "github.com/taikoxyz/taiko-mono/packages/eventindexer/contracts/bridge" - "github.com/taikoxyz/taiko-mono/packages/eventindexer/contracts/proverpool" "github.com/taikoxyz/taiko-mono/packages/eventindexer/contracts/swap" "github.com/taikoxyz/taiko-mono/packages/eventindexer/contracts/taikol1" ) @@ -31,13 +29,6 @@ func (svc *Service) subscribe(ctx context.Context, chainID *big.Int) error { go svc.subscribeBlockVerified(ctx, chainID, errChan) } - if svc.proverPool != nil { - go svc.subscribeSlashed(ctx, chainID, errChan) - go svc.subscribeStaked(ctx, chainID, errChan) - go svc.subscribeWithdrawn(ctx, chainID, errChan) - go svc.subscribeExited(ctx, chainID, errChan) - } - if svc.bridge != nil { go svc.subscribeMessageSent(ctx, chainID, errChan) } @@ -101,267 +92,6 @@ func (svc *Service) subscribeNftTransfers( } } -func (svc *Service) subscribeSlashed( - ctx context.Context, - chainID *big.Int, - errChan chan error, -) { - sink := make(chan *proverpool.ProverPoolSlashed) - - sub := event.ResubscribeErr(svc.subscriptionBackoff, func(ctx context.Context, err error) (event.Subscription, error) { - if err != nil { - slog.Error("svc.taikoL1.WatchSlashed", "error", err) - } - slog.Info("resubscribing to Slashed events") - - return svc.proverPool.WatchSlashed(&bind.WatchOpts{ - Context: ctx, - }, sink, nil, nil) - }) - - defer sub.Unsubscribe() - - for { - select { - case <-ctx.Done(): - slog.Info("context finished") - return - case err := <-sub.Err(): - slog.Error("sub.Err()", "error", err) - errChan <- errors.Wrap(err, "sub.Err()") - case event := <-sink: - go func() { - slog.Info("slashedEvent", - "address", event.Addr.Hex(), - "amount", strconv.FormatUint(event.Amount, 10), - ) - - if err := svc.saveSlashedEvent(ctx, chainID, event); err != nil { - eventindexer.SlashedEventsProcessedError.Inc() - - slog.Error("svc.subscribe, svc.saveSlashedEvent", "error", err) - - return - } - - block, err := svc.blockRepo.GetLatestBlockProcessed(chainID) - if err != nil { - slog.Error("svc.subscribe, svc.blockRepo.GetLatestBlockProcessed", "error", err) - return - } - - if block.Height < event.Raw.BlockNumber { - err = svc.blockRepo.Save(eventindexer.SaveBlockOpts{ - Height: event.Raw.BlockNumber, - Hash: event.Raw.BlockHash, - ChainID: chainID, - }) - if err != nil { - slog.Error("svc.subscribe, blockRepo.save", "error", err) - return - } - - eventindexer.BlocksProcessed.Inc() - } - }() - } - } -} - -func (svc *Service) subscribeStaked( - ctx context.Context, - chainID *big.Int, - errChan chan error, -) { - sink := make(chan *proverpool.ProverPoolStaked) - - sub := event.ResubscribeErr(svc.subscriptionBackoff, func(ctx context.Context, err error) (event.Subscription, error) { - if err != nil { - slog.Error("svc.taikoL1.WatchStaked", "error", err) - } - slog.Info("resubscribing to Staked events") - - return svc.proverPool.WatchStaked(&bind.WatchOpts{ - Context: ctx, - }, sink, nil) - }) - - defer sub.Unsubscribe() - - for { - select { - case <-ctx.Done(): - slog.Info("context finished") - return - case err := <-sub.Err(): - slog.Error("sub.Err()", "error", err) - errChan <- errors.Wrap(err, "sub.Err()") - case event := <-sink: - go func() { - slog.Info("stakedEvent", - "address", event.Addr.Hex(), - "amount", event.Amount) - - if err := svc.saveStakedEvent(ctx, chainID, event); err != nil { - eventindexer.StakedEventsProcessedError.Inc() - - slog.Error("svc.subscribe, svc.saveStakedEvent", "error", err) - - return - } - - block, err := svc.blockRepo.GetLatestBlockProcessed(chainID) - if err != nil { - slog.Error("svc.subscribe, svc.blockRepo.GetLatestBlockProcessed", "error", err) - return - } - - if block.Height < event.Raw.BlockNumber { - err = svc.blockRepo.Save(eventindexer.SaveBlockOpts{ - Height: event.Raw.BlockNumber, - Hash: event.Raw.BlockHash, - ChainID: chainID, - }) - if err != nil { - slog.Error("svc.subscribe, blockRepo.save", "error", err) - return - } - - eventindexer.BlocksProcessed.Inc() - } - }() - } - } -} - -func (svc *Service) subscribeExited( - ctx context.Context, - chainID *big.Int, - errChan chan error, -) { - sink := make(chan *proverpool.ProverPoolExited) - - sub := event.ResubscribeErr(svc.subscriptionBackoff, func(ctx context.Context, err error) (event.Subscription, error) { - if err != nil { - slog.Error("svc.taikoL1.WatchExited", "error", err) - } - slog.Info("resubscribing to Exited events") - - return svc.proverPool.WatchExited(&bind.WatchOpts{ - Context: ctx, - }, sink, nil) - }) - - defer sub.Unsubscribe() - - for { - select { - case <-ctx.Done(): - slog.Info("context finished") - return - case err := <-sub.Err(): - slog.Error("sub.Err()", "error", err) - errChan <- errors.Wrap(err, "sub.Err()") - case event := <-sink: - go func() { - slog.Info("exitedEvent", "address", event.Addr.Hex(), "amount", event.Amount) - - if err := svc.saveExitedEvent(ctx, chainID, event); err != nil { - eventindexer.ExitedEventsProcessedError.Inc() - - slog.Error("svc.subscribe, svc.saveExitedEvent", "error", err) - - return - } - - block, err := svc.blockRepo.GetLatestBlockProcessed(chainID) - if err != nil { - slog.Error("svc.subscribe, svc.blockRepo.GetLatestBlockProcessed", "error", err) - return - } - - if block.Height < event.Raw.BlockNumber { - err = svc.blockRepo.Save(eventindexer.SaveBlockOpts{ - Height: event.Raw.BlockNumber, - Hash: event.Raw.BlockHash, - ChainID: chainID, - }) - if err != nil { - slog.Error("svc.subscribe, blockRepo.save", "error", err) - return - } - - eventindexer.BlocksProcessed.Inc() - } - }() - } - } -} - -func (svc *Service) subscribeWithdrawn( - ctx context.Context, - chainID *big.Int, - errChan chan error, -) { - sink := make(chan *proverpool.ProverPoolWithdrawn) - - sub := event.ResubscribeErr(svc.subscriptionBackoff, func(ctx context.Context, err error) (event.Subscription, error) { - if err != nil { - slog.Error("svc.taikoL1.WatchWithdrawn", "error", err) - } - slog.Info("resubscribing to Withdrawn events") - - return svc.proverPool.WatchWithdrawn(&bind.WatchOpts{ - Context: ctx, - }, sink, nil) - }) - - defer sub.Unsubscribe() - - for { - select { - case <-ctx.Done(): - slog.Info("context finished") - return - case err := <-sub.Err(): - slog.Error("sub.Err()", "error", err) - errChan <- errors.Wrap(err, "sub.Err()") - case event := <-sink: - go func() { - slog.Info("withdrawnEvent", "address", event.Addr.Hex(), "amount", event.Amount) - - if err := svc.saveWithdrawnEvent(ctx, chainID, event); err != nil { - eventindexer.WithdrawnEventsProcessedError.Inc() - - log.Error("svc.subscribe, svc.saveWithdrawnEvent", "error", err) - - return - } - - block, err := svc.blockRepo.GetLatestBlockProcessed(chainID) - if err != nil { - slog.Error("svc.subscribe, svc.blockRepo.GetLatestBlockProcessed", "error", err) - return - } - - if block.Height < event.Raw.BlockNumber { - err = svc.blockRepo.Save(eventindexer.SaveBlockOpts{ - Height: event.Raw.BlockNumber, - Hash: event.Raw.BlockHash, - ChainID: chainID, - }) - if err != nil { - slog.Error("svc.subscribe, blockRepo.save", "error", err) - return - } - - eventindexer.BlocksProcessed.Inc() - } - }() - } - } -} - func (svc *Service) subscribeBlockProven(ctx context.Context, chainID *big.Int, errChan chan error) { sink := make(chan *taikol1.TaikoL1BlockProven) @@ -514,7 +244,7 @@ func (svc *Service) subscribeBlockVerified(ctx context.Context, chainID *big.Int return svc.taikol1.WatchBlockVerified(&bind.WatchOpts{ Context: ctx, - }, sink, nil) + }, sink, nil, nil) }) defer sub.Unsubscribe() diff --git a/packages/eventindexer/repo/event.go b/packages/eventindexer/repo/event.go index 515bfa20ed..b95934753e 100644 --- a/packages/eventindexer/repo/event.go +++ b/packages/eventindexer/repo/event.go @@ -3,7 +3,6 @@ package repo import ( "context" "database/sql" - "math/big" "net/http" "github.com/morkid/paginate" @@ -176,24 +175,6 @@ func (r *EventRepository) GetByAddressAndEventName( return page, nil } -func (r *EventRepository) GetTotalSlashedTokens( - ctx context.Context, -) (*big.Int, error) { - var sum decimal.NullDecimal - - if err := r.db.GormDB(). - Raw("SELECT SUM(amount) FROM events WHERE event = ?", eventindexer.EventNameSlashed). - FirstOrInit(&sum).Error; err != nil { - return nil, errors.Wrap(err, "r.db.FirstOrInit") - } - - if !sum.Valid { - return big.NewInt(0), nil - } - - return sum.Decimal.BigInt(), nil -} - func (r *EventRepository) FirstByAddressAndEventName( ctx context.Context, address string, diff --git a/packages/eventindexer/repo/event_test.go b/packages/eventindexer/repo/event_test.go index d44b685cf0..adc8d3d292 100644 --- a/packages/eventindexer/repo/event_test.go +++ b/packages/eventindexer/repo/event_test.go @@ -258,55 +258,6 @@ func TestIntegration_Event_Delete(t *testing.T) { } } -func TestIntegration_Event_GetTotalSlashedTokens(t *testing.T) { - db, close, err := testMysql(t) - assert.Equal(t, nil, err) - - defer close() - - eventRepo, err := NewEventRepository(db) - assert.Equal(t, nil, err) - - opts := eventindexer.SaveEventOpts{ - Name: eventindexer.EventNameSlashed, - Address: "0x123", - Data: "{\"data\":\"something\"}", - Event: eventindexer.EventNameSlashed, - ChainID: big.NewInt(1), - BlockID: &blockID, - Amount: big.NewInt(1), - } - - for i := 0; i < 5; i++ { - _, err = eventRepo.Save(context.Background(), opts) - - assert.Equal(t, nil, err) - } - - tests := []struct { - name string - wantResp *big.Int - wantErr error - }{ - { - "success", - big.NewInt(5), - nil, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - resp, err := eventRepo.GetTotalSlashedTokens( - context.Background(), - ) - spew.Dump(resp) - assert.Equal(t, tt.wantErr, err) - assert.Equal(t, tt.wantResp, resp) - }) - } -} - func TestIntegration_Event_FirstByAddressAndEvent(t *testing.T) { db, close, err := testMysql(t) assert.Equal(t, nil, err) diff --git a/packages/relayer/.golangci.yml b/packages/relayer/.golangci.yml index 689265826f..6f7b138feb 100644 --- a/packages/relayer/.golangci.yml +++ b/packages/relayer/.golangci.yml @@ -19,7 +19,7 @@ linters: - gocritic - gofmt # - revive - - gosec + # - gosec - gosimple - lll - unused diff --git a/packages/relayer/ERC1155Vault.json b/packages/relayer/ERC1155Vault.json index a8fa4176f0..bf5ab4ea8f 100644 --- a/packages/relayer/ERC1155Vault.json +++ b/packages/relayer/ERC1155Vault.json @@ -340,7 +340,7 @@ "inputs": [ { "internalType": "address", - "name": "btoken", + "name": "", "type": "address" } ], @@ -374,12 +374,12 @@ "inputs": [ { "internalType": "uint256", - "name": "chainId", + "name": "", "type": "uint256" }, { "internalType": "address", - "name": "ctokenAddress", + "name": "", "type": "address" } ], @@ -387,7 +387,7 @@ "outputs": [ { "internalType": "address", - "name": "btoken", + "name": "", "type": "address" } ], @@ -411,7 +411,7 @@ "inputs": [ { "internalType": "address", - "name": "tokenAddress", + "name": "", "type": "address" } ], @@ -419,7 +419,7 @@ "outputs": [ { "internalType": "bool", - "name": "isBridged", + "name": "", "type": "bool" } ], @@ -644,7 +644,7 @@ ], "name": "receiveToken", "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "payable", "type": "function" }, { diff --git a/packages/relayer/ERC20Vault.json b/packages/relayer/ERC20Vault.json index 03cc02a055..98ef72350f 100644 --- a/packages/relayer/ERC20Vault.json +++ b/packages/relayer/ERC20Vault.json @@ -287,7 +287,7 @@ "inputs": [ { "internalType": "address", - "name": "btoken", + "name": "", "type": "address" } ], @@ -326,12 +326,12 @@ "inputs": [ { "internalType": "uint256", - "name": "chainId", + "name": "", "type": "uint256" }, { "internalType": "address", - "name": "canonicalAddress", + "name": "", "type": "address" } ], @@ -339,7 +339,7 @@ "outputs": [ { "internalType": "address", - "name": "btoken", + "name": "", "type": "address" } ], @@ -363,7 +363,7 @@ "inputs": [ { "internalType": "address", - "name": "tokenAddress", + "name": "", "type": "address" } ], @@ -371,7 +371,7 @@ "outputs": [ { "internalType": "bool", - "name": "isBridged", + "name": "", "type": "bool" } ], @@ -518,7 +518,7 @@ ], "name": "receiveToken", "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "payable", "type": "function" }, { diff --git a/packages/relayer/ERC721Vault.json b/packages/relayer/ERC721Vault.json index a0d7d73688..461abec176 100644 --- a/packages/relayer/ERC721Vault.json +++ b/packages/relayer/ERC721Vault.json @@ -340,7 +340,7 @@ "inputs": [ { "internalType": "address", - "name": "btoken", + "name": "", "type": "address" } ], @@ -374,12 +374,12 @@ "inputs": [ { "internalType": "uint256", - "name": "chainId", + "name": "", "type": "uint256" }, { "internalType": "address", - "name": "ctokenAddress", + "name": "", "type": "address" } ], @@ -387,7 +387,7 @@ "outputs": [ { "internalType": "address", - "name": "btoken", + "name": "", "type": "address" } ], @@ -411,7 +411,7 @@ "inputs": [ { "internalType": "address", - "name": "tokenAddress", + "name": "", "type": "address" } ], @@ -419,7 +419,7 @@ "outputs": [ { "internalType": "bool", - "name": "isBridged", + "name": "", "type": "bool" } ], @@ -595,7 +595,7 @@ ], "name": "receiveToken", "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "payable", "type": "function" }, { diff --git a/packages/relayer/ICrossChainSync.json b/packages/relayer/ICrossChainSync.json index 49faa3030f..24e1ce2372 100644 --- a/packages/relayer/ICrossChainSync.json +++ b/packages/relayer/ICrossChainSync.json @@ -4,9 +4,9 @@ "inputs": [ { "indexed": true, - "internalType": "uint256", + "internalType": "uint64", "name": "srcHeight", - "type": "uint256" + "type": "uint64" }, { "indexed": false, @@ -27,9 +27,9 @@ { "inputs": [ { - "internalType": "uint256", - "name": "number", - "type": "uint256" + "internalType": "uint64", + "name": "blockId", + "type": "uint64" } ], "name": "getCrossChainBlockHash", @@ -46,9 +46,9 @@ { "inputs": [ { - "internalType": "uint256", - "name": "number", - "type": "uint256" + "internalType": "uint64", + "name": "blockId", + "type": "uint64" } ], "name": "getCrossChainSignalRoot", diff --git a/packages/relayer/TaikoL1.json b/packages/relayer/TaikoL1.json index 91d0105179..07774fcf17 100644 --- a/packages/relayer/TaikoL1.json +++ b/packages/relayer/TaikoL1.json @@ -11,53 +11,26 @@ }, { "inputs": [], - "name": "L1_BATCH_NOT_AUCTIONABLE", + "name": "L1_BLOCK_ID_MISMATCH", "type": "error" }, { "inputs": [], - "name": "L1_BLOCK_ID", + "name": "L1_BLOCK_ID_MISMATCH", "type": "error" }, { "inputs": [], - "name": "L1_BLOCK_ID", + "name": "L1_BLOCK_ID_MISMATCH", "type": "error" }, { "inputs": [], - "name": "L1_BLOCK_ID", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "expected", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "actual", - "type": "bytes32" - } - ], "name": "L1_EVIDENCE_MISMATCH", "type": "error" }, { - "inputs": [ - { - "internalType": "bytes32", - "name": "expected", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "actual", - "type": "bytes32" - } - ], + "inputs": [], "name": "L1_EVIDENCE_MISMATCH", "type": "error" }, @@ -83,12 +56,27 @@ }, { "inputs": [], - "name": "L1_INSUFFICIENT_TOKEN", + "name": "L1_INVALID_ASSIGNMENT", "type": "error" }, { "inputs": [], - "name": "L1_INVALID_BID", + "name": "L1_INVALID_ASSIGNMENT", + "type": "error" + }, + { + "inputs": [], + "name": "L1_INVALID_BLOCK_ID", + "type": "error" + }, + { + "inputs": [], + "name": "L1_INVALID_BLOCK_ID", + "type": "error" + }, + { + "inputs": [], + "name": "L1_INVALID_BLOCK_ID", "type": "error" }, { @@ -131,6 +119,16 @@ "name": "L1_INVALID_METADATA", "type": "error" }, + { + "inputs": [], + "name": "L1_INVALID_ORACLE_PROVER", + "type": "error" + }, + { + "inputs": [], + "name": "L1_INVALID_ORACLE_PROVER", + "type": "error" + }, { "inputs": [], "name": "L1_INVALID_PARAM", @@ -143,62 +141,62 @@ }, { "inputs": [], - "name": "L1_NOT_BETTER_BID", + "name": "L1_INVALID_PROPOSER", "type": "error" }, { "inputs": [], - "name": "L1_NOT_PROVEABLE", + "name": "L1_INVALID_PROPOSER", "type": "error" }, { "inputs": [], - "name": "L1_NOT_PROVEABLE", + "name": "L1_INVALID_PROVER", "type": "error" }, { "inputs": [], - "name": "L1_NOT_SPECIAL_PROVER", + "name": "L1_INVALID_PROVER", "type": "error" }, { "inputs": [], - "name": "L1_PERMISSION_DENIED", + "name": "L1_INVALID_PROVER_SIG", "type": "error" }, { "inputs": [], - "name": "L1_PERMISSION_DENIED", + "name": "L1_INVALID_PROVER_SIG", "type": "error" }, { "inputs": [], - "name": "L1_SAME_PROOF", + "name": "L1_NOT_PROVEABLE", "type": "error" }, { "inputs": [], - "name": "L1_SAME_PROOF", + "name": "L1_NOT_PROVEABLE", "type": "error" }, { "inputs": [], - "name": "L1_TOO_MANY_BLOCKS", + "name": "L1_SAME_PROOF", "type": "error" }, { "inputs": [], - "name": "L1_TOO_MANY_BLOCKS", + "name": "L1_SAME_PROOF", "type": "error" }, { "inputs": [], - "name": "L1_TOO_MANY_OPEN_BLOCKS", + "name": "L1_TOO_MANY_BLOCKS", "type": "error" }, { "inputs": [], - "name": "L1_TOO_MANY_OPEN_BLOCKS", + "name": "L1_TOO_MANY_BLOCKS", "type": "error" }, { @@ -243,12 +241,12 @@ }, { "inputs": [], - "name": "L1_UNAUTHORIZED", + "name": "L1_UNEXPECTED_FORK_CHOICE_ID", "type": "error" }, { "inputs": [], - "name": "L1_UNAUTHORIZED", + "name": "L1_UNEXPECTED_FORK_CHOICE_ID", "type": "error" }, { @@ -302,20 +300,14 @@ { "indexed": true, "internalType": "address", - "name": "assignedProver", + "name": "prover", "type": "address" }, { "indexed": false, - "internalType": "uint32", - "name": "rewardPerGas", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "feePerGas", - "type": "uint64" + "internalType": "uint256", + "name": "reward", + "type": "uint256" }, { "components": [ @@ -369,11 +361,6 @@ "name": "beneficiary", "type": "address" }, - { - "internalType": "address", - "name": "treasury", - "type": "address" - }, { "components": [ { @@ -418,20 +405,14 @@ { "indexed": true, "internalType": "address", - "name": "assignedProver", + "name": "prover", "type": "address" }, { "indexed": false, - "internalType": "uint32", - "name": "rewardPerGas", - "type": "uint32" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "feePerGas", - "type": "uint64" + "internalType": "uint256", + "name": "reward", + "type": "uint256" }, { "components": [ @@ -485,11 +466,6 @@ "name": "beneficiary", "type": "address" }, - { - "internalType": "address", - "name": "treasury", - "type": "address" - }, { "components": [ { @@ -554,12 +530,6 @@ "internalType": "address", "name": "prover", "type": "address" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "parentGasUsed", - "type": "uint32" } ], "name": "BlockProven", @@ -597,12 +567,6 @@ "internalType": "address", "name": "prover", "type": "address" - }, - { - "indexed": false, - "internalType": "uint32", - "name": "parentGasUsed", - "type": "uint32" } ], "name": "BlockProven", @@ -618,28 +582,16 @@ "type": "uint256" }, { - "indexed": false, - "internalType": "bytes32", - "name": "blockHash", - "type": "bytes32" - }, - { - "indexed": false, + "indexed": true, "internalType": "address", "name": "prover", "type": "address" }, { "indexed": false, - "internalType": "uint64", - "name": "blockFee", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "proofReward", - "type": "uint64" + "internalType": "bytes32", + "name": "blockHash", + "type": "bytes32" } ], "name": "BlockVerified", @@ -655,28 +607,16 @@ "type": "uint256" }, { - "indexed": false, - "internalType": "bytes32", - "name": "blockHash", - "type": "bytes32" - }, - { - "indexed": false, + "indexed": true, "internalType": "address", "name": "prover", "type": "address" }, { "indexed": false, - "internalType": "uint64", - "name": "blockFee", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "proofReward", - "type": "uint64" + "internalType": "bytes32", + "name": "blockHash", + "type": "bytes32" } ], "name": "BlockVerified", @@ -687,9 +627,9 @@ "inputs": [ { "indexed": true, - "internalType": "uint256", + "internalType": "uint64", "name": "srcHeight", - "type": "uint256" + "type": "uint64" }, { "indexed": false, @@ -712,9 +652,9 @@ "inputs": [ { "indexed": true, - "internalType": "uint256", + "internalType": "uint64", "name": "srcHeight", - "type": "uint256" + "type": "uint64" }, { "indexed": false, @@ -884,87 +824,60 @@ }, { "inputs": [ - { - "internalType": "uint256", - "name": "blockId", - "type": "uint256" - } - ], - "name": "getBlock", - "outputs": [ - { - "internalType": "bytes32", - "name": "_metaHash", - "type": "bytes32" - }, - { - "internalType": "uint32", - "name": "_gasLimit", - "type": "uint32" - }, - { - "internalType": "uint24", - "name": "_nextForkChoiceId", - "type": "uint24" - }, - { - "internalType": "uint24", - "name": "_verifiedForkChoiceId", - "type": "uint24" - }, - { - "internalType": "bool", - "name": "_proverReleased", - "type": "bool" - }, - { - "internalType": "address", - "name": "_proposer", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_feePerGas", - "type": "uint32" - }, { "internalType": "uint64", - "name": "_proposedAt", - "type": "uint64" - }, - { - "internalType": "address", - "name": "_assignedProver", - "type": "address" - }, - { - "internalType": "uint32", - "name": "_rewardPerGas", - "type": "uint32" - }, - { - "internalType": "uint64", - "name": "_proofWindow", + "name": "blockId", "type": "uint64" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "gasLimit", - "type": "uint32" - } - ], - "name": "getBlockFee", + "name": "getBlock", "outputs": [ { - "internalType": "uint64", - "name": "", - "type": "uint64" + "components": [ + { + "internalType": "bytes32", + "name": "metaHash", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "prover", + "type": "address" + }, + { + "internalType": "uint64", + "name": "proposedAt", + "type": "uint64" + }, + { + "internalType": "uint16", + "name": "nextForkChoiceId", + "type": "uint16" + }, + { + "internalType": "uint16", + "name": "verifiedForkChoiceId", + "type": "uint16" + }, + { + "internalType": "uint64", + "name": "blockId", + "type": "uint64" + }, + { + "internalType": "uint96", + "name": "proofBond", + "type": "uint96" + }, + { + "internalType": "uint16", + "name": "proofWindow", + "type": "uint16" + } + ], + "internalType": "struct TaikoData.Block", + "name": "blk", + "type": "tuple" } ], "stateMutability": "view", @@ -987,19 +900,19 @@ "type": "bool" }, { - "internalType": "uint256", + "internalType": "uint64", "name": "blockMaxProposals", - "type": "uint256" + "type": "uint64" }, { - "internalType": "uint256", + "internalType": "uint64", "name": "blockRingBufferSize", - "type": "uint256" + "type": "uint64" }, { - "internalType": "uint256", + "internalType": "uint64", "name": "blockMaxVerificationsPerTx", - "type": "uint256" + "type": "uint64" }, { "internalType": "uint32", @@ -1012,20 +925,25 @@ "type": "uint32" }, { - "internalType": "uint64", - "name": "blockMaxTransactions", - "type": "uint64" - }, - { - "internalType": "uint64", + "internalType": "uint24", "name": "blockMaxTxListBytes", - "type": "uint64" + "type": "uint24" }, { "internalType": "uint256", "name": "blockTxListExpiry", "type": "uint256" }, + { + "internalType": "uint256", + "name": "proposerRewardPerSecond", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "proposerRewardMax", + "type": "uint256" + }, { "internalType": "uint256", "name": "proofRegularCooldown", @@ -1038,18 +956,18 @@ }, { "internalType": "uint16", - "name": "proofMinWindow", + "name": "proofWindow", "type": "uint16" }, { - "internalType": "uint16", - "name": "proofMaxWindow", - "type": "uint16" + "internalType": "uint96", + "name": "proofBond", + "type": "uint96" }, { - "internalType": "uint16", - "name": "proofWindowMultiplier", - "type": "uint16" + "internalType": "bool", + "name": "skipProverAssignmentVerificaiton", + "type": "bool" }, { "internalType": "uint256", @@ -1085,21 +1003,6 @@ "internalType": "uint256", "name": "ethDepositMaxFee", "type": "uint256" - }, - { - "internalType": "uint8", - "name": "rewardOpenMultipler", - "type": "uint8" - }, - { - "internalType": "uint32", - "name": "rewardOpenMaxCount", - "type": "uint32" - }, - { - "internalType": "uint32", - "name": "rewardMaxDelayPenalty", - "type": "uint32" } ], "internalType": "struct TaikoData.Config", @@ -1113,9 +1016,9 @@ { "inputs": [ { - "internalType": "uint256", + "internalType": "uint64", "name": "blockId", - "type": "uint256" + "type": "uint64" } ], "name": "getCrossChainBlockHash", @@ -1132,9 +1035,9 @@ { "inputs": [ { - "internalType": "uint256", + "internalType": "uint64", "name": "blockId", - "type": "uint256" + "type": "uint64" } ], "name": "getCrossChainSignalRoot", @@ -1151,19 +1054,14 @@ { "inputs": [ { - "internalType": "uint256", + "internalType": "uint64", "name": "blockId", - "type": "uint256" + "type": "uint64" }, { "internalType": "bytes32", "name": "parentHash", "type": "bytes32" - }, - { - "internalType": "uint32", - "name": "parentGasUsed", - "type": "uint32" } ], "name": "getForkChoice", @@ -1194,11 +1092,6 @@ "internalType": "uint64", "name": "provenAt", "type": "uint64" - }, - { - "internalType": "uint32", - "name": "gasUsed", - "type": "uint32" } ], "internalType": "struct TaikoData.ForkChoice", @@ -1215,11 +1108,6 @@ "outputs": [ { "components": [ - { - "internalType": "uint32", - "name": "feePerGas", - "type": "uint32" - }, { "internalType": "uint64", "name": "genesisHeight", @@ -1308,16 +1196,6 @@ "internalType": "bytes32", "name": "_genesisBlockHash", "type": "bytes32" - }, - { - "internalType": "uint32", - "name": "_initFeePerGas", - "type": "uint32" - }, - { - "internalType": "uint16", - "name": "_initAvgProofDelay", - "type": "uint16" } ], "name": "init", @@ -1345,6 +1223,11 @@ "name": "input", "type": "bytes" }, + { + "internalType": "bytes", + "name": "assignment", + "type": "bytes" + }, { "internalType": "bytes", "name": "txList", @@ -1405,11 +1288,6 @@ "name": "beneficiary", "type": "address" }, - { - "internalType": "address", - "name": "treasury", - "type": "address" - }, { "components": [ { @@ -1438,15 +1316,15 @@ "type": "tuple" } ], - "stateMutability": "nonpayable", + "stateMutability": "payable", "type": "function" }, { "inputs": [ { - "internalType": "uint256", + "internalType": "uint64", "name": "blockId", - "type": "uint256" + "type": "uint64" }, { "internalType": "bytes", @@ -1537,69 +1415,58 @@ "name": "state", "outputs": [ { - "internalType": "uint64", - "name": "genesisHeight", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "genesisTimestamp", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "__reserved70", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "__reserved71", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "numOpenBlocks", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "numEthDeposits", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "numBlocks", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "nextEthDepositToProcess", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "lastVerifiedAt", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "lastVerifiedBlockId", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "__reserved90", - "type": "uint64" - }, - { - "internalType": "uint32", - "name": "feePerGas", - "type": "uint32" + "components": [ + { + "internalType": "uint64", + "name": "genesisHeight", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "genesisTimestamp", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "numEthDeposits", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "nextEthDepositToProcess", + "type": "uint64" + } + ], + "internalType": "struct TaikoData.SlotA", + "name": "slotA", + "type": "tuple" }, { - "internalType": "uint16", - "name": "avgProofDelay", - "type": "uint16" + "components": [ + { + "internalType": "uint64", + "name": "numBlocks", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "nextEthDepositToProcess", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "lastVerifiedAt", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "lastVerifiedBlockId", + "type": "uint64" + } + ], + "internalType": "struct TaikoData.SlotB", + "name": "slotB", + "type": "tuple" } ], "stateMutability": "view", @@ -1621,9 +1488,9 @@ { "inputs": [ { - "internalType": "uint256", + "internalType": "uint64", "name": "maxBlocks", - "type": "uint256" + "type": "uint64" } ], "name": "verifyBlocks", diff --git a/packages/relayer/contracts/erc1155vault/ERC1155Vault.go b/packages/relayer/contracts/erc1155vault/ERC1155Vault.go index 26184c46ca..4e45d122a7 100644 --- a/packages/relayer/contracts/erc1155vault/ERC1155Vault.go +++ b/packages/relayer/contracts/erc1155vault/ERC1155Vault.go @@ -68,7 +68,7 @@ type IBridgeMessage struct { // ERC1155VaultMetaData contains all meta data concerning the ERC1155Vault contract. var ERC1155VaultMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"name\":\"RESOLVER_DENIED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RESOLVER_INVALID_ADDR\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"}],\"name\":\"RESOLVER_ZERO_ADDR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INTERFACE_NOT_SUPPORTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_AMOUNT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_FROM\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_SRC_CHAIN_ID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_TO\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_TOKEN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_USER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_MAX_TOKEN_PER_TXN_EXCEEDED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_MESSAGE_NOT_FAILED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_MESSAGE_RELEASED_ALREADY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_TOKEN_ARRAY_MISMATCH\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addressManager\",\"type\":\"address\"}],\"name\":\"AddressManagerChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"ctoken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"btoken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"ctokenSymbol\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"ctokenName\",\"type\":\"string\"}],\"name\":\"BridgedTokenDeployed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"srcChainId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"TokenReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"TokenReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"destChainId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"TokenSent\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ERC1155_INTERFACE_ID\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ERC721_INTERFACE_ID\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"addressManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"btoken\",\"type\":\"address\"}],\"name\":\"bridgedToCanonical\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"ctokenAddress\",\"type\":\"address\"}],\"name\":\"canonicalToBridged\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"btoken\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addressManager\",\"type\":\"address\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"name\":\"isBridgedToken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isBridged\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"srcChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"destChainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"refundTo\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}],\"internalType\":\"structIBridge.Message\",\"name\":\"message\",\"type\":\"tuple\"}],\"name\":\"onMessageRecalled\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structBaseNFTVault.CanonicalNFT\",\"name\":\"ctoken\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"receiveToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"allowZeroAddress\",\"type\":\"bool\"}],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"allowZeroAddress\",\"type\":\"bool\"}],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"destChainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"refundTo\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}],\"internalType\":\"structBaseNFTVault.BridgeTransferOp\",\"name\":\"opt\",\"type\":\"tuple\"}],\"name\":\"sendToken\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAddressManager\",\"type\":\"address\"}],\"name\":\"setAddressManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + ABI: "[{\"inputs\":[],\"name\":\"RESOLVER_DENIED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RESOLVER_INVALID_ADDR\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"}],\"name\":\"RESOLVER_ZERO_ADDR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INTERFACE_NOT_SUPPORTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_AMOUNT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_FROM\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_SRC_CHAIN_ID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_TO\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_TOKEN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_USER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_MAX_TOKEN_PER_TXN_EXCEEDED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_MESSAGE_NOT_FAILED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_MESSAGE_RELEASED_ALREADY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_TOKEN_ARRAY_MISMATCH\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addressManager\",\"type\":\"address\"}],\"name\":\"AddressManagerChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"ctoken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"btoken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"ctokenSymbol\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"ctokenName\",\"type\":\"string\"}],\"name\":\"BridgedTokenDeployed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"srcChainId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"TokenReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"TokenReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"destChainId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"TokenSent\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ERC1155_INTERFACE_ID\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ERC721_INTERFACE_ID\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"addressManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"bridgedToCanonical\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"canonicalToBridged\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addressManager\",\"type\":\"address\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isBridgedToken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"srcChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"destChainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"refundTo\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}],\"internalType\":\"structIBridge.Message\",\"name\":\"message\",\"type\":\"tuple\"}],\"name\":\"onMessageRecalled\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structBaseNFTVault.CanonicalNFT\",\"name\":\"ctoken\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"receiveToken\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"allowZeroAddress\",\"type\":\"bool\"}],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"allowZeroAddress\",\"type\":\"bool\"}],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"destChainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"refundTo\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}],\"internalType\":\"structBaseNFTVault.BridgeTransferOp\",\"name\":\"opt\",\"type\":\"tuple\"}],\"name\":\"sendToken\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAddressManager\",\"type\":\"address\"}],\"name\":\"setAddressManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", } // ERC1155VaultABI is the input ABI used to generate the binding from. @@ -312,15 +312,15 @@ func (_ERC1155Vault *ERC1155VaultCallerSession) AddressManager() (common.Address // BridgedToCanonical is a free data retrieval call binding the contract method 0x9aa8605c. // -// Solidity: function bridgedToCanonical(address btoken) view returns(uint256 chainId, address addr, string symbol, string name) -func (_ERC1155Vault *ERC1155VaultCaller) BridgedToCanonical(opts *bind.CallOpts, btoken common.Address) (struct { +// Solidity: function bridgedToCanonical(address ) view returns(uint256 chainId, address addr, string symbol, string name) +func (_ERC1155Vault *ERC1155VaultCaller) BridgedToCanonical(opts *bind.CallOpts, arg0 common.Address) (struct { ChainId *big.Int Addr common.Address Symbol string Name string }, error) { var out []interface{} - err := _ERC1155Vault.contract.Call(opts, &out, "bridgedToCanonical", btoken) + err := _ERC1155Vault.contract.Call(opts, &out, "bridgedToCanonical", arg0) outstruct := new(struct { ChainId *big.Int @@ -343,34 +343,34 @@ func (_ERC1155Vault *ERC1155VaultCaller) BridgedToCanonical(opts *bind.CallOpts, // BridgedToCanonical is a free data retrieval call binding the contract method 0x9aa8605c. // -// Solidity: function bridgedToCanonical(address btoken) view returns(uint256 chainId, address addr, string symbol, string name) -func (_ERC1155Vault *ERC1155VaultSession) BridgedToCanonical(btoken common.Address) (struct { +// Solidity: function bridgedToCanonical(address ) view returns(uint256 chainId, address addr, string symbol, string name) +func (_ERC1155Vault *ERC1155VaultSession) BridgedToCanonical(arg0 common.Address) (struct { ChainId *big.Int Addr common.Address Symbol string Name string }, error) { - return _ERC1155Vault.Contract.BridgedToCanonical(&_ERC1155Vault.CallOpts, btoken) + return _ERC1155Vault.Contract.BridgedToCanonical(&_ERC1155Vault.CallOpts, arg0) } // BridgedToCanonical is a free data retrieval call binding the contract method 0x9aa8605c. // -// Solidity: function bridgedToCanonical(address btoken) view returns(uint256 chainId, address addr, string symbol, string name) -func (_ERC1155Vault *ERC1155VaultCallerSession) BridgedToCanonical(btoken common.Address) (struct { +// Solidity: function bridgedToCanonical(address ) view returns(uint256 chainId, address addr, string symbol, string name) +func (_ERC1155Vault *ERC1155VaultCallerSession) BridgedToCanonical(arg0 common.Address) (struct { ChainId *big.Int Addr common.Address Symbol string Name string }, error) { - return _ERC1155Vault.Contract.BridgedToCanonical(&_ERC1155Vault.CallOpts, btoken) + return _ERC1155Vault.Contract.BridgedToCanonical(&_ERC1155Vault.CallOpts, arg0) } // CanonicalToBridged is a free data retrieval call binding the contract method 0x67090ccf. // -// Solidity: function canonicalToBridged(uint256 chainId, address ctokenAddress) view returns(address btoken) -func (_ERC1155Vault *ERC1155VaultCaller) CanonicalToBridged(opts *bind.CallOpts, chainId *big.Int, ctokenAddress common.Address) (common.Address, error) { +// Solidity: function canonicalToBridged(uint256 , address ) view returns(address) +func (_ERC1155Vault *ERC1155VaultCaller) CanonicalToBridged(opts *bind.CallOpts, arg0 *big.Int, arg1 common.Address) (common.Address, error) { var out []interface{} - err := _ERC1155Vault.contract.Call(opts, &out, "canonicalToBridged", chainId, ctokenAddress) + err := _ERC1155Vault.contract.Call(opts, &out, "canonicalToBridged", arg0, arg1) if err != nil { return *new(common.Address), err @@ -384,24 +384,24 @@ func (_ERC1155Vault *ERC1155VaultCaller) CanonicalToBridged(opts *bind.CallOpts, // CanonicalToBridged is a free data retrieval call binding the contract method 0x67090ccf. // -// Solidity: function canonicalToBridged(uint256 chainId, address ctokenAddress) view returns(address btoken) -func (_ERC1155Vault *ERC1155VaultSession) CanonicalToBridged(chainId *big.Int, ctokenAddress common.Address) (common.Address, error) { - return _ERC1155Vault.Contract.CanonicalToBridged(&_ERC1155Vault.CallOpts, chainId, ctokenAddress) +// Solidity: function canonicalToBridged(uint256 , address ) view returns(address) +func (_ERC1155Vault *ERC1155VaultSession) CanonicalToBridged(arg0 *big.Int, arg1 common.Address) (common.Address, error) { + return _ERC1155Vault.Contract.CanonicalToBridged(&_ERC1155Vault.CallOpts, arg0, arg1) } // CanonicalToBridged is a free data retrieval call binding the contract method 0x67090ccf. // -// Solidity: function canonicalToBridged(uint256 chainId, address ctokenAddress) view returns(address btoken) -func (_ERC1155Vault *ERC1155VaultCallerSession) CanonicalToBridged(chainId *big.Int, ctokenAddress common.Address) (common.Address, error) { - return _ERC1155Vault.Contract.CanonicalToBridged(&_ERC1155Vault.CallOpts, chainId, ctokenAddress) +// Solidity: function canonicalToBridged(uint256 , address ) view returns(address) +func (_ERC1155Vault *ERC1155VaultCallerSession) CanonicalToBridged(arg0 *big.Int, arg1 common.Address) (common.Address, error) { + return _ERC1155Vault.Contract.CanonicalToBridged(&_ERC1155Vault.CallOpts, arg0, arg1) } // IsBridgedToken is a free data retrieval call binding the contract method 0xc287e578. // -// Solidity: function isBridgedToken(address tokenAddress) view returns(bool isBridged) -func (_ERC1155Vault *ERC1155VaultCaller) IsBridgedToken(opts *bind.CallOpts, tokenAddress common.Address) (bool, error) { +// Solidity: function isBridgedToken(address ) view returns(bool) +func (_ERC1155Vault *ERC1155VaultCaller) IsBridgedToken(opts *bind.CallOpts, arg0 common.Address) (bool, error) { var out []interface{} - err := _ERC1155Vault.contract.Call(opts, &out, "isBridgedToken", tokenAddress) + err := _ERC1155Vault.contract.Call(opts, &out, "isBridgedToken", arg0) if err != nil { return *new(bool), err @@ -415,16 +415,16 @@ func (_ERC1155Vault *ERC1155VaultCaller) IsBridgedToken(opts *bind.CallOpts, tok // IsBridgedToken is a free data retrieval call binding the contract method 0xc287e578. // -// Solidity: function isBridgedToken(address tokenAddress) view returns(bool isBridged) -func (_ERC1155Vault *ERC1155VaultSession) IsBridgedToken(tokenAddress common.Address) (bool, error) { - return _ERC1155Vault.Contract.IsBridgedToken(&_ERC1155Vault.CallOpts, tokenAddress) +// Solidity: function isBridgedToken(address ) view returns(bool) +func (_ERC1155Vault *ERC1155VaultSession) IsBridgedToken(arg0 common.Address) (bool, error) { + return _ERC1155Vault.Contract.IsBridgedToken(&_ERC1155Vault.CallOpts, arg0) } // IsBridgedToken is a free data retrieval call binding the contract method 0xc287e578. // -// Solidity: function isBridgedToken(address tokenAddress) view returns(bool isBridged) -func (_ERC1155Vault *ERC1155VaultCallerSession) IsBridgedToken(tokenAddress common.Address) (bool, error) { - return _ERC1155Vault.Contract.IsBridgedToken(&_ERC1155Vault.CallOpts, tokenAddress) +// Solidity: function isBridgedToken(address ) view returns(bool) +func (_ERC1155Vault *ERC1155VaultCallerSession) IsBridgedToken(arg0 common.Address) (bool, error) { + return _ERC1155Vault.Contract.IsBridgedToken(&_ERC1155Vault.CallOpts, arg0) } // OnERC1155BatchReceived is a free data retrieval call binding the contract method 0xbc197c81. @@ -657,21 +657,21 @@ func (_ERC1155Vault *ERC1155VaultTransactorSession) OnMessageRecalled(message IB // ReceiveToken is a paid mutator transaction binding the contract method 0x20b81559. // -// Solidity: function receiveToken((uint256,address,string,string) ctoken, address from, address to, uint256[] tokenIds, uint256[] amounts) returns() +// Solidity: function receiveToken((uint256,address,string,string) ctoken, address from, address to, uint256[] tokenIds, uint256[] amounts) payable returns() func (_ERC1155Vault *ERC1155VaultTransactor) ReceiveToken(opts *bind.TransactOpts, ctoken BaseNFTVaultCanonicalNFT, from common.Address, to common.Address, tokenIds []*big.Int, amounts []*big.Int) (*types.Transaction, error) { return _ERC1155Vault.contract.Transact(opts, "receiveToken", ctoken, from, to, tokenIds, amounts) } // ReceiveToken is a paid mutator transaction binding the contract method 0x20b81559. // -// Solidity: function receiveToken((uint256,address,string,string) ctoken, address from, address to, uint256[] tokenIds, uint256[] amounts) returns() +// Solidity: function receiveToken((uint256,address,string,string) ctoken, address from, address to, uint256[] tokenIds, uint256[] amounts) payable returns() func (_ERC1155Vault *ERC1155VaultSession) ReceiveToken(ctoken BaseNFTVaultCanonicalNFT, from common.Address, to common.Address, tokenIds []*big.Int, amounts []*big.Int) (*types.Transaction, error) { return _ERC1155Vault.Contract.ReceiveToken(&_ERC1155Vault.TransactOpts, ctoken, from, to, tokenIds, amounts) } // ReceiveToken is a paid mutator transaction binding the contract method 0x20b81559. // -// Solidity: function receiveToken((uint256,address,string,string) ctoken, address from, address to, uint256[] tokenIds, uint256[] amounts) returns() +// Solidity: function receiveToken((uint256,address,string,string) ctoken, address from, address to, uint256[] tokenIds, uint256[] amounts) payable returns() func (_ERC1155Vault *ERC1155VaultTransactorSession) ReceiveToken(ctoken BaseNFTVaultCanonicalNFT, from common.Address, to common.Address, tokenIds []*big.Int, amounts []*big.Int) (*types.Transaction, error) { return _ERC1155Vault.Contract.ReceiveToken(&_ERC1155Vault.TransactOpts, ctoken, from, to, tokenIds, amounts) } diff --git a/packages/relayer/contracts/erc20vault/ERC20Vault.go b/packages/relayer/contracts/erc20vault/ERC20Vault.go index 73f23e3962..e59a8868c1 100644 --- a/packages/relayer/contracts/erc20vault/ERC20Vault.go +++ b/packages/relayer/contracts/erc20vault/ERC20Vault.go @@ -68,7 +68,7 @@ type IBridgeMessage struct { // ERC20VaultMetaData contains all meta data concerning the ERC20Vault contract. var ERC20VaultMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"name\":\"RESOLVER_DENIED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RESOLVER_INVALID_ADDR\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"}],\"name\":\"RESOLVER_ZERO_ADDR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_AMOUNT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_FROM\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_SRC_CHAIN_ID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_TO\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_TOKEN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_USER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_MESSAGE_NOT_FAILED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_MESSAGE_RELEASED_ALREADY\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addressManager\",\"type\":\"address\"}],\"name\":\"AddressManagerChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"srcChainId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"ctoken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"btoken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"ctokenSymbol\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"ctokenName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"ctokenDecimal\",\"type\":\"uint8\"}],\"name\":\"BridgedTokenDeployed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"srcChainId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokenReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokenReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"destChainId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokenSent\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"addressManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"btoken\",\"type\":\"address\"}],\"name\":\"bridgedToCanonical\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"canonicalAddress\",\"type\":\"address\"}],\"name\":\"canonicalToBridged\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"btoken\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addressManager\",\"type\":\"address\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"name\":\"isBridgedToken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isBridged\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"srcChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"destChainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"refundTo\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}],\"internalType\":\"structIBridge.Message\",\"name\":\"message\",\"type\":\"tuple\"}],\"name\":\"onMessageRecalled\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structERC20Vault.CanonicalERC20\",\"name\":\"ctoken\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"receiveToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"allowZeroAddress\",\"type\":\"bool\"}],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"allowZeroAddress\",\"type\":\"bool\"}],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"destChainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"refundTo\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}],\"internalType\":\"structERC20Vault.BridgeTransferOp\",\"name\":\"opt\",\"type\":\"tuple\"}],\"name\":\"sendToken\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAddressManager\",\"type\":\"address\"}],\"name\":\"setAddressManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + ABI: "[{\"inputs\":[],\"name\":\"RESOLVER_DENIED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RESOLVER_INVALID_ADDR\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"}],\"name\":\"RESOLVER_ZERO_ADDR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_AMOUNT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_FROM\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_SRC_CHAIN_ID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_TO\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_TOKEN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_USER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_MESSAGE_NOT_FAILED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_MESSAGE_RELEASED_ALREADY\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addressManager\",\"type\":\"address\"}],\"name\":\"AddressManagerChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"srcChainId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"ctoken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"btoken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"ctokenSymbol\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"ctokenName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"ctokenDecimal\",\"type\":\"uint8\"}],\"name\":\"BridgedTokenDeployed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"srcChainId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokenReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokenReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"destChainId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokenSent\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"addressManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"bridgedToCanonical\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"canonicalToBridged\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addressManager\",\"type\":\"address\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isBridgedToken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"srcChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"destChainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"refundTo\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}],\"internalType\":\"structIBridge.Message\",\"name\":\"message\",\"type\":\"tuple\"}],\"name\":\"onMessageRecalled\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structERC20Vault.CanonicalERC20\",\"name\":\"ctoken\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"receiveToken\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"allowZeroAddress\",\"type\":\"bool\"}],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"allowZeroAddress\",\"type\":\"bool\"}],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"destChainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"refundTo\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}],\"internalType\":\"structERC20Vault.BridgeTransferOp\",\"name\":\"opt\",\"type\":\"tuple\"}],\"name\":\"sendToken\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAddressManager\",\"type\":\"address\"}],\"name\":\"setAddressManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", } // ERC20VaultABI is the input ABI used to generate the binding from. @@ -250,8 +250,8 @@ func (_ERC20Vault *ERC20VaultCallerSession) AddressManager() (common.Address, er // BridgedToCanonical is a free data retrieval call binding the contract method 0x9aa8605c. // -// Solidity: function bridgedToCanonical(address btoken) view returns(uint256 chainId, address addr, uint8 decimals, string symbol, string name) -func (_ERC20Vault *ERC20VaultCaller) BridgedToCanonical(opts *bind.CallOpts, btoken common.Address) (struct { +// Solidity: function bridgedToCanonical(address ) view returns(uint256 chainId, address addr, uint8 decimals, string symbol, string name) +func (_ERC20Vault *ERC20VaultCaller) BridgedToCanonical(opts *bind.CallOpts, arg0 common.Address) (struct { ChainId *big.Int Addr common.Address Decimals uint8 @@ -259,7 +259,7 @@ func (_ERC20Vault *ERC20VaultCaller) BridgedToCanonical(opts *bind.CallOpts, bto Name string }, error) { var out []interface{} - err := _ERC20Vault.contract.Call(opts, &out, "bridgedToCanonical", btoken) + err := _ERC20Vault.contract.Call(opts, &out, "bridgedToCanonical", arg0) outstruct := new(struct { ChainId *big.Int @@ -284,36 +284,36 @@ func (_ERC20Vault *ERC20VaultCaller) BridgedToCanonical(opts *bind.CallOpts, bto // BridgedToCanonical is a free data retrieval call binding the contract method 0x9aa8605c. // -// Solidity: function bridgedToCanonical(address btoken) view returns(uint256 chainId, address addr, uint8 decimals, string symbol, string name) -func (_ERC20Vault *ERC20VaultSession) BridgedToCanonical(btoken common.Address) (struct { +// Solidity: function bridgedToCanonical(address ) view returns(uint256 chainId, address addr, uint8 decimals, string symbol, string name) +func (_ERC20Vault *ERC20VaultSession) BridgedToCanonical(arg0 common.Address) (struct { ChainId *big.Int Addr common.Address Decimals uint8 Symbol string Name string }, error) { - return _ERC20Vault.Contract.BridgedToCanonical(&_ERC20Vault.CallOpts, btoken) + return _ERC20Vault.Contract.BridgedToCanonical(&_ERC20Vault.CallOpts, arg0) } // BridgedToCanonical is a free data retrieval call binding the contract method 0x9aa8605c. // -// Solidity: function bridgedToCanonical(address btoken) view returns(uint256 chainId, address addr, uint8 decimals, string symbol, string name) -func (_ERC20Vault *ERC20VaultCallerSession) BridgedToCanonical(btoken common.Address) (struct { +// Solidity: function bridgedToCanonical(address ) view returns(uint256 chainId, address addr, uint8 decimals, string symbol, string name) +func (_ERC20Vault *ERC20VaultCallerSession) BridgedToCanonical(arg0 common.Address) (struct { ChainId *big.Int Addr common.Address Decimals uint8 Symbol string Name string }, error) { - return _ERC20Vault.Contract.BridgedToCanonical(&_ERC20Vault.CallOpts, btoken) + return _ERC20Vault.Contract.BridgedToCanonical(&_ERC20Vault.CallOpts, arg0) } // CanonicalToBridged is a free data retrieval call binding the contract method 0x67090ccf. // -// Solidity: function canonicalToBridged(uint256 chainId, address canonicalAddress) view returns(address btoken) -func (_ERC20Vault *ERC20VaultCaller) CanonicalToBridged(opts *bind.CallOpts, chainId *big.Int, canonicalAddress common.Address) (common.Address, error) { +// Solidity: function canonicalToBridged(uint256 , address ) view returns(address) +func (_ERC20Vault *ERC20VaultCaller) CanonicalToBridged(opts *bind.CallOpts, arg0 *big.Int, arg1 common.Address) (common.Address, error) { var out []interface{} - err := _ERC20Vault.contract.Call(opts, &out, "canonicalToBridged", chainId, canonicalAddress) + err := _ERC20Vault.contract.Call(opts, &out, "canonicalToBridged", arg0, arg1) if err != nil { return *new(common.Address), err @@ -327,24 +327,24 @@ func (_ERC20Vault *ERC20VaultCaller) CanonicalToBridged(opts *bind.CallOpts, cha // CanonicalToBridged is a free data retrieval call binding the contract method 0x67090ccf. // -// Solidity: function canonicalToBridged(uint256 chainId, address canonicalAddress) view returns(address btoken) -func (_ERC20Vault *ERC20VaultSession) CanonicalToBridged(chainId *big.Int, canonicalAddress common.Address) (common.Address, error) { - return _ERC20Vault.Contract.CanonicalToBridged(&_ERC20Vault.CallOpts, chainId, canonicalAddress) +// Solidity: function canonicalToBridged(uint256 , address ) view returns(address) +func (_ERC20Vault *ERC20VaultSession) CanonicalToBridged(arg0 *big.Int, arg1 common.Address) (common.Address, error) { + return _ERC20Vault.Contract.CanonicalToBridged(&_ERC20Vault.CallOpts, arg0, arg1) } // CanonicalToBridged is a free data retrieval call binding the contract method 0x67090ccf. // -// Solidity: function canonicalToBridged(uint256 chainId, address canonicalAddress) view returns(address btoken) -func (_ERC20Vault *ERC20VaultCallerSession) CanonicalToBridged(chainId *big.Int, canonicalAddress common.Address) (common.Address, error) { - return _ERC20Vault.Contract.CanonicalToBridged(&_ERC20Vault.CallOpts, chainId, canonicalAddress) +// Solidity: function canonicalToBridged(uint256 , address ) view returns(address) +func (_ERC20Vault *ERC20VaultCallerSession) CanonicalToBridged(arg0 *big.Int, arg1 common.Address) (common.Address, error) { + return _ERC20Vault.Contract.CanonicalToBridged(&_ERC20Vault.CallOpts, arg0, arg1) } // IsBridgedToken is a free data retrieval call binding the contract method 0xc287e578. // -// Solidity: function isBridgedToken(address tokenAddress) view returns(bool isBridged) -func (_ERC20Vault *ERC20VaultCaller) IsBridgedToken(opts *bind.CallOpts, tokenAddress common.Address) (bool, error) { +// Solidity: function isBridgedToken(address ) view returns(bool) +func (_ERC20Vault *ERC20VaultCaller) IsBridgedToken(opts *bind.CallOpts, arg0 common.Address) (bool, error) { var out []interface{} - err := _ERC20Vault.contract.Call(opts, &out, "isBridgedToken", tokenAddress) + err := _ERC20Vault.contract.Call(opts, &out, "isBridgedToken", arg0) if err != nil { return *new(bool), err @@ -358,16 +358,16 @@ func (_ERC20Vault *ERC20VaultCaller) IsBridgedToken(opts *bind.CallOpts, tokenAd // IsBridgedToken is a free data retrieval call binding the contract method 0xc287e578. // -// Solidity: function isBridgedToken(address tokenAddress) view returns(bool isBridged) -func (_ERC20Vault *ERC20VaultSession) IsBridgedToken(tokenAddress common.Address) (bool, error) { - return _ERC20Vault.Contract.IsBridgedToken(&_ERC20Vault.CallOpts, tokenAddress) +// Solidity: function isBridgedToken(address ) view returns(bool) +func (_ERC20Vault *ERC20VaultSession) IsBridgedToken(arg0 common.Address) (bool, error) { + return _ERC20Vault.Contract.IsBridgedToken(&_ERC20Vault.CallOpts, arg0) } // IsBridgedToken is a free data retrieval call binding the contract method 0xc287e578. // -// Solidity: function isBridgedToken(address tokenAddress) view returns(bool isBridged) -func (_ERC20Vault *ERC20VaultCallerSession) IsBridgedToken(tokenAddress common.Address) (bool, error) { - return _ERC20Vault.Contract.IsBridgedToken(&_ERC20Vault.CallOpts, tokenAddress) +// Solidity: function isBridgedToken(address ) view returns(bool) +func (_ERC20Vault *ERC20VaultCallerSession) IsBridgedToken(arg0 common.Address) (bool, error) { + return _ERC20Vault.Contract.IsBridgedToken(&_ERC20Vault.CallOpts, arg0) } // Owner is a free data retrieval call binding the contract method 0x8da5cb5b. @@ -538,21 +538,21 @@ func (_ERC20Vault *ERC20VaultTransactorSession) OnMessageRecalled(message IBridg // ReceiveToken is a paid mutator transaction binding the contract method 0xcb03d23c. // -// Solidity: function receiveToken((uint256,address,uint8,string,string) ctoken, address from, address to, uint256 amount) returns() +// Solidity: function receiveToken((uint256,address,uint8,string,string) ctoken, address from, address to, uint256 amount) payable returns() func (_ERC20Vault *ERC20VaultTransactor) ReceiveToken(opts *bind.TransactOpts, ctoken ERC20VaultCanonicalERC20, from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { return _ERC20Vault.contract.Transact(opts, "receiveToken", ctoken, from, to, amount) } // ReceiveToken is a paid mutator transaction binding the contract method 0xcb03d23c. // -// Solidity: function receiveToken((uint256,address,uint8,string,string) ctoken, address from, address to, uint256 amount) returns() +// Solidity: function receiveToken((uint256,address,uint8,string,string) ctoken, address from, address to, uint256 amount) payable returns() func (_ERC20Vault *ERC20VaultSession) ReceiveToken(ctoken ERC20VaultCanonicalERC20, from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { return _ERC20Vault.Contract.ReceiveToken(&_ERC20Vault.TransactOpts, ctoken, from, to, amount) } // ReceiveToken is a paid mutator transaction binding the contract method 0xcb03d23c. // -// Solidity: function receiveToken((uint256,address,uint8,string,string) ctoken, address from, address to, uint256 amount) returns() +// Solidity: function receiveToken((uint256,address,uint8,string,string) ctoken, address from, address to, uint256 amount) payable returns() func (_ERC20Vault *ERC20VaultTransactorSession) ReceiveToken(ctoken ERC20VaultCanonicalERC20, from common.Address, to common.Address, amount *big.Int) (*types.Transaction, error) { return _ERC20Vault.Contract.ReceiveToken(&_ERC20Vault.TransactOpts, ctoken, from, to, amount) } diff --git a/packages/relayer/contracts/erc721vault/ERC721Vault.go b/packages/relayer/contracts/erc721vault/ERC721Vault.go index fe1625e00f..1620b73458 100644 --- a/packages/relayer/contracts/erc721vault/ERC721Vault.go +++ b/packages/relayer/contracts/erc721vault/ERC721Vault.go @@ -68,7 +68,7 @@ type IBridgeMessage struct { // ERC721VaultMetaData contains all meta data concerning the ERC721Vault contract. var ERC721VaultMetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"name\":\"RESOLVER_DENIED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RESOLVER_INVALID_ADDR\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"}],\"name\":\"RESOLVER_ZERO_ADDR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INTERFACE_NOT_SUPPORTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_AMOUNT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_FROM\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_SRC_CHAIN_ID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_TO\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_TOKEN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_USER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_MAX_TOKEN_PER_TXN_EXCEEDED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_MESSAGE_NOT_FAILED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_MESSAGE_RELEASED_ALREADY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_TOKEN_ARRAY_MISMATCH\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addressManager\",\"type\":\"address\"}],\"name\":\"AddressManagerChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"ctoken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"btoken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"ctokenSymbol\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"ctokenName\",\"type\":\"string\"}],\"name\":\"BridgedTokenDeployed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"srcChainId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"TokenReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"TokenReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"destChainId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"TokenSent\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ERC1155_INTERFACE_ID\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ERC721_INTERFACE_ID\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"addressManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"btoken\",\"type\":\"address\"}],\"name\":\"bridgedToCanonical\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"ctokenAddress\",\"type\":\"address\"}],\"name\":\"canonicalToBridged\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"btoken\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addressManager\",\"type\":\"address\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"name\":\"isBridgedToken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isBridged\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"srcChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"destChainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"refundTo\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}],\"internalType\":\"structIBridge.Message\",\"name\":\"message\",\"type\":\"tuple\"}],\"name\":\"onMessageRecalled\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structBaseNFTVault.CanonicalNFT\",\"name\":\"ctoken\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"}],\"name\":\"receiveToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"allowZeroAddress\",\"type\":\"bool\"}],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"allowZeroAddress\",\"type\":\"bool\"}],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"destChainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"refundTo\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}],\"internalType\":\"structBaseNFTVault.BridgeTransferOp\",\"name\":\"opt\",\"type\":\"tuple\"}],\"name\":\"sendToken\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAddressManager\",\"type\":\"address\"}],\"name\":\"setAddressManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + ABI: "[{\"inputs\":[],\"name\":\"RESOLVER_DENIED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RESOLVER_INVALID_ADDR\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"}],\"name\":\"RESOLVER_ZERO_ADDR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INTERFACE_NOT_SUPPORTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_AMOUNT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_FROM\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_SRC_CHAIN_ID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_TO\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_TOKEN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_INVALID_USER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_MAX_TOKEN_PER_TXN_EXCEEDED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_MESSAGE_NOT_FAILED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_MESSAGE_RELEASED_ALREADY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VAULT_TOKEN_ARRAY_MISMATCH\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addressManager\",\"type\":\"address\"}],\"name\":\"AddressManagerChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"ctoken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"btoken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"ctokenSymbol\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"ctokenName\",\"type\":\"string\"}],\"name\":\"BridgedTokenDeployed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"srcChainId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"TokenReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"TokenReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"destChainId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"TokenSent\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ERC1155_INTERFACE_ID\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ERC721_INTERFACE_ID\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"addressManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"bridgedToCanonical\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"canonicalToBridged\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addressManager\",\"type\":\"address\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isBridgedToken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"srcChainId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"destChainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"refundTo\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}],\"internalType\":\"structIBridge.Message\",\"name\":\"message\",\"type\":\"tuple\"}],\"name\":\"onMessageRecalled\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"internalType\":\"structBaseNFTVault.CanonicalNFT\",\"name\":\"ctoken\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"}],\"name\":\"receiveToken\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"allowZeroAddress\",\"type\":\"bool\"}],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"allowZeroAddress\",\"type\":\"bool\"}],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"destChainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"refundTo\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"memo\",\"type\":\"string\"}],\"internalType\":\"structBaseNFTVault.BridgeTransferOp\",\"name\":\"opt\",\"type\":\"tuple\"}],\"name\":\"sendToken\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAddressManager\",\"type\":\"address\"}],\"name\":\"setAddressManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", } // ERC721VaultABI is the input ABI used to generate the binding from. @@ -312,15 +312,15 @@ func (_ERC721Vault *ERC721VaultCallerSession) AddressManager() (common.Address, // BridgedToCanonical is a free data retrieval call binding the contract method 0x9aa8605c. // -// Solidity: function bridgedToCanonical(address btoken) view returns(uint256 chainId, address addr, string symbol, string name) -func (_ERC721Vault *ERC721VaultCaller) BridgedToCanonical(opts *bind.CallOpts, btoken common.Address) (struct { +// Solidity: function bridgedToCanonical(address ) view returns(uint256 chainId, address addr, string symbol, string name) +func (_ERC721Vault *ERC721VaultCaller) BridgedToCanonical(opts *bind.CallOpts, arg0 common.Address) (struct { ChainId *big.Int Addr common.Address Symbol string Name string }, error) { var out []interface{} - err := _ERC721Vault.contract.Call(opts, &out, "bridgedToCanonical", btoken) + err := _ERC721Vault.contract.Call(opts, &out, "bridgedToCanonical", arg0) outstruct := new(struct { ChainId *big.Int @@ -343,34 +343,34 @@ func (_ERC721Vault *ERC721VaultCaller) BridgedToCanonical(opts *bind.CallOpts, b // BridgedToCanonical is a free data retrieval call binding the contract method 0x9aa8605c. // -// Solidity: function bridgedToCanonical(address btoken) view returns(uint256 chainId, address addr, string symbol, string name) -func (_ERC721Vault *ERC721VaultSession) BridgedToCanonical(btoken common.Address) (struct { +// Solidity: function bridgedToCanonical(address ) view returns(uint256 chainId, address addr, string symbol, string name) +func (_ERC721Vault *ERC721VaultSession) BridgedToCanonical(arg0 common.Address) (struct { ChainId *big.Int Addr common.Address Symbol string Name string }, error) { - return _ERC721Vault.Contract.BridgedToCanonical(&_ERC721Vault.CallOpts, btoken) + return _ERC721Vault.Contract.BridgedToCanonical(&_ERC721Vault.CallOpts, arg0) } // BridgedToCanonical is a free data retrieval call binding the contract method 0x9aa8605c. // -// Solidity: function bridgedToCanonical(address btoken) view returns(uint256 chainId, address addr, string symbol, string name) -func (_ERC721Vault *ERC721VaultCallerSession) BridgedToCanonical(btoken common.Address) (struct { +// Solidity: function bridgedToCanonical(address ) view returns(uint256 chainId, address addr, string symbol, string name) +func (_ERC721Vault *ERC721VaultCallerSession) BridgedToCanonical(arg0 common.Address) (struct { ChainId *big.Int Addr common.Address Symbol string Name string }, error) { - return _ERC721Vault.Contract.BridgedToCanonical(&_ERC721Vault.CallOpts, btoken) + return _ERC721Vault.Contract.BridgedToCanonical(&_ERC721Vault.CallOpts, arg0) } // CanonicalToBridged is a free data retrieval call binding the contract method 0x67090ccf. // -// Solidity: function canonicalToBridged(uint256 chainId, address ctokenAddress) view returns(address btoken) -func (_ERC721Vault *ERC721VaultCaller) CanonicalToBridged(opts *bind.CallOpts, chainId *big.Int, ctokenAddress common.Address) (common.Address, error) { +// Solidity: function canonicalToBridged(uint256 , address ) view returns(address) +func (_ERC721Vault *ERC721VaultCaller) CanonicalToBridged(opts *bind.CallOpts, arg0 *big.Int, arg1 common.Address) (common.Address, error) { var out []interface{} - err := _ERC721Vault.contract.Call(opts, &out, "canonicalToBridged", chainId, ctokenAddress) + err := _ERC721Vault.contract.Call(opts, &out, "canonicalToBridged", arg0, arg1) if err != nil { return *new(common.Address), err @@ -384,24 +384,24 @@ func (_ERC721Vault *ERC721VaultCaller) CanonicalToBridged(opts *bind.CallOpts, c // CanonicalToBridged is a free data retrieval call binding the contract method 0x67090ccf. // -// Solidity: function canonicalToBridged(uint256 chainId, address ctokenAddress) view returns(address btoken) -func (_ERC721Vault *ERC721VaultSession) CanonicalToBridged(chainId *big.Int, ctokenAddress common.Address) (common.Address, error) { - return _ERC721Vault.Contract.CanonicalToBridged(&_ERC721Vault.CallOpts, chainId, ctokenAddress) +// Solidity: function canonicalToBridged(uint256 , address ) view returns(address) +func (_ERC721Vault *ERC721VaultSession) CanonicalToBridged(arg0 *big.Int, arg1 common.Address) (common.Address, error) { + return _ERC721Vault.Contract.CanonicalToBridged(&_ERC721Vault.CallOpts, arg0, arg1) } // CanonicalToBridged is a free data retrieval call binding the contract method 0x67090ccf. // -// Solidity: function canonicalToBridged(uint256 chainId, address ctokenAddress) view returns(address btoken) -func (_ERC721Vault *ERC721VaultCallerSession) CanonicalToBridged(chainId *big.Int, ctokenAddress common.Address) (common.Address, error) { - return _ERC721Vault.Contract.CanonicalToBridged(&_ERC721Vault.CallOpts, chainId, ctokenAddress) +// Solidity: function canonicalToBridged(uint256 , address ) view returns(address) +func (_ERC721Vault *ERC721VaultCallerSession) CanonicalToBridged(arg0 *big.Int, arg1 common.Address) (common.Address, error) { + return _ERC721Vault.Contract.CanonicalToBridged(&_ERC721Vault.CallOpts, arg0, arg1) } // IsBridgedToken is a free data retrieval call binding the contract method 0xc287e578. // -// Solidity: function isBridgedToken(address tokenAddress) view returns(bool isBridged) -func (_ERC721Vault *ERC721VaultCaller) IsBridgedToken(opts *bind.CallOpts, tokenAddress common.Address) (bool, error) { +// Solidity: function isBridgedToken(address ) view returns(bool) +func (_ERC721Vault *ERC721VaultCaller) IsBridgedToken(opts *bind.CallOpts, arg0 common.Address) (bool, error) { var out []interface{} - err := _ERC721Vault.contract.Call(opts, &out, "isBridgedToken", tokenAddress) + err := _ERC721Vault.contract.Call(opts, &out, "isBridgedToken", arg0) if err != nil { return *new(bool), err @@ -415,16 +415,16 @@ func (_ERC721Vault *ERC721VaultCaller) IsBridgedToken(opts *bind.CallOpts, token // IsBridgedToken is a free data retrieval call binding the contract method 0xc287e578. // -// Solidity: function isBridgedToken(address tokenAddress) view returns(bool isBridged) -func (_ERC721Vault *ERC721VaultSession) IsBridgedToken(tokenAddress common.Address) (bool, error) { - return _ERC721Vault.Contract.IsBridgedToken(&_ERC721Vault.CallOpts, tokenAddress) +// Solidity: function isBridgedToken(address ) view returns(bool) +func (_ERC721Vault *ERC721VaultSession) IsBridgedToken(arg0 common.Address) (bool, error) { + return _ERC721Vault.Contract.IsBridgedToken(&_ERC721Vault.CallOpts, arg0) } // IsBridgedToken is a free data retrieval call binding the contract method 0xc287e578. // -// Solidity: function isBridgedToken(address tokenAddress) view returns(bool isBridged) -func (_ERC721Vault *ERC721VaultCallerSession) IsBridgedToken(tokenAddress common.Address) (bool, error) { - return _ERC721Vault.Contract.IsBridgedToken(&_ERC721Vault.CallOpts, tokenAddress) +// Solidity: function isBridgedToken(address ) view returns(bool) +func (_ERC721Vault *ERC721VaultCallerSession) IsBridgedToken(arg0 common.Address) (bool, error) { + return _ERC721Vault.Contract.IsBridgedToken(&_ERC721Vault.CallOpts, arg0) } // OnERC721Received is a free data retrieval call binding the contract method 0x150b7a02. @@ -626,21 +626,21 @@ func (_ERC721Vault *ERC721VaultTransactorSession) OnMessageRecalled(message IBri // ReceiveToken is a paid mutator transaction binding the contract method 0xa9976baf. // -// Solidity: function receiveToken((uint256,address,string,string) ctoken, address from, address to, uint256[] tokenIds) returns() +// Solidity: function receiveToken((uint256,address,string,string) ctoken, address from, address to, uint256[] tokenIds) payable returns() func (_ERC721Vault *ERC721VaultTransactor) ReceiveToken(opts *bind.TransactOpts, ctoken BaseNFTVaultCanonicalNFT, from common.Address, to common.Address, tokenIds []*big.Int) (*types.Transaction, error) { return _ERC721Vault.contract.Transact(opts, "receiveToken", ctoken, from, to, tokenIds) } // ReceiveToken is a paid mutator transaction binding the contract method 0xa9976baf. // -// Solidity: function receiveToken((uint256,address,string,string) ctoken, address from, address to, uint256[] tokenIds) returns() +// Solidity: function receiveToken((uint256,address,string,string) ctoken, address from, address to, uint256[] tokenIds) payable returns() func (_ERC721Vault *ERC721VaultSession) ReceiveToken(ctoken BaseNFTVaultCanonicalNFT, from common.Address, to common.Address, tokenIds []*big.Int) (*types.Transaction, error) { return _ERC721Vault.Contract.ReceiveToken(&_ERC721Vault.TransactOpts, ctoken, from, to, tokenIds) } // ReceiveToken is a paid mutator transaction binding the contract method 0xa9976baf. // -// Solidity: function receiveToken((uint256,address,string,string) ctoken, address from, address to, uint256[] tokenIds) returns() +// Solidity: function receiveToken((uint256,address,string,string) ctoken, address from, address to, uint256[] tokenIds) payable returns() func (_ERC721Vault *ERC721VaultTransactorSession) ReceiveToken(ctoken BaseNFTVaultCanonicalNFT, from common.Address, to common.Address, tokenIds []*big.Int) (*types.Transaction, error) { return _ERC721Vault.Contract.ReceiveToken(&_ERC721Vault.TransactOpts, ctoken, from, to, tokenIds) } diff --git a/packages/relayer/contracts/icrosschainsync/ICrossChainSync.go b/packages/relayer/contracts/icrosschainsync/ICrossChainSync.go index 10c13ccef5..f14a5ba1b4 100644 --- a/packages/relayer/contracts/icrosschainsync/ICrossChainSync.go +++ b/packages/relayer/contracts/icrosschainsync/ICrossChainSync.go @@ -31,7 +31,7 @@ var ( // ICrossChainSyncMetaData contains all meta data concerning the ICrossChainSync contract. var ICrossChainSyncMetaData = &bind.MetaData{ - ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"srcHeight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signalRoot\",\"type\":\"bytes32\"}],\"name\":\"CrossChainSynced\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"name\":\"getCrossChainBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"name\":\"getCrossChainSignalRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", + ABI: "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"srcHeight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signalRoot\",\"type\":\"bytes32\"}],\"name\":\"CrossChainSynced\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blockId\",\"type\":\"uint64\"}],\"name\":\"getCrossChainBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blockId\",\"type\":\"uint64\"}],\"name\":\"getCrossChainSignalRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", } // ICrossChainSyncABI is the input ABI used to generate the binding from. @@ -180,12 +180,12 @@ func (_ICrossChainSync *ICrossChainSyncTransactorRaw) Transact(opts *bind.Transa return _ICrossChainSync.Contract.contract.Transact(opts, method, params...) } -// GetCrossChainBlockHash is a free data retrieval call binding the contract method 0xbacb386d. +// GetCrossChainBlockHash is a free data retrieval call binding the contract method 0xbdd6bc36. // -// Solidity: function getCrossChainBlockHash(uint256 number) view returns(bytes32) -func (_ICrossChainSync *ICrossChainSyncCaller) GetCrossChainBlockHash(opts *bind.CallOpts, number *big.Int) ([32]byte, error) { +// Solidity: function getCrossChainBlockHash(uint64 blockId) view returns(bytes32) +func (_ICrossChainSync *ICrossChainSyncCaller) GetCrossChainBlockHash(opts *bind.CallOpts, blockId uint64) ([32]byte, error) { var out []interface{} - err := _ICrossChainSync.contract.Call(opts, &out, "getCrossChainBlockHash", number) + err := _ICrossChainSync.contract.Call(opts, &out, "getCrossChainBlockHash", blockId) if err != nil { return *new([32]byte), err @@ -197,26 +197,26 @@ func (_ICrossChainSync *ICrossChainSyncCaller) GetCrossChainBlockHash(opts *bind } -// GetCrossChainBlockHash is a free data retrieval call binding the contract method 0xbacb386d. +// GetCrossChainBlockHash is a free data retrieval call binding the contract method 0xbdd6bc36. // -// Solidity: function getCrossChainBlockHash(uint256 number) view returns(bytes32) -func (_ICrossChainSync *ICrossChainSyncSession) GetCrossChainBlockHash(number *big.Int) ([32]byte, error) { - return _ICrossChainSync.Contract.GetCrossChainBlockHash(&_ICrossChainSync.CallOpts, number) +// Solidity: function getCrossChainBlockHash(uint64 blockId) view returns(bytes32) +func (_ICrossChainSync *ICrossChainSyncSession) GetCrossChainBlockHash(blockId uint64) ([32]byte, error) { + return _ICrossChainSync.Contract.GetCrossChainBlockHash(&_ICrossChainSync.CallOpts, blockId) } -// GetCrossChainBlockHash is a free data retrieval call binding the contract method 0xbacb386d. +// GetCrossChainBlockHash is a free data retrieval call binding the contract method 0xbdd6bc36. // -// Solidity: function getCrossChainBlockHash(uint256 number) view returns(bytes32) -func (_ICrossChainSync *ICrossChainSyncCallerSession) GetCrossChainBlockHash(number *big.Int) ([32]byte, error) { - return _ICrossChainSync.Contract.GetCrossChainBlockHash(&_ICrossChainSync.CallOpts, number) +// Solidity: function getCrossChainBlockHash(uint64 blockId) view returns(bytes32) +func (_ICrossChainSync *ICrossChainSyncCallerSession) GetCrossChainBlockHash(blockId uint64) ([32]byte, error) { + return _ICrossChainSync.Contract.GetCrossChainBlockHash(&_ICrossChainSync.CallOpts, blockId) } -// GetCrossChainSignalRoot is a free data retrieval call binding the contract method 0xb8914ce4. +// GetCrossChainSignalRoot is a free data retrieval call binding the contract method 0x0599d294. // -// Solidity: function getCrossChainSignalRoot(uint256 number) view returns(bytes32) -func (_ICrossChainSync *ICrossChainSyncCaller) GetCrossChainSignalRoot(opts *bind.CallOpts, number *big.Int) ([32]byte, error) { +// Solidity: function getCrossChainSignalRoot(uint64 blockId) view returns(bytes32) +func (_ICrossChainSync *ICrossChainSyncCaller) GetCrossChainSignalRoot(opts *bind.CallOpts, blockId uint64) ([32]byte, error) { var out []interface{} - err := _ICrossChainSync.contract.Call(opts, &out, "getCrossChainSignalRoot", number) + err := _ICrossChainSync.contract.Call(opts, &out, "getCrossChainSignalRoot", blockId) if err != nil { return *new([32]byte), err @@ -228,18 +228,18 @@ func (_ICrossChainSync *ICrossChainSyncCaller) GetCrossChainSignalRoot(opts *bin } -// GetCrossChainSignalRoot is a free data retrieval call binding the contract method 0xb8914ce4. +// GetCrossChainSignalRoot is a free data retrieval call binding the contract method 0x0599d294. // -// Solidity: function getCrossChainSignalRoot(uint256 number) view returns(bytes32) -func (_ICrossChainSync *ICrossChainSyncSession) GetCrossChainSignalRoot(number *big.Int) ([32]byte, error) { - return _ICrossChainSync.Contract.GetCrossChainSignalRoot(&_ICrossChainSync.CallOpts, number) +// Solidity: function getCrossChainSignalRoot(uint64 blockId) view returns(bytes32) +func (_ICrossChainSync *ICrossChainSyncSession) GetCrossChainSignalRoot(blockId uint64) ([32]byte, error) { + return _ICrossChainSync.Contract.GetCrossChainSignalRoot(&_ICrossChainSync.CallOpts, blockId) } -// GetCrossChainSignalRoot is a free data retrieval call binding the contract method 0xb8914ce4. +// GetCrossChainSignalRoot is a free data retrieval call binding the contract method 0x0599d294. // -// Solidity: function getCrossChainSignalRoot(uint256 number) view returns(bytes32) -func (_ICrossChainSync *ICrossChainSyncCallerSession) GetCrossChainSignalRoot(number *big.Int) ([32]byte, error) { - return _ICrossChainSync.Contract.GetCrossChainSignalRoot(&_ICrossChainSync.CallOpts, number) +// Solidity: function getCrossChainSignalRoot(uint64 blockId) view returns(bytes32) +func (_ICrossChainSync *ICrossChainSyncCallerSession) GetCrossChainSignalRoot(blockId uint64) ([32]byte, error) { + return _ICrossChainSync.Contract.GetCrossChainSignalRoot(&_ICrossChainSync.CallOpts, blockId) } // ICrossChainSyncCrossChainSyncedIterator is returned from FilterCrossChainSynced and is used to iterate over the raw logs and unpacked data for CrossChainSynced events raised by the ICrossChainSync contract. @@ -311,16 +311,16 @@ func (it *ICrossChainSyncCrossChainSyncedIterator) Close() error { // ICrossChainSyncCrossChainSynced represents a CrossChainSynced event raised by the ICrossChainSync contract. type ICrossChainSyncCrossChainSynced struct { - SrcHeight *big.Int + SrcHeight uint64 BlockHash [32]byte SignalRoot [32]byte Raw types.Log // Blockchain specific contextual infos } -// FilterCrossChainSynced is a free log retrieval operation binding the contract event 0x7528bbd1cef0e5d13408706892a51ee8ef82bbf33d4ec0c37216f8beba71205b. +// FilterCrossChainSynced is a free log retrieval operation binding the contract event 0x004ce985b8852a486571d0545799251fd671adcf33b7854a5f0f6a6a2431a555. // -// Solidity: event CrossChainSynced(uint256 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) -func (_ICrossChainSync *ICrossChainSyncFilterer) FilterCrossChainSynced(opts *bind.FilterOpts, srcHeight []*big.Int) (*ICrossChainSyncCrossChainSyncedIterator, error) { +// Solidity: event CrossChainSynced(uint64 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) +func (_ICrossChainSync *ICrossChainSyncFilterer) FilterCrossChainSynced(opts *bind.FilterOpts, srcHeight []uint64) (*ICrossChainSyncCrossChainSyncedIterator, error) { var srcHeightRule []interface{} for _, srcHeightItem := range srcHeight { @@ -334,10 +334,10 @@ func (_ICrossChainSync *ICrossChainSyncFilterer) FilterCrossChainSynced(opts *bi return &ICrossChainSyncCrossChainSyncedIterator{contract: _ICrossChainSync.contract, event: "CrossChainSynced", logs: logs, sub: sub}, nil } -// WatchCrossChainSynced is a free log subscription operation binding the contract event 0x7528bbd1cef0e5d13408706892a51ee8ef82bbf33d4ec0c37216f8beba71205b. +// WatchCrossChainSynced is a free log subscription operation binding the contract event 0x004ce985b8852a486571d0545799251fd671adcf33b7854a5f0f6a6a2431a555. // -// Solidity: event CrossChainSynced(uint256 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) -func (_ICrossChainSync *ICrossChainSyncFilterer) WatchCrossChainSynced(opts *bind.WatchOpts, sink chan<- *ICrossChainSyncCrossChainSynced, srcHeight []*big.Int) (event.Subscription, error) { +// Solidity: event CrossChainSynced(uint64 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) +func (_ICrossChainSync *ICrossChainSyncFilterer) WatchCrossChainSynced(opts *bind.WatchOpts, sink chan<- *ICrossChainSyncCrossChainSynced, srcHeight []uint64) (event.Subscription, error) { var srcHeightRule []interface{} for _, srcHeightItem := range srcHeight { @@ -376,9 +376,9 @@ func (_ICrossChainSync *ICrossChainSyncFilterer) WatchCrossChainSynced(opts *bin }), nil } -// ParseCrossChainSynced is a log parse operation binding the contract event 0x7528bbd1cef0e5d13408706892a51ee8ef82bbf33d4ec0c37216f8beba71205b. +// ParseCrossChainSynced is a log parse operation binding the contract event 0x004ce985b8852a486571d0545799251fd671adcf33b7854a5f0f6a6a2431a555. // -// Solidity: event CrossChainSynced(uint256 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) +// Solidity: event CrossChainSynced(uint64 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) func (_ICrossChainSync *ICrossChainSyncFilterer) ParseCrossChainSynced(log types.Log) (*ICrossChainSyncCrossChainSynced, error) { event := new(ICrossChainSyncCrossChainSynced) if err := _ICrossChainSync.contract.UnpackLog(event, "CrossChainSynced", log); err != nil { diff --git a/packages/relayer/contracts/taikol1/TaikoL1.go b/packages/relayer/contracts/taikol1/TaikoL1.go index 4c2fd4db3b..b60a05648c 100644 --- a/packages/relayer/contracts/taikol1/TaikoL1.go +++ b/packages/relayer/contracts/taikol1/TaikoL1.go @@ -29,6 +29,18 @@ var ( _ = abi.ConvertType ) +// TaikoDataBlock is an auto generated low-level Go binding around an user-defined struct. +type TaikoDataBlock struct { + MetaHash [32]byte + Prover common.Address + ProposedAt uint64 + NextForkChoiceId uint16 + VerifiedForkChoiceId uint16 + BlockId uint64 + ProofBond *big.Int + ProofWindow uint16 +} + // TaikoDataBlockMetadata is an auto generated low-level Go binding around an user-defined struct. type TaikoDataBlockMetadata struct { Id uint64 @@ -41,37 +53,34 @@ type TaikoDataBlockMetadata struct { TxListByteEnd *big.Int GasLimit uint32 Beneficiary common.Address - Treasury common.Address DepositsProcessed []TaikoDataEthDeposit } // TaikoDataConfig is an auto generated low-level Go binding around an user-defined struct. type TaikoDataConfig struct { - ChainId *big.Int - RelaySignalRoot bool - BlockMaxProposals *big.Int - BlockRingBufferSize *big.Int - BlockMaxVerificationsPerTx *big.Int - BlockMaxGasLimit uint32 - BlockFeeBaseGas uint32 - BlockMaxTransactions uint64 - BlockMaxTxListBytes uint64 - BlockTxListExpiry *big.Int - ProofRegularCooldown *big.Int - ProofOracleCooldown *big.Int - ProofMinWindow uint16 - ProofMaxWindow uint16 - ProofWindowMultiplier uint16 - EthDepositRingBufferSize *big.Int - EthDepositMinCountPerBlock uint64 - EthDepositMaxCountPerBlock uint64 - EthDepositMinAmount *big.Int - EthDepositMaxAmount *big.Int - EthDepositGas *big.Int - EthDepositMaxFee *big.Int - RewardOpenMultipler uint8 - RewardOpenMaxCount uint32 - RewardMaxDelayPenalty uint32 + ChainId *big.Int + RelaySignalRoot bool + BlockMaxProposals uint64 + BlockRingBufferSize uint64 + BlockMaxVerificationsPerTx uint64 + BlockMaxGasLimit uint32 + BlockFeeBaseGas uint32 + BlockMaxTxListBytes *big.Int + BlockTxListExpiry *big.Int + ProposerRewardPerSecond *big.Int + ProposerRewardMax *big.Int + ProofRegularCooldown *big.Int + ProofOracleCooldown *big.Int + ProofWindow uint16 + ProofBond *big.Int + SkipProverAssignmentVerificaiton bool + EthDepositRingBufferSize *big.Int + EthDepositMinCountPerBlock uint64 + EthDepositMaxCountPerBlock uint64 + EthDepositMinAmount *big.Int + EthDepositMaxAmount *big.Int + EthDepositGas *big.Int + EthDepositMaxFee *big.Int } // TaikoDataEthDeposit is an auto generated low-level Go binding around an user-defined struct. @@ -88,12 +97,26 @@ type TaikoDataForkChoice struct { SignalRoot [32]byte Prover common.Address ProvenAt uint64 - GasUsed uint32 +} + +// TaikoDataSlotA is an auto generated low-level Go binding around an user-defined struct. +type TaikoDataSlotA struct { + GenesisHeight uint64 + GenesisTimestamp uint64 + NumEthDeposits uint64 + NextEthDepositToProcess uint64 +} + +// TaikoDataSlotB is an auto generated low-level Go binding around an user-defined struct. +type TaikoDataSlotB struct { + NumBlocks uint64 + NextEthDepositToProcess uint64 + LastVerifiedAt uint64 + LastVerifiedBlockId uint64 } // TaikoDataStateVariables is an auto generated low-level Go binding around an user-defined struct. type TaikoDataStateVariables struct { - FeePerGas uint32 GenesisHeight uint64 GenesisTimestamp uint64 NumBlocks uint64 @@ -104,7 +127,7 @@ type TaikoDataStateVariables struct { // TaikoL1MetaData contains all meta data concerning the TaikoL1 contract. var TaikoL1MetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"name\":\"L1_ALREADY_PROVEN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_ALREADY_PROVEN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_BATCH_NOT_AUCTIONABLE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_BLOCK_ID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_BLOCK_ID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_BLOCK_ID\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actual\",\"type\":\"bytes32\"}],\"name\":\"L1_EVIDENCE_MISMATCH\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actual\",\"type\":\"bytes32\"}],\"name\":\"L1_EVIDENCE_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_FORK_CHOICE_NOT_FOUND\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_FORK_CHOICE_NOT_FOUND\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INSUFFICIENT_TOKEN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INSUFFICIENT_TOKEN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INSUFFICIENT_TOKEN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_BID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_CONFIG\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_CONFIG\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_ETH_DEPOSIT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_ETH_DEPOSIT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_EVIDENCE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_EVIDENCE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_METADATA\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_METADATA\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_PARAM\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_PROOF\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_NOT_BETTER_BID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_NOT_PROVEABLE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_NOT_PROVEABLE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_NOT_SPECIAL_PROVER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_PERMISSION_DENIED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_PERMISSION_DENIED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_SAME_PROOF\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_SAME_PROOF\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TOO_MANY_BLOCKS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TOO_MANY_BLOCKS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TOO_MANY_OPEN_BLOCKS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TOO_MANY_OPEN_BLOCKS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TX_LIST\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TX_LIST\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TX_LIST_HASH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TX_LIST_HASH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TX_LIST_NOT_EXIST\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TX_LIST_NOT_EXIST\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TX_LIST_RANGE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TX_LIST_RANGE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_UNAUTHORIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_UNAUTHORIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RESOLVER_DENIED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RESOLVER_INVALID_ADDR\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"}],\"name\":\"RESOLVER_ZERO_ADDR\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addressManager\",\"type\":\"address\"}],\"name\":\"AddressManagerChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"blockId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"assignedProver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"rewardPerGas\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"feePerGas\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"l1Height\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"l1Hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"mixHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"txListHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"txListByteStart\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"txListByteEnd\",\"type\":\"uint24\"},{\"internalType\":\"uint32\",\"name\":\"gasLimit\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"amount\",\"type\":\"uint96\"},{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"internalType\":\"structTaikoData.EthDeposit[]\",\"name\":\"depositsProcessed\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"structTaikoData.BlockMetadata\",\"name\":\"meta\",\"type\":\"tuple\"}],\"name\":\"BlockProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"blockId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"assignedProver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"rewardPerGas\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"feePerGas\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"l1Height\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"l1Hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"mixHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"txListHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"txListByteStart\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"txListByteEnd\",\"type\":\"uint24\"},{\"internalType\":\"uint32\",\"name\":\"gasLimit\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"amount\",\"type\":\"uint96\"},{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"internalType\":\"structTaikoData.EthDeposit[]\",\"name\":\"depositsProcessed\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"structTaikoData.BlockMetadata\",\"name\":\"meta\",\"type\":\"tuple\"}],\"name\":\"BlockProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"blockId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"parentHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signalRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"prover\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"parentGasUsed\",\"type\":\"uint32\"}],\"name\":\"BlockProven\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"blockId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"parentHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signalRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"prover\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"parentGasUsed\",\"type\":\"uint32\"}],\"name\":\"BlockProven\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"blockId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"prover\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"blockFee\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"proofReward\",\"type\":\"uint64\"}],\"name\":\"BlockVerified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"blockId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"prover\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"blockFee\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"proofReward\",\"type\":\"uint64\"}],\"name\":\"BlockVerified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"srcHeight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signalRoot\",\"type\":\"bytes32\"}],\"name\":\"CrossChainSynced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"srcHeight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signalRoot\",\"type\":\"bytes32\"}],\"name\":\"CrossChainSynced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"amount\",\"type\":\"uint96\"},{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"structTaikoData.EthDeposit\",\"name\":\"deposit\",\"type\":\"tuple\"}],\"name\":\"EthDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"amount\",\"type\":\"uint96\"},{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"structTaikoData.EthDeposit\",\"name\":\"deposit\",\"type\":\"tuple\"}],\"name\":\"EthDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"addressManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"canDepositEthToL2\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"depositEtherToL2\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"depositTaikoToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockId\",\"type\":\"uint256\"}],\"name\":\"getBlock\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_metaHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"_gasLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint24\",\"name\":\"_nextForkChoiceId\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"_verifiedForkChoiceId\",\"type\":\"uint24\"},{\"internalType\":\"bool\",\"name\":\"_proverReleased\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"_proposer\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_feePerGas\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"_proposedAt\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"_assignedProver\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_rewardPerGas\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"_proofWindow\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"gasLimit\",\"type\":\"uint32\"}],\"name\":\"getBlockFee\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"relaySignalRoot\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"blockMaxProposals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockRingBufferSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockMaxVerificationsPerTx\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"blockMaxGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"blockFeeBaseGas\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"blockMaxTransactions\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"blockMaxTxListBytes\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"blockTxListExpiry\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proofRegularCooldown\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proofOracleCooldown\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"proofMinWindow\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"proofMaxWindow\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"proofWindowMultiplier\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"ethDepositRingBufferSize\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"ethDepositMinCountPerBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"ethDepositMaxCountPerBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint96\",\"name\":\"ethDepositMinAmount\",\"type\":\"uint96\"},{\"internalType\":\"uint96\",\"name\":\"ethDepositMaxAmount\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"ethDepositGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ethDepositMaxFee\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"rewardOpenMultipler\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"rewardOpenMaxCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"rewardMaxDelayPenalty\",\"type\":\"uint32\"}],\"internalType\":\"structTaikoData.Config\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockId\",\"type\":\"uint256\"}],\"name\":\"getCrossChainBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockId\",\"type\":\"uint256\"}],\"name\":\"getCrossChainSignalRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"parentHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"parentGasUsed\",\"type\":\"uint32\"}],\"name\":\"getForkChoice\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"signalRoot\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"prover\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"provenAt\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"gasUsed\",\"type\":\"uint32\"}],\"internalType\":\"structTaikoData.ForkChoice\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStateVariables\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"feePerGas\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"genesisHeight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"genesisTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"numBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastVerifiedBlockId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextEthDepositToProcess\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"numEthDeposits\",\"type\":\"uint64\"}],\"internalType\":\"structTaikoData.StateVariables\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getTaikoTokenBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"id\",\"type\":\"uint16\"}],\"name\":\"getVerifierName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addressManager\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_genesisBlockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"_initFeePerGas\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"_initAvgProofDelay\",\"type\":\"uint16\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"txList\",\"type\":\"bytes\"}],\"name\":\"proposeBlock\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"l1Height\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"l1Hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"mixHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"txListHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"txListByteStart\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"txListByteEnd\",\"type\":\"uint24\"},{\"internalType\":\"uint32\",\"name\":\"gasLimit\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"amount\",\"type\":\"uint96\"},{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"internalType\":\"structTaikoData.EthDeposit[]\",\"name\":\"depositsProcessed\",\"type\":\"tuple[]\"}],\"internalType\":\"structTaikoData.BlockMetadata\",\"name\":\"meta\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"}],\"name\":\"proveBlock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"allowZeroAddress\",\"type\":\"bool\"}],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"allowZeroAddress\",\"type\":\"bool\"}],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAddressManager\",\"type\":\"address\"}],\"name\":\"setAddressManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"state\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"genesisHeight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"genesisTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"__reserved70\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"__reserved71\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"numOpenBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"numEthDeposits\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"numBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextEthDepositToProcess\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastVerifiedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastVerifiedBlockId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"__reserved90\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"feePerGas\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"avgProofDelay\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maxBlocks\",\"type\":\"uint256\"}],\"name\":\"verifyBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawTaikoToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", + ABI: "[{\"inputs\":[],\"name\":\"L1_ALREADY_PROVEN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_ALREADY_PROVEN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_BLOCK_ID_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_BLOCK_ID_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_BLOCK_ID_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_EVIDENCE_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_EVIDENCE_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_FORK_CHOICE_NOT_FOUND\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_FORK_CHOICE_NOT_FOUND\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INSUFFICIENT_TOKEN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INSUFFICIENT_TOKEN\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_ASSIGNMENT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_ASSIGNMENT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_BLOCK_ID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_BLOCK_ID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_BLOCK_ID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_CONFIG\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_CONFIG\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_ETH_DEPOSIT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_ETH_DEPOSIT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_EVIDENCE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_EVIDENCE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_METADATA\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_METADATA\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_ORACLE_PROVER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_ORACLE_PROVER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_PARAM\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_PROOF\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_PROPOSER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_PROPOSER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_PROVER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_PROVER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_PROVER_SIG\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_INVALID_PROVER_SIG\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_NOT_PROVEABLE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_NOT_PROVEABLE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_SAME_PROOF\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_SAME_PROOF\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TOO_MANY_BLOCKS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TOO_MANY_BLOCKS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TX_LIST\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TX_LIST\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TX_LIST_HASH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TX_LIST_HASH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TX_LIST_NOT_EXIST\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TX_LIST_NOT_EXIST\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TX_LIST_RANGE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_TX_LIST_RANGE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_UNEXPECTED_FORK_CHOICE_ID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L1_UNEXPECTED_FORK_CHOICE_ID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RESOLVER_DENIED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RESOLVER_INVALID_ADDR\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"}],\"name\":\"RESOLVER_ZERO_ADDR\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addressManager\",\"type\":\"address\"}],\"name\":\"AddressManagerChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"blockId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"prover\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"l1Height\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"l1Hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"mixHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"txListHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"txListByteStart\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"txListByteEnd\",\"type\":\"uint24\"},{\"internalType\":\"uint32\",\"name\":\"gasLimit\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"amount\",\"type\":\"uint96\"},{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"internalType\":\"structTaikoData.EthDeposit[]\",\"name\":\"depositsProcessed\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"structTaikoData.BlockMetadata\",\"name\":\"meta\",\"type\":\"tuple\"}],\"name\":\"BlockProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"blockId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"prover\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"l1Height\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"l1Hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"mixHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"txListHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"txListByteStart\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"txListByteEnd\",\"type\":\"uint24\"},{\"internalType\":\"uint32\",\"name\":\"gasLimit\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"amount\",\"type\":\"uint96\"},{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"internalType\":\"structTaikoData.EthDeposit[]\",\"name\":\"depositsProcessed\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"structTaikoData.BlockMetadata\",\"name\":\"meta\",\"type\":\"tuple\"}],\"name\":\"BlockProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"blockId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"parentHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signalRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"prover\",\"type\":\"address\"}],\"name\":\"BlockProven\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"blockId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"parentHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signalRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"prover\",\"type\":\"address\"}],\"name\":\"BlockProven\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"blockId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"prover\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"name\":\"BlockVerified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"blockId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"prover\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"name\":\"BlockVerified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"srcHeight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signalRoot\",\"type\":\"bytes32\"}],\"name\":\"CrossChainSynced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"srcHeight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signalRoot\",\"type\":\"bytes32\"}],\"name\":\"CrossChainSynced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"amount\",\"type\":\"uint96\"},{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"structTaikoData.EthDeposit\",\"name\":\"deposit\",\"type\":\"tuple\"}],\"name\":\"EthDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"amount\",\"type\":\"uint96\"},{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"structTaikoData.EthDeposit\",\"name\":\"deposit\",\"type\":\"tuple\"}],\"name\":\"EthDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"addressManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"canDepositEthToL2\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"depositEtherToL2\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"depositTaikoToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blockId\",\"type\":\"uint64\"}],\"name\":\"getBlock\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"metaHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"prover\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"proposedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"nextForkChoiceId\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"verifiedForkChoiceId\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"blockId\",\"type\":\"uint64\"},{\"internalType\":\"uint96\",\"name\":\"proofBond\",\"type\":\"uint96\"},{\"internalType\":\"uint16\",\"name\":\"proofWindow\",\"type\":\"uint16\"}],\"internalType\":\"structTaikoData.Block\",\"name\":\"blk\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"relaySignalRoot\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"blockMaxProposals\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"blockRingBufferSize\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"blockMaxVerificationsPerTx\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"blockMaxGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"blockFeeBaseGas\",\"type\":\"uint32\"},{\"internalType\":\"uint24\",\"name\":\"blockMaxTxListBytes\",\"type\":\"uint24\"},{\"internalType\":\"uint256\",\"name\":\"blockTxListExpiry\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proposerRewardPerSecond\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proposerRewardMax\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proofRegularCooldown\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proofOracleCooldown\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"proofWindow\",\"type\":\"uint16\"},{\"internalType\":\"uint96\",\"name\":\"proofBond\",\"type\":\"uint96\"},{\"internalType\":\"bool\",\"name\":\"skipProverAssignmentVerificaiton\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"ethDepositRingBufferSize\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"ethDepositMinCountPerBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"ethDepositMaxCountPerBlock\",\"type\":\"uint64\"},{\"internalType\":\"uint96\",\"name\":\"ethDepositMinAmount\",\"type\":\"uint96\"},{\"internalType\":\"uint96\",\"name\":\"ethDepositMaxAmount\",\"type\":\"uint96\"},{\"internalType\":\"uint256\",\"name\":\"ethDepositGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ethDepositMaxFee\",\"type\":\"uint256\"}],\"internalType\":\"structTaikoData.Config\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blockId\",\"type\":\"uint64\"}],\"name\":\"getCrossChainBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blockId\",\"type\":\"uint64\"}],\"name\":\"getCrossChainSignalRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blockId\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"parentHash\",\"type\":\"bytes32\"}],\"name\":\"getForkChoice\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"signalRoot\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"prover\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"provenAt\",\"type\":\"uint64\"}],\"internalType\":\"structTaikoData.ForkChoice\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStateVariables\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"genesisHeight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"genesisTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"numBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastVerifiedBlockId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextEthDepositToProcess\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"numEthDeposits\",\"type\":\"uint64\"}],\"internalType\":\"structTaikoData.StateVariables\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getTaikoTokenBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"id\",\"type\":\"uint16\"}],\"name\":\"getVerifierName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addressManager\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_genesisBlockHash\",\"type\":\"bytes32\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"assignment\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"txList\",\"type\":\"bytes\"}],\"name\":\"proposeBlock\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"l1Height\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"l1Hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"mixHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"txListHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"txListByteStart\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"txListByteEnd\",\"type\":\"uint24\"},{\"internalType\":\"uint32\",\"name\":\"gasLimit\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"amount\",\"type\":\"uint96\"},{\"internalType\":\"uint64\",\"name\":\"id\",\"type\":\"uint64\"}],\"internalType\":\"structTaikoData.EthDeposit[]\",\"name\":\"depositsProcessed\",\"type\":\"tuple[]\"}],\"internalType\":\"structTaikoData.BlockMetadata\",\"name\":\"meta\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blockId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"input\",\"type\":\"bytes\"}],\"name\":\"proveBlock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"allowZeroAddress\",\"type\":\"bool\"}],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"allowZeroAddress\",\"type\":\"bool\"}],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAddressManager\",\"type\":\"address\"}],\"name\":\"setAddressManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"state\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"genesisHeight\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"genesisTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"numEthDeposits\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextEthDepositToProcess\",\"type\":\"uint64\"}],\"internalType\":\"structTaikoData.SlotA\",\"name\":\"slotA\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"numBlocks\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"nextEthDepositToProcess\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastVerifiedAt\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"lastVerifiedBlockId\",\"type\":\"uint64\"}],\"internalType\":\"structTaikoData.SlotB\",\"name\":\"slotB\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"maxBlocks\",\"type\":\"uint64\"}],\"name\":\"verifyBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawTaikoToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}]", } // TaikoL1ABI is the input ABI used to generate the binding from. @@ -315,130 +338,40 @@ func (_TaikoL1 *TaikoL1CallerSession) CanDepositEthToL2(amount *big.Int) (bool, return _TaikoL1.Contract.CanDepositEthToL2(&_TaikoL1.CallOpts, amount) } -// GetBlock is a free data retrieval call binding the contract method 0x04c07569. +// GetBlock is a free data retrieval call binding the contract method 0x5fa15e79. // -// Solidity: function getBlock(uint256 blockId) view returns(bytes32 _metaHash, uint32 _gasLimit, uint24 _nextForkChoiceId, uint24 _verifiedForkChoiceId, bool _proverReleased, address _proposer, uint32 _feePerGas, uint64 _proposedAt, address _assignedProver, uint32 _rewardPerGas, uint64 _proofWindow) -func (_TaikoL1 *TaikoL1Caller) GetBlock(opts *bind.CallOpts, blockId *big.Int) (struct { - MetaHash [32]byte - GasLimit uint32 - NextForkChoiceId *big.Int - VerifiedForkChoiceId *big.Int - ProverReleased bool - Proposer common.Address - FeePerGas uint32 - ProposedAt uint64 - AssignedProver common.Address - RewardPerGas uint32 - ProofWindow uint64 -}, error) { +// Solidity: function getBlock(uint64 blockId) view returns((bytes32,address,uint64,uint16,uint16,uint64,uint96,uint16) blk) +func (_TaikoL1 *TaikoL1Caller) GetBlock(opts *bind.CallOpts, blockId uint64) (TaikoDataBlock, error) { var out []interface{} err := _TaikoL1.contract.Call(opts, &out, "getBlock", blockId) - outstruct := new(struct { - MetaHash [32]byte - GasLimit uint32 - NextForkChoiceId *big.Int - VerifiedForkChoiceId *big.Int - ProverReleased bool - Proposer common.Address - FeePerGas uint32 - ProposedAt uint64 - AssignedProver common.Address - RewardPerGas uint32 - ProofWindow uint64 - }) if err != nil { - return *outstruct, err + return *new(TaikoDataBlock), err } - outstruct.MetaHash = *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) - outstruct.GasLimit = *abi.ConvertType(out[1], new(uint32)).(*uint32) - outstruct.NextForkChoiceId = *abi.ConvertType(out[2], new(*big.Int)).(**big.Int) - outstruct.VerifiedForkChoiceId = *abi.ConvertType(out[3], new(*big.Int)).(**big.Int) - outstruct.ProverReleased = *abi.ConvertType(out[4], new(bool)).(*bool) - outstruct.Proposer = *abi.ConvertType(out[5], new(common.Address)).(*common.Address) - outstruct.FeePerGas = *abi.ConvertType(out[6], new(uint32)).(*uint32) - outstruct.ProposedAt = *abi.ConvertType(out[7], new(uint64)).(*uint64) - outstruct.AssignedProver = *abi.ConvertType(out[8], new(common.Address)).(*common.Address) - outstruct.RewardPerGas = *abi.ConvertType(out[9], new(uint32)).(*uint32) - outstruct.ProofWindow = *abi.ConvertType(out[10], new(uint64)).(*uint64) + out0 := *abi.ConvertType(out[0], new(TaikoDataBlock)).(*TaikoDataBlock) - return *outstruct, err + return out0, err } -// GetBlock is a free data retrieval call binding the contract method 0x04c07569. +// GetBlock is a free data retrieval call binding the contract method 0x5fa15e79. // -// Solidity: function getBlock(uint256 blockId) view returns(bytes32 _metaHash, uint32 _gasLimit, uint24 _nextForkChoiceId, uint24 _verifiedForkChoiceId, bool _proverReleased, address _proposer, uint32 _feePerGas, uint64 _proposedAt, address _assignedProver, uint32 _rewardPerGas, uint64 _proofWindow) -func (_TaikoL1 *TaikoL1Session) GetBlock(blockId *big.Int) (struct { - MetaHash [32]byte - GasLimit uint32 - NextForkChoiceId *big.Int - VerifiedForkChoiceId *big.Int - ProverReleased bool - Proposer common.Address - FeePerGas uint32 - ProposedAt uint64 - AssignedProver common.Address - RewardPerGas uint32 - ProofWindow uint64 -}, error) { +// Solidity: function getBlock(uint64 blockId) view returns((bytes32,address,uint64,uint16,uint16,uint64,uint96,uint16) blk) +func (_TaikoL1 *TaikoL1Session) GetBlock(blockId uint64) (TaikoDataBlock, error) { return _TaikoL1.Contract.GetBlock(&_TaikoL1.CallOpts, blockId) } -// GetBlock is a free data retrieval call binding the contract method 0x04c07569. +// GetBlock is a free data retrieval call binding the contract method 0x5fa15e79. // -// Solidity: function getBlock(uint256 blockId) view returns(bytes32 _metaHash, uint32 _gasLimit, uint24 _nextForkChoiceId, uint24 _verifiedForkChoiceId, bool _proverReleased, address _proposer, uint32 _feePerGas, uint64 _proposedAt, address _assignedProver, uint32 _rewardPerGas, uint64 _proofWindow) -func (_TaikoL1 *TaikoL1CallerSession) GetBlock(blockId *big.Int) (struct { - MetaHash [32]byte - GasLimit uint32 - NextForkChoiceId *big.Int - VerifiedForkChoiceId *big.Int - ProverReleased bool - Proposer common.Address - FeePerGas uint32 - ProposedAt uint64 - AssignedProver common.Address - RewardPerGas uint32 - ProofWindow uint64 -}, error) { +// Solidity: function getBlock(uint64 blockId) view returns((bytes32,address,uint64,uint16,uint16,uint64,uint96,uint16) blk) +func (_TaikoL1 *TaikoL1CallerSession) GetBlock(blockId uint64) (TaikoDataBlock, error) { return _TaikoL1.Contract.GetBlock(&_TaikoL1.CallOpts, blockId) } -// GetBlockFee is a free data retrieval call binding the contract method 0xffb2784f. -// -// Solidity: function getBlockFee(uint32 gasLimit) view returns(uint64) -func (_TaikoL1 *TaikoL1Caller) GetBlockFee(opts *bind.CallOpts, gasLimit uint32) (uint64, error) { - var out []interface{} - err := _TaikoL1.contract.Call(opts, &out, "getBlockFee", gasLimit) - - if err != nil { - return *new(uint64), err - } - - out0 := *abi.ConvertType(out[0], new(uint64)).(*uint64) - - return out0, err - -} - -// GetBlockFee is a free data retrieval call binding the contract method 0xffb2784f. -// -// Solidity: function getBlockFee(uint32 gasLimit) view returns(uint64) -func (_TaikoL1 *TaikoL1Session) GetBlockFee(gasLimit uint32) (uint64, error) { - return _TaikoL1.Contract.GetBlockFee(&_TaikoL1.CallOpts, gasLimit) -} - -// GetBlockFee is a free data retrieval call binding the contract method 0xffb2784f. -// -// Solidity: function getBlockFee(uint32 gasLimit) view returns(uint64) -func (_TaikoL1 *TaikoL1CallerSession) GetBlockFee(gasLimit uint32) (uint64, error) { - return _TaikoL1.Contract.GetBlockFee(&_TaikoL1.CallOpts, gasLimit) -} - // GetConfig is a free data retrieval call binding the contract method 0xc3f909d4. // -// Solidity: function getConfig() pure returns((uint256,bool,uint256,uint256,uint256,uint32,uint32,uint64,uint64,uint256,uint256,uint256,uint16,uint16,uint16,uint256,uint64,uint64,uint96,uint96,uint256,uint256,uint8,uint32,uint32)) +// Solidity: function getConfig() pure returns((uint256,bool,uint64,uint64,uint64,uint32,uint32,uint24,uint256,uint256,uint256,uint256,uint256,uint16,uint96,bool,uint256,uint64,uint64,uint96,uint96,uint256,uint256)) func (_TaikoL1 *TaikoL1Caller) GetConfig(opts *bind.CallOpts) (TaikoDataConfig, error) { var out []interface{} err := _TaikoL1.contract.Call(opts, &out, "getConfig") @@ -455,22 +388,22 @@ func (_TaikoL1 *TaikoL1Caller) GetConfig(opts *bind.CallOpts) (TaikoDataConfig, // GetConfig is a free data retrieval call binding the contract method 0xc3f909d4. // -// Solidity: function getConfig() pure returns((uint256,bool,uint256,uint256,uint256,uint32,uint32,uint64,uint64,uint256,uint256,uint256,uint16,uint16,uint16,uint256,uint64,uint64,uint96,uint96,uint256,uint256,uint8,uint32,uint32)) +// Solidity: function getConfig() pure returns((uint256,bool,uint64,uint64,uint64,uint32,uint32,uint24,uint256,uint256,uint256,uint256,uint256,uint16,uint96,bool,uint256,uint64,uint64,uint96,uint96,uint256,uint256)) func (_TaikoL1 *TaikoL1Session) GetConfig() (TaikoDataConfig, error) { return _TaikoL1.Contract.GetConfig(&_TaikoL1.CallOpts) } // GetConfig is a free data retrieval call binding the contract method 0xc3f909d4. // -// Solidity: function getConfig() pure returns((uint256,bool,uint256,uint256,uint256,uint32,uint32,uint64,uint64,uint256,uint256,uint256,uint16,uint16,uint16,uint256,uint64,uint64,uint96,uint96,uint256,uint256,uint8,uint32,uint32)) +// Solidity: function getConfig() pure returns((uint256,bool,uint64,uint64,uint64,uint32,uint32,uint24,uint256,uint256,uint256,uint256,uint256,uint16,uint96,bool,uint256,uint64,uint64,uint96,uint96,uint256,uint256)) func (_TaikoL1 *TaikoL1CallerSession) GetConfig() (TaikoDataConfig, error) { return _TaikoL1.Contract.GetConfig(&_TaikoL1.CallOpts) } -// GetCrossChainBlockHash is a free data retrieval call binding the contract method 0xbacb386d. +// GetCrossChainBlockHash is a free data retrieval call binding the contract method 0xbdd6bc36. // -// Solidity: function getCrossChainBlockHash(uint256 blockId) view returns(bytes32) -func (_TaikoL1 *TaikoL1Caller) GetCrossChainBlockHash(opts *bind.CallOpts, blockId *big.Int) ([32]byte, error) { +// Solidity: function getCrossChainBlockHash(uint64 blockId) view returns(bytes32) +func (_TaikoL1 *TaikoL1Caller) GetCrossChainBlockHash(opts *bind.CallOpts, blockId uint64) ([32]byte, error) { var out []interface{} err := _TaikoL1.contract.Call(opts, &out, "getCrossChainBlockHash", blockId) @@ -484,24 +417,24 @@ func (_TaikoL1 *TaikoL1Caller) GetCrossChainBlockHash(opts *bind.CallOpts, block } -// GetCrossChainBlockHash is a free data retrieval call binding the contract method 0xbacb386d. +// GetCrossChainBlockHash is a free data retrieval call binding the contract method 0xbdd6bc36. // -// Solidity: function getCrossChainBlockHash(uint256 blockId) view returns(bytes32) -func (_TaikoL1 *TaikoL1Session) GetCrossChainBlockHash(blockId *big.Int) ([32]byte, error) { +// Solidity: function getCrossChainBlockHash(uint64 blockId) view returns(bytes32) +func (_TaikoL1 *TaikoL1Session) GetCrossChainBlockHash(blockId uint64) ([32]byte, error) { return _TaikoL1.Contract.GetCrossChainBlockHash(&_TaikoL1.CallOpts, blockId) } -// GetCrossChainBlockHash is a free data retrieval call binding the contract method 0xbacb386d. +// GetCrossChainBlockHash is a free data retrieval call binding the contract method 0xbdd6bc36. // -// Solidity: function getCrossChainBlockHash(uint256 blockId) view returns(bytes32) -func (_TaikoL1 *TaikoL1CallerSession) GetCrossChainBlockHash(blockId *big.Int) ([32]byte, error) { +// Solidity: function getCrossChainBlockHash(uint64 blockId) view returns(bytes32) +func (_TaikoL1 *TaikoL1CallerSession) GetCrossChainBlockHash(blockId uint64) ([32]byte, error) { return _TaikoL1.Contract.GetCrossChainBlockHash(&_TaikoL1.CallOpts, blockId) } -// GetCrossChainSignalRoot is a free data retrieval call binding the contract method 0xb8914ce4. +// GetCrossChainSignalRoot is a free data retrieval call binding the contract method 0x0599d294. // -// Solidity: function getCrossChainSignalRoot(uint256 blockId) view returns(bytes32) -func (_TaikoL1 *TaikoL1Caller) GetCrossChainSignalRoot(opts *bind.CallOpts, blockId *big.Int) ([32]byte, error) { +// Solidity: function getCrossChainSignalRoot(uint64 blockId) view returns(bytes32) +func (_TaikoL1 *TaikoL1Caller) GetCrossChainSignalRoot(opts *bind.CallOpts, blockId uint64) ([32]byte, error) { var out []interface{} err := _TaikoL1.contract.Call(opts, &out, "getCrossChainSignalRoot", blockId) @@ -515,26 +448,26 @@ func (_TaikoL1 *TaikoL1Caller) GetCrossChainSignalRoot(opts *bind.CallOpts, bloc } -// GetCrossChainSignalRoot is a free data retrieval call binding the contract method 0xb8914ce4. +// GetCrossChainSignalRoot is a free data retrieval call binding the contract method 0x0599d294. // -// Solidity: function getCrossChainSignalRoot(uint256 blockId) view returns(bytes32) -func (_TaikoL1 *TaikoL1Session) GetCrossChainSignalRoot(blockId *big.Int) ([32]byte, error) { +// Solidity: function getCrossChainSignalRoot(uint64 blockId) view returns(bytes32) +func (_TaikoL1 *TaikoL1Session) GetCrossChainSignalRoot(blockId uint64) ([32]byte, error) { return _TaikoL1.Contract.GetCrossChainSignalRoot(&_TaikoL1.CallOpts, blockId) } -// GetCrossChainSignalRoot is a free data retrieval call binding the contract method 0xb8914ce4. +// GetCrossChainSignalRoot is a free data retrieval call binding the contract method 0x0599d294. // -// Solidity: function getCrossChainSignalRoot(uint256 blockId) view returns(bytes32) -func (_TaikoL1 *TaikoL1CallerSession) GetCrossChainSignalRoot(blockId *big.Int) ([32]byte, error) { +// Solidity: function getCrossChainSignalRoot(uint64 blockId) view returns(bytes32) +func (_TaikoL1 *TaikoL1CallerSession) GetCrossChainSignalRoot(blockId uint64) ([32]byte, error) { return _TaikoL1.Contract.GetCrossChainSignalRoot(&_TaikoL1.CallOpts, blockId) } -// GetForkChoice is a free data retrieval call binding the contract method 0x7163e0ed. +// GetForkChoice is a free data retrieval call binding the contract method 0xc24c235c. // -// Solidity: function getForkChoice(uint256 blockId, bytes32 parentHash, uint32 parentGasUsed) view returns((bytes32,bytes32,bytes32,address,uint64,uint32)) -func (_TaikoL1 *TaikoL1Caller) GetForkChoice(opts *bind.CallOpts, blockId *big.Int, parentHash [32]byte, parentGasUsed uint32) (TaikoDataForkChoice, error) { +// Solidity: function getForkChoice(uint64 blockId, bytes32 parentHash) view returns((bytes32,bytes32,bytes32,address,uint64)) +func (_TaikoL1 *TaikoL1Caller) GetForkChoice(opts *bind.CallOpts, blockId uint64, parentHash [32]byte) (TaikoDataForkChoice, error) { var out []interface{} - err := _TaikoL1.contract.Call(opts, &out, "getForkChoice", blockId, parentHash, parentGasUsed) + err := _TaikoL1.contract.Call(opts, &out, "getForkChoice", blockId, parentHash) if err != nil { return *new(TaikoDataForkChoice), err @@ -546,23 +479,23 @@ func (_TaikoL1 *TaikoL1Caller) GetForkChoice(opts *bind.CallOpts, blockId *big.I } -// GetForkChoice is a free data retrieval call binding the contract method 0x7163e0ed. +// GetForkChoice is a free data retrieval call binding the contract method 0xc24c235c. // -// Solidity: function getForkChoice(uint256 blockId, bytes32 parentHash, uint32 parentGasUsed) view returns((bytes32,bytes32,bytes32,address,uint64,uint32)) -func (_TaikoL1 *TaikoL1Session) GetForkChoice(blockId *big.Int, parentHash [32]byte, parentGasUsed uint32) (TaikoDataForkChoice, error) { - return _TaikoL1.Contract.GetForkChoice(&_TaikoL1.CallOpts, blockId, parentHash, parentGasUsed) +// Solidity: function getForkChoice(uint64 blockId, bytes32 parentHash) view returns((bytes32,bytes32,bytes32,address,uint64)) +func (_TaikoL1 *TaikoL1Session) GetForkChoice(blockId uint64, parentHash [32]byte) (TaikoDataForkChoice, error) { + return _TaikoL1.Contract.GetForkChoice(&_TaikoL1.CallOpts, blockId, parentHash) } -// GetForkChoice is a free data retrieval call binding the contract method 0x7163e0ed. +// GetForkChoice is a free data retrieval call binding the contract method 0xc24c235c. // -// Solidity: function getForkChoice(uint256 blockId, bytes32 parentHash, uint32 parentGasUsed) view returns((bytes32,bytes32,bytes32,address,uint64,uint32)) -func (_TaikoL1 *TaikoL1CallerSession) GetForkChoice(blockId *big.Int, parentHash [32]byte, parentGasUsed uint32) (TaikoDataForkChoice, error) { - return _TaikoL1.Contract.GetForkChoice(&_TaikoL1.CallOpts, blockId, parentHash, parentGasUsed) +// Solidity: function getForkChoice(uint64 blockId, bytes32 parentHash) view returns((bytes32,bytes32,bytes32,address,uint64)) +func (_TaikoL1 *TaikoL1CallerSession) GetForkChoice(blockId uint64, parentHash [32]byte) (TaikoDataForkChoice, error) { + return _TaikoL1.Contract.GetForkChoice(&_TaikoL1.CallOpts, blockId, parentHash) } // GetStateVariables is a free data retrieval call binding the contract method 0xdde89cf5. // -// Solidity: function getStateVariables() view returns((uint32,uint64,uint64,uint64,uint64,uint64,uint64)) +// Solidity: function getStateVariables() view returns((uint64,uint64,uint64,uint64,uint64,uint64)) func (_TaikoL1 *TaikoL1Caller) GetStateVariables(opts *bind.CallOpts) (TaikoDataStateVariables, error) { var out []interface{} err := _TaikoL1.contract.Call(opts, &out, "getStateVariables") @@ -579,14 +512,14 @@ func (_TaikoL1 *TaikoL1Caller) GetStateVariables(opts *bind.CallOpts) (TaikoData // GetStateVariables is a free data retrieval call binding the contract method 0xdde89cf5. // -// Solidity: function getStateVariables() view returns((uint32,uint64,uint64,uint64,uint64,uint64,uint64)) +// Solidity: function getStateVariables() view returns((uint64,uint64,uint64,uint64,uint64,uint64)) func (_TaikoL1 *TaikoL1Session) GetStateVariables() (TaikoDataStateVariables, error) { return _TaikoL1.Contract.GetStateVariables(&_TaikoL1.CallOpts) } // GetStateVariables is a free data retrieval call binding the contract method 0xdde89cf5. // -// Solidity: function getStateVariables() view returns((uint32,uint64,uint64,uint64,uint64,uint64,uint64)) +// Solidity: function getStateVariables() view returns((uint64,uint64,uint64,uint64,uint64,uint64)) func (_TaikoL1 *TaikoL1CallerSession) GetStateVariables() (TaikoDataStateVariables, error) { return _TaikoL1.Contract.GetStateVariables(&_TaikoL1.CallOpts) } @@ -748,57 +681,24 @@ func (_TaikoL1 *TaikoL1CallerSession) Resolve0(name [32]byte, allowZeroAddress b // State is a free data retrieval call binding the contract method 0xc19d93fb. // -// Solidity: function state() view returns(uint64 genesisHeight, uint64 genesisTimestamp, uint64 __reserved70, uint64 __reserved71, uint64 numOpenBlocks, uint64 numEthDeposits, uint64 numBlocks, uint64 nextEthDepositToProcess, uint64 lastVerifiedAt, uint64 lastVerifiedBlockId, uint64 __reserved90, uint32 feePerGas, uint16 avgProofDelay) +// Solidity: function state() view returns((uint64,uint64,uint64,uint64) slotA, (uint64,uint64,uint64,uint64) slotB) func (_TaikoL1 *TaikoL1Caller) State(opts *bind.CallOpts) (struct { - GenesisHeight uint64 - GenesisTimestamp uint64 - Reserved70 uint64 - Reserved71 uint64 - NumOpenBlocks uint64 - NumEthDeposits uint64 - NumBlocks uint64 - NextEthDepositToProcess uint64 - LastVerifiedAt uint64 - LastVerifiedBlockId uint64 - Reserved90 uint64 - FeePerGas uint32 - AvgProofDelay uint16 + SlotA TaikoDataSlotA + SlotB TaikoDataSlotB }, error) { var out []interface{} err := _TaikoL1.contract.Call(opts, &out, "state") outstruct := new(struct { - GenesisHeight uint64 - GenesisTimestamp uint64 - Reserved70 uint64 - Reserved71 uint64 - NumOpenBlocks uint64 - NumEthDeposits uint64 - NumBlocks uint64 - NextEthDepositToProcess uint64 - LastVerifiedAt uint64 - LastVerifiedBlockId uint64 - Reserved90 uint64 - FeePerGas uint32 - AvgProofDelay uint16 + SlotA TaikoDataSlotA + SlotB TaikoDataSlotB }) if err != nil { return *outstruct, err } - outstruct.GenesisHeight = *abi.ConvertType(out[0], new(uint64)).(*uint64) - outstruct.GenesisTimestamp = *abi.ConvertType(out[1], new(uint64)).(*uint64) - outstruct.Reserved70 = *abi.ConvertType(out[2], new(uint64)).(*uint64) - outstruct.Reserved71 = *abi.ConvertType(out[3], new(uint64)).(*uint64) - outstruct.NumOpenBlocks = *abi.ConvertType(out[4], new(uint64)).(*uint64) - outstruct.NumEthDeposits = *abi.ConvertType(out[5], new(uint64)).(*uint64) - outstruct.NumBlocks = *abi.ConvertType(out[6], new(uint64)).(*uint64) - outstruct.NextEthDepositToProcess = *abi.ConvertType(out[7], new(uint64)).(*uint64) - outstruct.LastVerifiedAt = *abi.ConvertType(out[8], new(uint64)).(*uint64) - outstruct.LastVerifiedBlockId = *abi.ConvertType(out[9], new(uint64)).(*uint64) - outstruct.Reserved90 = *abi.ConvertType(out[10], new(uint64)).(*uint64) - outstruct.FeePerGas = *abi.ConvertType(out[11], new(uint32)).(*uint32) - outstruct.AvgProofDelay = *abi.ConvertType(out[12], new(uint16)).(*uint16) + outstruct.SlotA = *abi.ConvertType(out[0], new(TaikoDataSlotA)).(*TaikoDataSlotA) + outstruct.SlotB = *abi.ConvertType(out[1], new(TaikoDataSlotB)).(*TaikoDataSlotB) return *outstruct, err @@ -806,42 +706,20 @@ func (_TaikoL1 *TaikoL1Caller) State(opts *bind.CallOpts) (struct { // State is a free data retrieval call binding the contract method 0xc19d93fb. // -// Solidity: function state() view returns(uint64 genesisHeight, uint64 genesisTimestamp, uint64 __reserved70, uint64 __reserved71, uint64 numOpenBlocks, uint64 numEthDeposits, uint64 numBlocks, uint64 nextEthDepositToProcess, uint64 lastVerifiedAt, uint64 lastVerifiedBlockId, uint64 __reserved90, uint32 feePerGas, uint16 avgProofDelay) +// Solidity: function state() view returns((uint64,uint64,uint64,uint64) slotA, (uint64,uint64,uint64,uint64) slotB) func (_TaikoL1 *TaikoL1Session) State() (struct { - GenesisHeight uint64 - GenesisTimestamp uint64 - Reserved70 uint64 - Reserved71 uint64 - NumOpenBlocks uint64 - NumEthDeposits uint64 - NumBlocks uint64 - NextEthDepositToProcess uint64 - LastVerifiedAt uint64 - LastVerifiedBlockId uint64 - Reserved90 uint64 - FeePerGas uint32 - AvgProofDelay uint16 + SlotA TaikoDataSlotA + SlotB TaikoDataSlotB }, error) { return _TaikoL1.Contract.State(&_TaikoL1.CallOpts) } // State is a free data retrieval call binding the contract method 0xc19d93fb. // -// Solidity: function state() view returns(uint64 genesisHeight, uint64 genesisTimestamp, uint64 __reserved70, uint64 __reserved71, uint64 numOpenBlocks, uint64 numEthDeposits, uint64 numBlocks, uint64 nextEthDepositToProcess, uint64 lastVerifiedAt, uint64 lastVerifiedBlockId, uint64 __reserved90, uint32 feePerGas, uint16 avgProofDelay) +// Solidity: function state() view returns((uint64,uint64,uint64,uint64) slotA, (uint64,uint64,uint64,uint64) slotB) func (_TaikoL1 *TaikoL1CallerSession) State() (struct { - GenesisHeight uint64 - GenesisTimestamp uint64 - Reserved70 uint64 - Reserved71 uint64 - NumOpenBlocks uint64 - NumEthDeposits uint64 - NumBlocks uint64 - NextEthDepositToProcess uint64 - LastVerifiedAt uint64 - LastVerifiedBlockId uint64 - Reserved90 uint64 - FeePerGas uint32 - AvgProofDelay uint16 + SlotA TaikoDataSlotA + SlotB TaikoDataSlotB }, error) { return _TaikoL1.Contract.State(&_TaikoL1.CallOpts) } @@ -888,66 +766,66 @@ func (_TaikoL1 *TaikoL1TransactorSession) DepositTaikoToken(amount *big.Int) (*t return _TaikoL1.Contract.DepositTaikoToken(&_TaikoL1.TransactOpts, amount) } -// Init is a paid mutator transaction binding the contract method 0xa72111dc. +// Init is a paid mutator transaction binding the contract method 0x2cc0b254. // -// Solidity: function init(address _addressManager, bytes32 _genesisBlockHash, uint32 _initFeePerGas, uint16 _initAvgProofDelay) returns() -func (_TaikoL1 *TaikoL1Transactor) Init(opts *bind.TransactOpts, _addressManager common.Address, _genesisBlockHash [32]byte, _initFeePerGas uint32, _initAvgProofDelay uint16) (*types.Transaction, error) { - return _TaikoL1.contract.Transact(opts, "init", _addressManager, _genesisBlockHash, _initFeePerGas, _initAvgProofDelay) +// Solidity: function init(address _addressManager, bytes32 _genesisBlockHash) returns() +func (_TaikoL1 *TaikoL1Transactor) Init(opts *bind.TransactOpts, _addressManager common.Address, _genesisBlockHash [32]byte) (*types.Transaction, error) { + return _TaikoL1.contract.Transact(opts, "init", _addressManager, _genesisBlockHash) } -// Init is a paid mutator transaction binding the contract method 0xa72111dc. +// Init is a paid mutator transaction binding the contract method 0x2cc0b254. // -// Solidity: function init(address _addressManager, bytes32 _genesisBlockHash, uint32 _initFeePerGas, uint16 _initAvgProofDelay) returns() -func (_TaikoL1 *TaikoL1Session) Init(_addressManager common.Address, _genesisBlockHash [32]byte, _initFeePerGas uint32, _initAvgProofDelay uint16) (*types.Transaction, error) { - return _TaikoL1.Contract.Init(&_TaikoL1.TransactOpts, _addressManager, _genesisBlockHash, _initFeePerGas, _initAvgProofDelay) +// Solidity: function init(address _addressManager, bytes32 _genesisBlockHash) returns() +func (_TaikoL1 *TaikoL1Session) Init(_addressManager common.Address, _genesisBlockHash [32]byte) (*types.Transaction, error) { + return _TaikoL1.Contract.Init(&_TaikoL1.TransactOpts, _addressManager, _genesisBlockHash) } -// Init is a paid mutator transaction binding the contract method 0xa72111dc. +// Init is a paid mutator transaction binding the contract method 0x2cc0b254. // -// Solidity: function init(address _addressManager, bytes32 _genesisBlockHash, uint32 _initFeePerGas, uint16 _initAvgProofDelay) returns() -func (_TaikoL1 *TaikoL1TransactorSession) Init(_addressManager common.Address, _genesisBlockHash [32]byte, _initFeePerGas uint32, _initAvgProofDelay uint16) (*types.Transaction, error) { - return _TaikoL1.Contract.Init(&_TaikoL1.TransactOpts, _addressManager, _genesisBlockHash, _initFeePerGas, _initAvgProofDelay) +// Solidity: function init(address _addressManager, bytes32 _genesisBlockHash) returns() +func (_TaikoL1 *TaikoL1TransactorSession) Init(_addressManager common.Address, _genesisBlockHash [32]byte) (*types.Transaction, error) { + return _TaikoL1.Contract.Init(&_TaikoL1.TransactOpts, _addressManager, _genesisBlockHash) } -// ProposeBlock is a paid mutator transaction binding the contract method 0xef16e845. +// ProposeBlock is a paid mutator transaction binding the contract method 0xb6d5a397. // -// Solidity: function proposeBlock(bytes input, bytes txList) returns((uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,address,(address,uint96,uint64)[]) meta) -func (_TaikoL1 *TaikoL1Transactor) ProposeBlock(opts *bind.TransactOpts, input []byte, txList []byte) (*types.Transaction, error) { - return _TaikoL1.contract.Transact(opts, "proposeBlock", input, txList) +// Solidity: function proposeBlock(bytes input, bytes assignment, bytes txList) payable returns((uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,(address,uint96,uint64)[]) meta) +func (_TaikoL1 *TaikoL1Transactor) ProposeBlock(opts *bind.TransactOpts, input []byte, assignment []byte, txList []byte) (*types.Transaction, error) { + return _TaikoL1.contract.Transact(opts, "proposeBlock", input, assignment, txList) } -// ProposeBlock is a paid mutator transaction binding the contract method 0xef16e845. +// ProposeBlock is a paid mutator transaction binding the contract method 0xb6d5a397. // -// Solidity: function proposeBlock(bytes input, bytes txList) returns((uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,address,(address,uint96,uint64)[]) meta) -func (_TaikoL1 *TaikoL1Session) ProposeBlock(input []byte, txList []byte) (*types.Transaction, error) { - return _TaikoL1.Contract.ProposeBlock(&_TaikoL1.TransactOpts, input, txList) +// Solidity: function proposeBlock(bytes input, bytes assignment, bytes txList) payable returns((uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,(address,uint96,uint64)[]) meta) +func (_TaikoL1 *TaikoL1Session) ProposeBlock(input []byte, assignment []byte, txList []byte) (*types.Transaction, error) { + return _TaikoL1.Contract.ProposeBlock(&_TaikoL1.TransactOpts, input, assignment, txList) } -// ProposeBlock is a paid mutator transaction binding the contract method 0xef16e845. +// ProposeBlock is a paid mutator transaction binding the contract method 0xb6d5a397. // -// Solidity: function proposeBlock(bytes input, bytes txList) returns((uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,address,(address,uint96,uint64)[]) meta) -func (_TaikoL1 *TaikoL1TransactorSession) ProposeBlock(input []byte, txList []byte) (*types.Transaction, error) { - return _TaikoL1.Contract.ProposeBlock(&_TaikoL1.TransactOpts, input, txList) +// Solidity: function proposeBlock(bytes input, bytes assignment, bytes txList) payable returns((uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,(address,uint96,uint64)[]) meta) +func (_TaikoL1 *TaikoL1TransactorSession) ProposeBlock(input []byte, assignment []byte, txList []byte) (*types.Transaction, error) { + return _TaikoL1.Contract.ProposeBlock(&_TaikoL1.TransactOpts, input, assignment, txList) } -// ProveBlock is a paid mutator transaction binding the contract method 0xf3840f60. +// ProveBlock is a paid mutator transaction binding the contract method 0x10d008bd. // -// Solidity: function proveBlock(uint256 blockId, bytes input) returns() -func (_TaikoL1 *TaikoL1Transactor) ProveBlock(opts *bind.TransactOpts, blockId *big.Int, input []byte) (*types.Transaction, error) { +// Solidity: function proveBlock(uint64 blockId, bytes input) returns() +func (_TaikoL1 *TaikoL1Transactor) ProveBlock(opts *bind.TransactOpts, blockId uint64, input []byte) (*types.Transaction, error) { return _TaikoL1.contract.Transact(opts, "proveBlock", blockId, input) } -// ProveBlock is a paid mutator transaction binding the contract method 0xf3840f60. +// ProveBlock is a paid mutator transaction binding the contract method 0x10d008bd. // -// Solidity: function proveBlock(uint256 blockId, bytes input) returns() -func (_TaikoL1 *TaikoL1Session) ProveBlock(blockId *big.Int, input []byte) (*types.Transaction, error) { +// Solidity: function proveBlock(uint64 blockId, bytes input) returns() +func (_TaikoL1 *TaikoL1Session) ProveBlock(blockId uint64, input []byte) (*types.Transaction, error) { return _TaikoL1.Contract.ProveBlock(&_TaikoL1.TransactOpts, blockId, input) } -// ProveBlock is a paid mutator transaction binding the contract method 0xf3840f60. +// ProveBlock is a paid mutator transaction binding the contract method 0x10d008bd. // -// Solidity: function proveBlock(uint256 blockId, bytes input) returns() -func (_TaikoL1 *TaikoL1TransactorSession) ProveBlock(blockId *big.Int, input []byte) (*types.Transaction, error) { +// Solidity: function proveBlock(uint64 blockId, bytes input) returns() +func (_TaikoL1 *TaikoL1TransactorSession) ProveBlock(blockId uint64, input []byte) (*types.Transaction, error) { return _TaikoL1.Contract.ProveBlock(&_TaikoL1.TransactOpts, blockId, input) } @@ -1014,24 +892,24 @@ func (_TaikoL1 *TaikoL1TransactorSession) TransferOwnership(newOwner common.Addr return _TaikoL1.Contract.TransferOwnership(&_TaikoL1.TransactOpts, newOwner) } -// VerifyBlocks is a paid mutator transaction binding the contract method 0x2fb5ae0a. +// VerifyBlocks is a paid mutator transaction binding the contract method 0x8778209d. // -// Solidity: function verifyBlocks(uint256 maxBlocks) returns() -func (_TaikoL1 *TaikoL1Transactor) VerifyBlocks(opts *bind.TransactOpts, maxBlocks *big.Int) (*types.Transaction, error) { +// Solidity: function verifyBlocks(uint64 maxBlocks) returns() +func (_TaikoL1 *TaikoL1Transactor) VerifyBlocks(opts *bind.TransactOpts, maxBlocks uint64) (*types.Transaction, error) { return _TaikoL1.contract.Transact(opts, "verifyBlocks", maxBlocks) } -// VerifyBlocks is a paid mutator transaction binding the contract method 0x2fb5ae0a. +// VerifyBlocks is a paid mutator transaction binding the contract method 0x8778209d. // -// Solidity: function verifyBlocks(uint256 maxBlocks) returns() -func (_TaikoL1 *TaikoL1Session) VerifyBlocks(maxBlocks *big.Int) (*types.Transaction, error) { +// Solidity: function verifyBlocks(uint64 maxBlocks) returns() +func (_TaikoL1 *TaikoL1Session) VerifyBlocks(maxBlocks uint64) (*types.Transaction, error) { return _TaikoL1.Contract.VerifyBlocks(&_TaikoL1.TransactOpts, maxBlocks) } -// VerifyBlocks is a paid mutator transaction binding the contract method 0x2fb5ae0a. +// VerifyBlocks is a paid mutator transaction binding the contract method 0x8778209d. // -// Solidity: function verifyBlocks(uint256 maxBlocks) returns() -func (_TaikoL1 *TaikoL1TransactorSession) VerifyBlocks(maxBlocks *big.Int) (*types.Transaction, error) { +// Solidity: function verifyBlocks(uint64 maxBlocks) returns() +func (_TaikoL1 *TaikoL1TransactorSession) VerifyBlocks(maxBlocks uint64) (*types.Transaction, error) { return _TaikoL1.Contract.VerifyBlocks(&_TaikoL1.TransactOpts, maxBlocks) } @@ -1290,50 +1168,49 @@ func (it *TaikoL1BlockProposedIterator) Close() error { // TaikoL1BlockProposed represents a BlockProposed event raised by the TaikoL1 contract. type TaikoL1BlockProposed struct { - BlockId *big.Int - AssignedProver common.Address - RewardPerGas uint32 - FeePerGas uint64 - Meta TaikoDataBlockMetadata - Raw types.Log // Blockchain specific contextual infos + BlockId *big.Int + Prover common.Address + Reward *big.Int + Meta TaikoDataBlockMetadata + Raw types.Log // Blockchain specific contextual infos } -// FilterBlockProposed is a free log retrieval operation binding the contract event 0xeff8292b096b6478c20f0047b60a36bbc7d7c8ec6465769a628fbad6b151170d. +// FilterBlockProposed is a free log retrieval operation binding the contract event 0xe3713939242e9072c6fbb16f90e98d4b583d66b9fae9208ba2148aa8d6e82af6. // -// Solidity: event BlockProposed(uint256 indexed blockId, address indexed assignedProver, uint32 rewardPerGas, uint64 feePerGas, (uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,address,(address,uint96,uint64)[]) meta) -func (_TaikoL1 *TaikoL1Filterer) FilterBlockProposed(opts *bind.FilterOpts, blockId []*big.Int, assignedProver []common.Address) (*TaikoL1BlockProposedIterator, error) { +// Solidity: event BlockProposed(uint256 indexed blockId, address indexed prover, uint256 reward, (uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,(address,uint96,uint64)[]) meta) +func (_TaikoL1 *TaikoL1Filterer) FilterBlockProposed(opts *bind.FilterOpts, blockId []*big.Int, prover []common.Address) (*TaikoL1BlockProposedIterator, error) { var blockIdRule []interface{} for _, blockIdItem := range blockId { blockIdRule = append(blockIdRule, blockIdItem) } - var assignedProverRule []interface{} - for _, assignedProverItem := range assignedProver { - assignedProverRule = append(assignedProverRule, assignedProverItem) + var proverRule []interface{} + for _, proverItem := range prover { + proverRule = append(proverRule, proverItem) } - logs, sub, err := _TaikoL1.contract.FilterLogs(opts, "BlockProposed", blockIdRule, assignedProverRule) + logs, sub, err := _TaikoL1.contract.FilterLogs(opts, "BlockProposed", blockIdRule, proverRule) if err != nil { return nil, err } return &TaikoL1BlockProposedIterator{contract: _TaikoL1.contract, event: "BlockProposed", logs: logs, sub: sub}, nil } -// WatchBlockProposed is a free log subscription operation binding the contract event 0xeff8292b096b6478c20f0047b60a36bbc7d7c8ec6465769a628fbad6b151170d. +// WatchBlockProposed is a free log subscription operation binding the contract event 0xe3713939242e9072c6fbb16f90e98d4b583d66b9fae9208ba2148aa8d6e82af6. // -// Solidity: event BlockProposed(uint256 indexed blockId, address indexed assignedProver, uint32 rewardPerGas, uint64 feePerGas, (uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,address,(address,uint96,uint64)[]) meta) -func (_TaikoL1 *TaikoL1Filterer) WatchBlockProposed(opts *bind.WatchOpts, sink chan<- *TaikoL1BlockProposed, blockId []*big.Int, assignedProver []common.Address) (event.Subscription, error) { +// Solidity: event BlockProposed(uint256 indexed blockId, address indexed prover, uint256 reward, (uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,(address,uint96,uint64)[]) meta) +func (_TaikoL1 *TaikoL1Filterer) WatchBlockProposed(opts *bind.WatchOpts, sink chan<- *TaikoL1BlockProposed, blockId []*big.Int, prover []common.Address) (event.Subscription, error) { var blockIdRule []interface{} for _, blockIdItem := range blockId { blockIdRule = append(blockIdRule, blockIdItem) } - var assignedProverRule []interface{} - for _, assignedProverItem := range assignedProver { - assignedProverRule = append(assignedProverRule, assignedProverItem) + var proverRule []interface{} + for _, proverItem := range prover { + proverRule = append(proverRule, proverItem) } - logs, sub, err := _TaikoL1.contract.WatchLogs(opts, "BlockProposed", blockIdRule, assignedProverRule) + logs, sub, err := _TaikoL1.contract.WatchLogs(opts, "BlockProposed", blockIdRule, proverRule) if err != nil { return nil, err } @@ -1365,9 +1242,9 @@ func (_TaikoL1 *TaikoL1Filterer) WatchBlockProposed(opts *bind.WatchOpts, sink c }), nil } -// ParseBlockProposed is a log parse operation binding the contract event 0xeff8292b096b6478c20f0047b60a36bbc7d7c8ec6465769a628fbad6b151170d. +// ParseBlockProposed is a log parse operation binding the contract event 0xe3713939242e9072c6fbb16f90e98d4b583d66b9fae9208ba2148aa8d6e82af6. // -// Solidity: event BlockProposed(uint256 indexed blockId, address indexed assignedProver, uint32 rewardPerGas, uint64 feePerGas, (uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,address,(address,uint96,uint64)[]) meta) +// Solidity: event BlockProposed(uint256 indexed blockId, address indexed prover, uint256 reward, (uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,(address,uint96,uint64)[]) meta) func (_TaikoL1 *TaikoL1Filterer) ParseBlockProposed(log types.Log) (*TaikoL1BlockProposed, error) { event := new(TaikoL1BlockProposed) if err := _TaikoL1.contract.UnpackLog(event, "BlockProposed", log); err != nil { @@ -1446,50 +1323,49 @@ func (it *TaikoL1BlockProposed0Iterator) Close() error { // TaikoL1BlockProposed0 represents a BlockProposed0 event raised by the TaikoL1 contract. type TaikoL1BlockProposed0 struct { - BlockId *big.Int - AssignedProver common.Address - RewardPerGas uint32 - FeePerGas uint64 - Meta TaikoDataBlockMetadata - Raw types.Log // Blockchain specific contextual infos + BlockId *big.Int + Prover common.Address + Reward *big.Int + Meta TaikoDataBlockMetadata + Raw types.Log // Blockchain specific contextual infos } -// FilterBlockProposed0 is a free log retrieval operation binding the contract event 0xeff8292b096b6478c20f0047b60a36bbc7d7c8ec6465769a628fbad6b151170d. +// FilterBlockProposed0 is a free log retrieval operation binding the contract event 0xe3713939242e9072c6fbb16f90e98d4b583d66b9fae9208ba2148aa8d6e82af6. // -// Solidity: event BlockProposed(uint256 indexed blockId, address indexed assignedProver, uint32 rewardPerGas, uint64 feePerGas, (uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,address,(address,uint96,uint64)[]) meta) -func (_TaikoL1 *TaikoL1Filterer) FilterBlockProposed0(opts *bind.FilterOpts, blockId []*big.Int, assignedProver []common.Address) (*TaikoL1BlockProposed0Iterator, error) { +// Solidity: event BlockProposed(uint256 indexed blockId, address indexed prover, uint256 reward, (uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,(address,uint96,uint64)[]) meta) +func (_TaikoL1 *TaikoL1Filterer) FilterBlockProposed0(opts *bind.FilterOpts, blockId []*big.Int, prover []common.Address) (*TaikoL1BlockProposed0Iterator, error) { var blockIdRule []interface{} for _, blockIdItem := range blockId { blockIdRule = append(blockIdRule, blockIdItem) } - var assignedProverRule []interface{} - for _, assignedProverItem := range assignedProver { - assignedProverRule = append(assignedProverRule, assignedProverItem) + var proverRule []interface{} + for _, proverItem := range prover { + proverRule = append(proverRule, proverItem) } - logs, sub, err := _TaikoL1.contract.FilterLogs(opts, "BlockProposed0", blockIdRule, assignedProverRule) + logs, sub, err := _TaikoL1.contract.FilterLogs(opts, "BlockProposed0", blockIdRule, proverRule) if err != nil { return nil, err } return &TaikoL1BlockProposed0Iterator{contract: _TaikoL1.contract, event: "BlockProposed0", logs: logs, sub: sub}, nil } -// WatchBlockProposed0 is a free log subscription operation binding the contract event 0xeff8292b096b6478c20f0047b60a36bbc7d7c8ec6465769a628fbad6b151170d. +// WatchBlockProposed0 is a free log subscription operation binding the contract event 0xe3713939242e9072c6fbb16f90e98d4b583d66b9fae9208ba2148aa8d6e82af6. // -// Solidity: event BlockProposed(uint256 indexed blockId, address indexed assignedProver, uint32 rewardPerGas, uint64 feePerGas, (uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,address,(address,uint96,uint64)[]) meta) -func (_TaikoL1 *TaikoL1Filterer) WatchBlockProposed0(opts *bind.WatchOpts, sink chan<- *TaikoL1BlockProposed0, blockId []*big.Int, assignedProver []common.Address) (event.Subscription, error) { +// Solidity: event BlockProposed(uint256 indexed blockId, address indexed prover, uint256 reward, (uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,(address,uint96,uint64)[]) meta) +func (_TaikoL1 *TaikoL1Filterer) WatchBlockProposed0(opts *bind.WatchOpts, sink chan<- *TaikoL1BlockProposed0, blockId []*big.Int, prover []common.Address) (event.Subscription, error) { var blockIdRule []interface{} for _, blockIdItem := range blockId { blockIdRule = append(blockIdRule, blockIdItem) } - var assignedProverRule []interface{} - for _, assignedProverItem := range assignedProver { - assignedProverRule = append(assignedProverRule, assignedProverItem) + var proverRule []interface{} + for _, proverItem := range prover { + proverRule = append(proverRule, proverItem) } - logs, sub, err := _TaikoL1.contract.WatchLogs(opts, "BlockProposed0", blockIdRule, assignedProverRule) + logs, sub, err := _TaikoL1.contract.WatchLogs(opts, "BlockProposed0", blockIdRule, proverRule) if err != nil { return nil, err } @@ -1521,9 +1397,9 @@ func (_TaikoL1 *TaikoL1Filterer) WatchBlockProposed0(opts *bind.WatchOpts, sink }), nil } -// ParseBlockProposed0 is a log parse operation binding the contract event 0xeff8292b096b6478c20f0047b60a36bbc7d7c8ec6465769a628fbad6b151170d. +// ParseBlockProposed0 is a log parse operation binding the contract event 0xe3713939242e9072c6fbb16f90e98d4b583d66b9fae9208ba2148aa8d6e82af6. // -// Solidity: event BlockProposed(uint256 indexed blockId, address indexed assignedProver, uint32 rewardPerGas, uint64 feePerGas, (uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,address,(address,uint96,uint64)[]) meta) +// Solidity: event BlockProposed(uint256 indexed blockId, address indexed prover, uint256 reward, (uint64,uint64,uint64,bytes32,bytes32,bytes32,uint24,uint24,uint32,address,(address,uint96,uint64)[]) meta) func (_TaikoL1 *TaikoL1Filterer) ParseBlockProposed0(log types.Log) (*TaikoL1BlockProposed0, error) { event := new(TaikoL1BlockProposed0) if err := _TaikoL1.contract.UnpackLog(event, "BlockProposed0", log); err != nil { @@ -1602,18 +1478,17 @@ func (it *TaikoL1BlockProvenIterator) Close() error { // TaikoL1BlockProven represents a BlockProven event raised by the TaikoL1 contract. type TaikoL1BlockProven struct { - BlockId *big.Int - ParentHash [32]byte - BlockHash [32]byte - SignalRoot [32]byte - Prover common.Address - ParentGasUsed uint32 - Raw types.Log // Blockchain specific contextual infos + BlockId *big.Int + ParentHash [32]byte + BlockHash [32]byte + SignalRoot [32]byte + Prover common.Address + Raw types.Log // Blockchain specific contextual infos } -// FilterBlockProven is a free log retrieval operation binding the contract event 0x2295930c498c7b1f60143439a63dd1d24bbb730f08ff6ed383b490ba2c1cafa4. +// FilterBlockProven is a free log retrieval operation binding the contract event 0xd93fde3ea1bb11dcd7a4e66320a05fc5aa63983b6447eff660084c4b1b1b499b. // -// Solidity: event BlockProven(uint256 indexed blockId, bytes32 parentHash, bytes32 blockHash, bytes32 signalRoot, address prover, uint32 parentGasUsed) +// Solidity: event BlockProven(uint256 indexed blockId, bytes32 parentHash, bytes32 blockHash, bytes32 signalRoot, address prover) func (_TaikoL1 *TaikoL1Filterer) FilterBlockProven(opts *bind.FilterOpts, blockId []*big.Int) (*TaikoL1BlockProvenIterator, error) { var blockIdRule []interface{} @@ -1628,9 +1503,9 @@ func (_TaikoL1 *TaikoL1Filterer) FilterBlockProven(opts *bind.FilterOpts, blockI return &TaikoL1BlockProvenIterator{contract: _TaikoL1.contract, event: "BlockProven", logs: logs, sub: sub}, nil } -// WatchBlockProven is a free log subscription operation binding the contract event 0x2295930c498c7b1f60143439a63dd1d24bbb730f08ff6ed383b490ba2c1cafa4. +// WatchBlockProven is a free log subscription operation binding the contract event 0xd93fde3ea1bb11dcd7a4e66320a05fc5aa63983b6447eff660084c4b1b1b499b. // -// Solidity: event BlockProven(uint256 indexed blockId, bytes32 parentHash, bytes32 blockHash, bytes32 signalRoot, address prover, uint32 parentGasUsed) +// Solidity: event BlockProven(uint256 indexed blockId, bytes32 parentHash, bytes32 blockHash, bytes32 signalRoot, address prover) func (_TaikoL1 *TaikoL1Filterer) WatchBlockProven(opts *bind.WatchOpts, sink chan<- *TaikoL1BlockProven, blockId []*big.Int) (event.Subscription, error) { var blockIdRule []interface{} @@ -1670,9 +1545,9 @@ func (_TaikoL1 *TaikoL1Filterer) WatchBlockProven(opts *bind.WatchOpts, sink cha }), nil } -// ParseBlockProven is a log parse operation binding the contract event 0x2295930c498c7b1f60143439a63dd1d24bbb730f08ff6ed383b490ba2c1cafa4. +// ParseBlockProven is a log parse operation binding the contract event 0xd93fde3ea1bb11dcd7a4e66320a05fc5aa63983b6447eff660084c4b1b1b499b. // -// Solidity: event BlockProven(uint256 indexed blockId, bytes32 parentHash, bytes32 blockHash, bytes32 signalRoot, address prover, uint32 parentGasUsed) +// Solidity: event BlockProven(uint256 indexed blockId, bytes32 parentHash, bytes32 blockHash, bytes32 signalRoot, address prover) func (_TaikoL1 *TaikoL1Filterer) ParseBlockProven(log types.Log) (*TaikoL1BlockProven, error) { event := new(TaikoL1BlockProven) if err := _TaikoL1.contract.UnpackLog(event, "BlockProven", log); err != nil { @@ -1751,18 +1626,17 @@ func (it *TaikoL1BlockProven0Iterator) Close() error { // TaikoL1BlockProven0 represents a BlockProven0 event raised by the TaikoL1 contract. type TaikoL1BlockProven0 struct { - BlockId *big.Int - ParentHash [32]byte - BlockHash [32]byte - SignalRoot [32]byte - Prover common.Address - ParentGasUsed uint32 - Raw types.Log // Blockchain specific contextual infos + BlockId *big.Int + ParentHash [32]byte + BlockHash [32]byte + SignalRoot [32]byte + Prover common.Address + Raw types.Log // Blockchain specific contextual infos } -// FilterBlockProven0 is a free log retrieval operation binding the contract event 0x2295930c498c7b1f60143439a63dd1d24bbb730f08ff6ed383b490ba2c1cafa4. +// FilterBlockProven0 is a free log retrieval operation binding the contract event 0xd93fde3ea1bb11dcd7a4e66320a05fc5aa63983b6447eff660084c4b1b1b499b. // -// Solidity: event BlockProven(uint256 indexed blockId, bytes32 parentHash, bytes32 blockHash, bytes32 signalRoot, address prover, uint32 parentGasUsed) +// Solidity: event BlockProven(uint256 indexed blockId, bytes32 parentHash, bytes32 blockHash, bytes32 signalRoot, address prover) func (_TaikoL1 *TaikoL1Filterer) FilterBlockProven0(opts *bind.FilterOpts, blockId []*big.Int) (*TaikoL1BlockProven0Iterator, error) { var blockIdRule []interface{} @@ -1777,9 +1651,9 @@ func (_TaikoL1 *TaikoL1Filterer) FilterBlockProven0(opts *bind.FilterOpts, block return &TaikoL1BlockProven0Iterator{contract: _TaikoL1.contract, event: "BlockProven0", logs: logs, sub: sub}, nil } -// WatchBlockProven0 is a free log subscription operation binding the contract event 0x2295930c498c7b1f60143439a63dd1d24bbb730f08ff6ed383b490ba2c1cafa4. +// WatchBlockProven0 is a free log subscription operation binding the contract event 0xd93fde3ea1bb11dcd7a4e66320a05fc5aa63983b6447eff660084c4b1b1b499b. // -// Solidity: event BlockProven(uint256 indexed blockId, bytes32 parentHash, bytes32 blockHash, bytes32 signalRoot, address prover, uint32 parentGasUsed) +// Solidity: event BlockProven(uint256 indexed blockId, bytes32 parentHash, bytes32 blockHash, bytes32 signalRoot, address prover) func (_TaikoL1 *TaikoL1Filterer) WatchBlockProven0(opts *bind.WatchOpts, sink chan<- *TaikoL1BlockProven0, blockId []*big.Int) (event.Subscription, error) { var blockIdRule []interface{} @@ -1819,9 +1693,9 @@ func (_TaikoL1 *TaikoL1Filterer) WatchBlockProven0(opts *bind.WatchOpts, sink ch }), nil } -// ParseBlockProven0 is a log parse operation binding the contract event 0x2295930c498c7b1f60143439a63dd1d24bbb730f08ff6ed383b490ba2c1cafa4. +// ParseBlockProven0 is a log parse operation binding the contract event 0xd93fde3ea1bb11dcd7a4e66320a05fc5aa63983b6447eff660084c4b1b1b499b. // -// Solidity: event BlockProven(uint256 indexed blockId, bytes32 parentHash, bytes32 blockHash, bytes32 signalRoot, address prover, uint32 parentGasUsed) +// Solidity: event BlockProven(uint256 indexed blockId, bytes32 parentHash, bytes32 blockHash, bytes32 signalRoot, address prover) func (_TaikoL1 *TaikoL1Filterer) ParseBlockProven0(log types.Log) (*TaikoL1BlockProven0, error) { event := new(TaikoL1BlockProven0) if err := _TaikoL1.contract.UnpackLog(event, "BlockProven0", log); err != nil { @@ -1900,42 +1774,48 @@ func (it *TaikoL1BlockVerifiedIterator) Close() error { // TaikoL1BlockVerified represents a BlockVerified event raised by the TaikoL1 contract. type TaikoL1BlockVerified struct { - BlockId *big.Int - BlockHash [32]byte - Prover common.Address - BlockFee uint64 - ProofReward uint64 - Raw types.Log // Blockchain specific contextual infos + BlockId *big.Int + Prover common.Address + BlockHash [32]byte + Raw types.Log // Blockchain specific contextual infos } -// FilterBlockVerified is a free log retrieval operation binding the contract event 0x9b08b6aa43471ed7ec774671665f95855fcc9146b7f461b985aef9d9b66df06e. +// FilterBlockVerified is a free log retrieval operation binding the contract event 0xb2fa36cea736414fca28c5aca50d94c59d740984c4c878c3dd8ba26791309b1a. // -// Solidity: event BlockVerified(uint256 indexed blockId, bytes32 blockHash, address prover, uint64 blockFee, uint64 proofReward) -func (_TaikoL1 *TaikoL1Filterer) FilterBlockVerified(opts *bind.FilterOpts, blockId []*big.Int) (*TaikoL1BlockVerifiedIterator, error) { +// Solidity: event BlockVerified(uint256 indexed blockId, address indexed prover, bytes32 blockHash) +func (_TaikoL1 *TaikoL1Filterer) FilterBlockVerified(opts *bind.FilterOpts, blockId []*big.Int, prover []common.Address) (*TaikoL1BlockVerifiedIterator, error) { var blockIdRule []interface{} for _, blockIdItem := range blockId { blockIdRule = append(blockIdRule, blockIdItem) } + var proverRule []interface{} + for _, proverItem := range prover { + proverRule = append(proverRule, proverItem) + } - logs, sub, err := _TaikoL1.contract.FilterLogs(opts, "BlockVerified", blockIdRule) + logs, sub, err := _TaikoL1.contract.FilterLogs(opts, "BlockVerified", blockIdRule, proverRule) if err != nil { return nil, err } return &TaikoL1BlockVerifiedIterator{contract: _TaikoL1.contract, event: "BlockVerified", logs: logs, sub: sub}, nil } -// WatchBlockVerified is a free log subscription operation binding the contract event 0x9b08b6aa43471ed7ec774671665f95855fcc9146b7f461b985aef9d9b66df06e. +// WatchBlockVerified is a free log subscription operation binding the contract event 0xb2fa36cea736414fca28c5aca50d94c59d740984c4c878c3dd8ba26791309b1a. // -// Solidity: event BlockVerified(uint256 indexed blockId, bytes32 blockHash, address prover, uint64 blockFee, uint64 proofReward) -func (_TaikoL1 *TaikoL1Filterer) WatchBlockVerified(opts *bind.WatchOpts, sink chan<- *TaikoL1BlockVerified, blockId []*big.Int) (event.Subscription, error) { +// Solidity: event BlockVerified(uint256 indexed blockId, address indexed prover, bytes32 blockHash) +func (_TaikoL1 *TaikoL1Filterer) WatchBlockVerified(opts *bind.WatchOpts, sink chan<- *TaikoL1BlockVerified, blockId []*big.Int, prover []common.Address) (event.Subscription, error) { var blockIdRule []interface{} for _, blockIdItem := range blockId { blockIdRule = append(blockIdRule, blockIdItem) } + var proverRule []interface{} + for _, proverItem := range prover { + proverRule = append(proverRule, proverItem) + } - logs, sub, err := _TaikoL1.contract.WatchLogs(opts, "BlockVerified", blockIdRule) + logs, sub, err := _TaikoL1.contract.WatchLogs(opts, "BlockVerified", blockIdRule, proverRule) if err != nil { return nil, err } @@ -1967,9 +1847,9 @@ func (_TaikoL1 *TaikoL1Filterer) WatchBlockVerified(opts *bind.WatchOpts, sink c }), nil } -// ParseBlockVerified is a log parse operation binding the contract event 0x9b08b6aa43471ed7ec774671665f95855fcc9146b7f461b985aef9d9b66df06e. +// ParseBlockVerified is a log parse operation binding the contract event 0xb2fa36cea736414fca28c5aca50d94c59d740984c4c878c3dd8ba26791309b1a. // -// Solidity: event BlockVerified(uint256 indexed blockId, bytes32 blockHash, address prover, uint64 blockFee, uint64 proofReward) +// Solidity: event BlockVerified(uint256 indexed blockId, address indexed prover, bytes32 blockHash) func (_TaikoL1 *TaikoL1Filterer) ParseBlockVerified(log types.Log) (*TaikoL1BlockVerified, error) { event := new(TaikoL1BlockVerified) if err := _TaikoL1.contract.UnpackLog(event, "BlockVerified", log); err != nil { @@ -2048,42 +1928,48 @@ func (it *TaikoL1BlockVerified0Iterator) Close() error { // TaikoL1BlockVerified0 represents a BlockVerified0 event raised by the TaikoL1 contract. type TaikoL1BlockVerified0 struct { - BlockId *big.Int - BlockHash [32]byte - Prover common.Address - BlockFee uint64 - ProofReward uint64 - Raw types.Log // Blockchain specific contextual infos + BlockId *big.Int + Prover common.Address + BlockHash [32]byte + Raw types.Log // Blockchain specific contextual infos } -// FilterBlockVerified0 is a free log retrieval operation binding the contract event 0x9b08b6aa43471ed7ec774671665f95855fcc9146b7f461b985aef9d9b66df06e. +// FilterBlockVerified0 is a free log retrieval operation binding the contract event 0xb2fa36cea736414fca28c5aca50d94c59d740984c4c878c3dd8ba26791309b1a. // -// Solidity: event BlockVerified(uint256 indexed blockId, bytes32 blockHash, address prover, uint64 blockFee, uint64 proofReward) -func (_TaikoL1 *TaikoL1Filterer) FilterBlockVerified0(opts *bind.FilterOpts, blockId []*big.Int) (*TaikoL1BlockVerified0Iterator, error) { +// Solidity: event BlockVerified(uint256 indexed blockId, address indexed prover, bytes32 blockHash) +func (_TaikoL1 *TaikoL1Filterer) FilterBlockVerified0(opts *bind.FilterOpts, blockId []*big.Int, prover []common.Address) (*TaikoL1BlockVerified0Iterator, error) { var blockIdRule []interface{} for _, blockIdItem := range blockId { blockIdRule = append(blockIdRule, blockIdItem) } + var proverRule []interface{} + for _, proverItem := range prover { + proverRule = append(proverRule, proverItem) + } - logs, sub, err := _TaikoL1.contract.FilterLogs(opts, "BlockVerified0", blockIdRule) + logs, sub, err := _TaikoL1.contract.FilterLogs(opts, "BlockVerified0", blockIdRule, proverRule) if err != nil { return nil, err } return &TaikoL1BlockVerified0Iterator{contract: _TaikoL1.contract, event: "BlockVerified0", logs: logs, sub: sub}, nil } -// WatchBlockVerified0 is a free log subscription operation binding the contract event 0x9b08b6aa43471ed7ec774671665f95855fcc9146b7f461b985aef9d9b66df06e. +// WatchBlockVerified0 is a free log subscription operation binding the contract event 0xb2fa36cea736414fca28c5aca50d94c59d740984c4c878c3dd8ba26791309b1a. // -// Solidity: event BlockVerified(uint256 indexed blockId, bytes32 blockHash, address prover, uint64 blockFee, uint64 proofReward) -func (_TaikoL1 *TaikoL1Filterer) WatchBlockVerified0(opts *bind.WatchOpts, sink chan<- *TaikoL1BlockVerified0, blockId []*big.Int) (event.Subscription, error) { +// Solidity: event BlockVerified(uint256 indexed blockId, address indexed prover, bytes32 blockHash) +func (_TaikoL1 *TaikoL1Filterer) WatchBlockVerified0(opts *bind.WatchOpts, sink chan<- *TaikoL1BlockVerified0, blockId []*big.Int, prover []common.Address) (event.Subscription, error) { var blockIdRule []interface{} for _, blockIdItem := range blockId { blockIdRule = append(blockIdRule, blockIdItem) } + var proverRule []interface{} + for _, proverItem := range prover { + proverRule = append(proverRule, proverItem) + } - logs, sub, err := _TaikoL1.contract.WatchLogs(opts, "BlockVerified0", blockIdRule) + logs, sub, err := _TaikoL1.contract.WatchLogs(opts, "BlockVerified0", blockIdRule, proverRule) if err != nil { return nil, err } @@ -2115,9 +2001,9 @@ func (_TaikoL1 *TaikoL1Filterer) WatchBlockVerified0(opts *bind.WatchOpts, sink }), nil } -// ParseBlockVerified0 is a log parse operation binding the contract event 0x9b08b6aa43471ed7ec774671665f95855fcc9146b7f461b985aef9d9b66df06e. +// ParseBlockVerified0 is a log parse operation binding the contract event 0xb2fa36cea736414fca28c5aca50d94c59d740984c4c878c3dd8ba26791309b1a. // -// Solidity: event BlockVerified(uint256 indexed blockId, bytes32 blockHash, address prover, uint64 blockFee, uint64 proofReward) +// Solidity: event BlockVerified(uint256 indexed blockId, address indexed prover, bytes32 blockHash) func (_TaikoL1 *TaikoL1Filterer) ParseBlockVerified0(log types.Log) (*TaikoL1BlockVerified0, error) { event := new(TaikoL1BlockVerified0) if err := _TaikoL1.contract.UnpackLog(event, "BlockVerified0", log); err != nil { @@ -2196,16 +2082,16 @@ func (it *TaikoL1CrossChainSyncedIterator) Close() error { // TaikoL1CrossChainSynced represents a CrossChainSynced event raised by the TaikoL1 contract. type TaikoL1CrossChainSynced struct { - SrcHeight *big.Int + SrcHeight uint64 BlockHash [32]byte SignalRoot [32]byte Raw types.Log // Blockchain specific contextual infos } -// FilterCrossChainSynced is a free log retrieval operation binding the contract event 0x7528bbd1cef0e5d13408706892a51ee8ef82bbf33d4ec0c37216f8beba71205b. +// FilterCrossChainSynced is a free log retrieval operation binding the contract event 0x004ce985b8852a486571d0545799251fd671adcf33b7854a5f0f6a6a2431a555. // -// Solidity: event CrossChainSynced(uint256 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) -func (_TaikoL1 *TaikoL1Filterer) FilterCrossChainSynced(opts *bind.FilterOpts, srcHeight []*big.Int) (*TaikoL1CrossChainSyncedIterator, error) { +// Solidity: event CrossChainSynced(uint64 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) +func (_TaikoL1 *TaikoL1Filterer) FilterCrossChainSynced(opts *bind.FilterOpts, srcHeight []uint64) (*TaikoL1CrossChainSyncedIterator, error) { var srcHeightRule []interface{} for _, srcHeightItem := range srcHeight { @@ -2219,10 +2105,10 @@ func (_TaikoL1 *TaikoL1Filterer) FilterCrossChainSynced(opts *bind.FilterOpts, s return &TaikoL1CrossChainSyncedIterator{contract: _TaikoL1.contract, event: "CrossChainSynced", logs: logs, sub: sub}, nil } -// WatchCrossChainSynced is a free log subscription operation binding the contract event 0x7528bbd1cef0e5d13408706892a51ee8ef82bbf33d4ec0c37216f8beba71205b. +// WatchCrossChainSynced is a free log subscription operation binding the contract event 0x004ce985b8852a486571d0545799251fd671adcf33b7854a5f0f6a6a2431a555. // -// Solidity: event CrossChainSynced(uint256 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) -func (_TaikoL1 *TaikoL1Filterer) WatchCrossChainSynced(opts *bind.WatchOpts, sink chan<- *TaikoL1CrossChainSynced, srcHeight []*big.Int) (event.Subscription, error) { +// Solidity: event CrossChainSynced(uint64 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) +func (_TaikoL1 *TaikoL1Filterer) WatchCrossChainSynced(opts *bind.WatchOpts, sink chan<- *TaikoL1CrossChainSynced, srcHeight []uint64) (event.Subscription, error) { var srcHeightRule []interface{} for _, srcHeightItem := range srcHeight { @@ -2261,9 +2147,9 @@ func (_TaikoL1 *TaikoL1Filterer) WatchCrossChainSynced(opts *bind.WatchOpts, sin }), nil } -// ParseCrossChainSynced is a log parse operation binding the contract event 0x7528bbd1cef0e5d13408706892a51ee8ef82bbf33d4ec0c37216f8beba71205b. +// ParseCrossChainSynced is a log parse operation binding the contract event 0x004ce985b8852a486571d0545799251fd671adcf33b7854a5f0f6a6a2431a555. // -// Solidity: event CrossChainSynced(uint256 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) +// Solidity: event CrossChainSynced(uint64 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) func (_TaikoL1 *TaikoL1Filterer) ParseCrossChainSynced(log types.Log) (*TaikoL1CrossChainSynced, error) { event := new(TaikoL1CrossChainSynced) if err := _TaikoL1.contract.UnpackLog(event, "CrossChainSynced", log); err != nil { @@ -2342,16 +2228,16 @@ func (it *TaikoL1CrossChainSynced0Iterator) Close() error { // TaikoL1CrossChainSynced0 represents a CrossChainSynced0 event raised by the TaikoL1 contract. type TaikoL1CrossChainSynced0 struct { - SrcHeight *big.Int + SrcHeight uint64 BlockHash [32]byte SignalRoot [32]byte Raw types.Log // Blockchain specific contextual infos } -// FilterCrossChainSynced0 is a free log retrieval operation binding the contract event 0x7528bbd1cef0e5d13408706892a51ee8ef82bbf33d4ec0c37216f8beba71205b. +// FilterCrossChainSynced0 is a free log retrieval operation binding the contract event 0x004ce985b8852a486571d0545799251fd671adcf33b7854a5f0f6a6a2431a555. // -// Solidity: event CrossChainSynced(uint256 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) -func (_TaikoL1 *TaikoL1Filterer) FilterCrossChainSynced0(opts *bind.FilterOpts, srcHeight []*big.Int) (*TaikoL1CrossChainSynced0Iterator, error) { +// Solidity: event CrossChainSynced(uint64 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) +func (_TaikoL1 *TaikoL1Filterer) FilterCrossChainSynced0(opts *bind.FilterOpts, srcHeight []uint64) (*TaikoL1CrossChainSynced0Iterator, error) { var srcHeightRule []interface{} for _, srcHeightItem := range srcHeight { @@ -2365,10 +2251,10 @@ func (_TaikoL1 *TaikoL1Filterer) FilterCrossChainSynced0(opts *bind.FilterOpts, return &TaikoL1CrossChainSynced0Iterator{contract: _TaikoL1.contract, event: "CrossChainSynced0", logs: logs, sub: sub}, nil } -// WatchCrossChainSynced0 is a free log subscription operation binding the contract event 0x7528bbd1cef0e5d13408706892a51ee8ef82bbf33d4ec0c37216f8beba71205b. +// WatchCrossChainSynced0 is a free log subscription operation binding the contract event 0x004ce985b8852a486571d0545799251fd671adcf33b7854a5f0f6a6a2431a555. // -// Solidity: event CrossChainSynced(uint256 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) -func (_TaikoL1 *TaikoL1Filterer) WatchCrossChainSynced0(opts *bind.WatchOpts, sink chan<- *TaikoL1CrossChainSynced0, srcHeight []*big.Int) (event.Subscription, error) { +// Solidity: event CrossChainSynced(uint64 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) +func (_TaikoL1 *TaikoL1Filterer) WatchCrossChainSynced0(opts *bind.WatchOpts, sink chan<- *TaikoL1CrossChainSynced0, srcHeight []uint64) (event.Subscription, error) { var srcHeightRule []interface{} for _, srcHeightItem := range srcHeight { @@ -2407,9 +2293,9 @@ func (_TaikoL1 *TaikoL1Filterer) WatchCrossChainSynced0(opts *bind.WatchOpts, si }), nil } -// ParseCrossChainSynced0 is a log parse operation binding the contract event 0x7528bbd1cef0e5d13408706892a51ee8ef82bbf33d4ec0c37216f8beba71205b. +// ParseCrossChainSynced0 is a log parse operation binding the contract event 0x004ce985b8852a486571d0545799251fd671adcf33b7854a5f0f6a6a2431a555. // -// Solidity: event CrossChainSynced(uint256 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) +// Solidity: event CrossChainSynced(uint64 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) func (_TaikoL1 *TaikoL1Filterer) ParseCrossChainSynced0(log types.Log) (*TaikoL1CrossChainSynced0, error) { event := new(TaikoL1CrossChainSynced0) if err := _TaikoL1.contract.UnpackLog(event, "CrossChainSynced0", log); err != nil { diff --git a/packages/relayer/contracts/taikol2/TaikoL2.go b/packages/relayer/contracts/taikol2/TaikoL2.go index f66c667d3f..9c95149a3e 100644 --- a/packages/relayer/contracts/taikol2/TaikoL2.go +++ b/packages/relayer/contracts/taikol2/TaikoL2.go @@ -47,7 +47,7 @@ type TaikoL2EIP1559Params struct { // TaikoL2MetaData contains all meta data concerning the TaikoL2 contract. var TaikoL2MetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[],\"name\":\"L2_1559_OUT_OF_STOCK\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L2_1559_OUT_OF_STOCK\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"expected\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"actual\",\"type\":\"uint64\"}],\"name\":\"L2_1559_UNEXPECTED_CHANGE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"expected\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"actual\",\"type\":\"uint64\"}],\"name\":\"L2_1559_UNEXPECTED_CHANGE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"expected\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"actual\",\"type\":\"uint64\"}],\"name\":\"L2_BASEFEE_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L2_INVALID_1559_PARAMS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L2_INVALID_CHAIN_ID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L2_INVALID_GOLDEN_TOUCH_K\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L2_INVALID_SENDER\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actual\",\"type\":\"bytes32\"}],\"name\":\"L2_PUBLIC_INPUT_HASH_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L2_TOO_LATE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Overflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RESOLVER_DENIED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RESOLVER_INVALID_ADDR\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"}],\"name\":\"RESOLVER_ZERO_ADDR\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addressManager\",\"type\":\"address\"}],\"name\":\"AddressManagerChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"number\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"basefee\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"gaslimit\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"parentHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"prevrandao\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"coinbase\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"chainid\",\"type\":\"uint32\"}],\"name\":\"Anchored\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"srcHeight\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signalRoot\",\"type\":\"bytes32\"}],\"name\":\"CrossChainSynced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"GOLDEN_TOUCH_ADDRESS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"GOLDEN_TOUCH_PRIVATEKEY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"addressManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"l1Hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"l1SignalRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"l1Height\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"parentGasUsed\",\"type\":\"uint32\"}],\"name\":\"anchor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gasExcess\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"timeSinceParent\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"parentGasUsed\",\"type\":\"uint32\"}],\"name\":\"getBasefee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_basefee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"name\":\"getBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"name\":\"getCrossChainBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"name\":\"getCrossChainSignalRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getEIP1559Config\",\"outputs\":[{\"components\":[{\"internalType\":\"uint128\",\"name\":\"yscale\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"xscale\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"gasIssuedPerSecond\",\"type\":\"uint32\"}],\"internalType\":\"structTaikoL2.EIP1559Config\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addressManager\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"basefee\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"gasIssuedPerSecond\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"gasExcessMax\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasTarget\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"ratio2x1x\",\"type\":\"uint64\"}],\"internalType\":\"structTaikoL2.EIP1559Params\",\"name\":\"_param1559\",\"type\":\"tuple\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestSyncedL1Height\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"parentTimestamp\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"publicInputHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"allowZeroAddress\",\"type\":\"bool\"}],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"allowZeroAddress\",\"type\":\"bool\"}],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAddressManager\",\"type\":\"address\"}],\"name\":\"setAddressManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"k\",\"type\":\"uint8\"}],\"name\":\"signAnchor\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"r\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"s\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + ABI: "[{\"inputs\":[],\"name\":\"L2_1559_OUT_OF_STOCK\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L2_1559_OUT_OF_STOCK\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"expected\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"actual\",\"type\":\"uint64\"}],\"name\":\"L2_1559_UNEXPECTED_CHANGE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"expected\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"actual\",\"type\":\"uint64\"}],\"name\":\"L2_1559_UNEXPECTED_CHANGE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"expected\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"actual\",\"type\":\"uint64\"}],\"name\":\"L2_BASEFEE_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L2_INVALID_1559_PARAMS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L2_INVALID_CHAIN_ID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L2_INVALID_GOLDEN_TOUCH_K\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L2_INVALID_SENDER\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"expected\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actual\",\"type\":\"bytes32\"}],\"name\":\"L2_PUBLIC_INPUT_HASH_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"L2_TOO_LATE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Overflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RESOLVER_DENIED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RESOLVER_INVALID_ADDR\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"}],\"name\":\"RESOLVER_ZERO_ADDR\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addressManager\",\"type\":\"address\"}],\"name\":\"AddressManagerChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"number\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"basefee\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"gaslimit\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"parentHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"prevrandao\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"coinbase\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"chainid\",\"type\":\"uint32\"}],\"name\":\"Anchored\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"srcHeight\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"signalRoot\",\"type\":\"bytes32\"}],\"name\":\"CrossChainSynced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"GOLDEN_TOUCH_ADDRESS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"GOLDEN_TOUCH_PRIVATEKEY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"addressManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"l1Hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"l1SignalRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"l1Height\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"parentGasUsed\",\"type\":\"uint32\"}],\"name\":\"anchor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gasExcess\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"timeSinceParent\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"parentGasUsed\",\"type\":\"uint32\"}],\"name\":\"getBasefee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_basefee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blockId\",\"type\":\"uint64\"}],\"name\":\"getBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blockId\",\"type\":\"uint64\"}],\"name\":\"getCrossChainBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"blockId\",\"type\":\"uint64\"}],\"name\":\"getCrossChainSignalRoot\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getEIP1559Config\",\"outputs\":[{\"components\":[{\"internalType\":\"uint128\",\"name\":\"yscale\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"xscale\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"gasIssuedPerSecond\",\"type\":\"uint32\"}],\"internalType\":\"structTaikoL2.EIP1559Config\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addressManager\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"basefee\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"gasIssuedPerSecond\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"gasExcessMax\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"gasTarget\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"ratio2x1x\",\"type\":\"uint64\"}],\"internalType\":\"structTaikoL2.EIP1559Params\",\"name\":\"_param1559\",\"type\":\"tuple\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestSyncedL1Height\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"parentTimestamp\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"publicInputHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"allowZeroAddress\",\"type\":\"bool\"}],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"allowZeroAddress\",\"type\":\"bool\"}],\"name\":\"resolve\",\"outputs\":[{\"internalType\":\"addresspayable\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAddressManager\",\"type\":\"address\"}],\"name\":\"setAddressManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"k\",\"type\":\"uint8\"}],\"name\":\"signAnchor\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"r\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"s\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", } // TaikoL2ABI is the input ABI used to generate the binding from. @@ -351,12 +351,12 @@ func (_TaikoL2 *TaikoL2CallerSession) GetBasefee(timeSinceParent uint64, parentG return _TaikoL2.Contract.GetBasefee(&_TaikoL2.CallOpts, timeSinceParent, parentGasUsed) } -// GetBlockHash is a free data retrieval call binding the contract method 0xee82ac5e. +// GetBlockHash is a free data retrieval call binding the contract method 0x23ac7136. // -// Solidity: function getBlockHash(uint256 number) view returns(bytes32) -func (_TaikoL2 *TaikoL2Caller) GetBlockHash(opts *bind.CallOpts, number *big.Int) ([32]byte, error) { +// Solidity: function getBlockHash(uint64 blockId) view returns(bytes32) +func (_TaikoL2 *TaikoL2Caller) GetBlockHash(opts *bind.CallOpts, blockId uint64) ([32]byte, error) { var out []interface{} - err := _TaikoL2.contract.Call(opts, &out, "getBlockHash", number) + err := _TaikoL2.contract.Call(opts, &out, "getBlockHash", blockId) if err != nil { return *new([32]byte), err @@ -368,26 +368,26 @@ func (_TaikoL2 *TaikoL2Caller) GetBlockHash(opts *bind.CallOpts, number *big.Int } -// GetBlockHash is a free data retrieval call binding the contract method 0xee82ac5e. +// GetBlockHash is a free data retrieval call binding the contract method 0x23ac7136. // -// Solidity: function getBlockHash(uint256 number) view returns(bytes32) -func (_TaikoL2 *TaikoL2Session) GetBlockHash(number *big.Int) ([32]byte, error) { - return _TaikoL2.Contract.GetBlockHash(&_TaikoL2.CallOpts, number) +// Solidity: function getBlockHash(uint64 blockId) view returns(bytes32) +func (_TaikoL2 *TaikoL2Session) GetBlockHash(blockId uint64) ([32]byte, error) { + return _TaikoL2.Contract.GetBlockHash(&_TaikoL2.CallOpts, blockId) } -// GetBlockHash is a free data retrieval call binding the contract method 0xee82ac5e. +// GetBlockHash is a free data retrieval call binding the contract method 0x23ac7136. // -// Solidity: function getBlockHash(uint256 number) view returns(bytes32) -func (_TaikoL2 *TaikoL2CallerSession) GetBlockHash(number *big.Int) ([32]byte, error) { - return _TaikoL2.Contract.GetBlockHash(&_TaikoL2.CallOpts, number) +// Solidity: function getBlockHash(uint64 blockId) view returns(bytes32) +func (_TaikoL2 *TaikoL2CallerSession) GetBlockHash(blockId uint64) ([32]byte, error) { + return _TaikoL2.Contract.GetBlockHash(&_TaikoL2.CallOpts, blockId) } -// GetCrossChainBlockHash is a free data retrieval call binding the contract method 0xbacb386d. +// GetCrossChainBlockHash is a free data retrieval call binding the contract method 0xbdd6bc36. // -// Solidity: function getCrossChainBlockHash(uint256 number) view returns(bytes32) -func (_TaikoL2 *TaikoL2Caller) GetCrossChainBlockHash(opts *bind.CallOpts, number *big.Int) ([32]byte, error) { +// Solidity: function getCrossChainBlockHash(uint64 blockId) view returns(bytes32) +func (_TaikoL2 *TaikoL2Caller) GetCrossChainBlockHash(opts *bind.CallOpts, blockId uint64) ([32]byte, error) { var out []interface{} - err := _TaikoL2.contract.Call(opts, &out, "getCrossChainBlockHash", number) + err := _TaikoL2.contract.Call(opts, &out, "getCrossChainBlockHash", blockId) if err != nil { return *new([32]byte), err @@ -399,26 +399,26 @@ func (_TaikoL2 *TaikoL2Caller) GetCrossChainBlockHash(opts *bind.CallOpts, numbe } -// GetCrossChainBlockHash is a free data retrieval call binding the contract method 0xbacb386d. +// GetCrossChainBlockHash is a free data retrieval call binding the contract method 0xbdd6bc36. // -// Solidity: function getCrossChainBlockHash(uint256 number) view returns(bytes32) -func (_TaikoL2 *TaikoL2Session) GetCrossChainBlockHash(number *big.Int) ([32]byte, error) { - return _TaikoL2.Contract.GetCrossChainBlockHash(&_TaikoL2.CallOpts, number) +// Solidity: function getCrossChainBlockHash(uint64 blockId) view returns(bytes32) +func (_TaikoL2 *TaikoL2Session) GetCrossChainBlockHash(blockId uint64) ([32]byte, error) { + return _TaikoL2.Contract.GetCrossChainBlockHash(&_TaikoL2.CallOpts, blockId) } -// GetCrossChainBlockHash is a free data retrieval call binding the contract method 0xbacb386d. +// GetCrossChainBlockHash is a free data retrieval call binding the contract method 0xbdd6bc36. // -// Solidity: function getCrossChainBlockHash(uint256 number) view returns(bytes32) -func (_TaikoL2 *TaikoL2CallerSession) GetCrossChainBlockHash(number *big.Int) ([32]byte, error) { - return _TaikoL2.Contract.GetCrossChainBlockHash(&_TaikoL2.CallOpts, number) +// Solidity: function getCrossChainBlockHash(uint64 blockId) view returns(bytes32) +func (_TaikoL2 *TaikoL2CallerSession) GetCrossChainBlockHash(blockId uint64) ([32]byte, error) { + return _TaikoL2.Contract.GetCrossChainBlockHash(&_TaikoL2.CallOpts, blockId) } -// GetCrossChainSignalRoot is a free data retrieval call binding the contract method 0xb8914ce4. +// GetCrossChainSignalRoot is a free data retrieval call binding the contract method 0x0599d294. // -// Solidity: function getCrossChainSignalRoot(uint256 number) view returns(bytes32) -func (_TaikoL2 *TaikoL2Caller) GetCrossChainSignalRoot(opts *bind.CallOpts, number *big.Int) ([32]byte, error) { +// Solidity: function getCrossChainSignalRoot(uint64 blockId) view returns(bytes32) +func (_TaikoL2 *TaikoL2Caller) GetCrossChainSignalRoot(opts *bind.CallOpts, blockId uint64) ([32]byte, error) { var out []interface{} - err := _TaikoL2.contract.Call(opts, &out, "getCrossChainSignalRoot", number) + err := _TaikoL2.contract.Call(opts, &out, "getCrossChainSignalRoot", blockId) if err != nil { return *new([32]byte), err @@ -430,18 +430,18 @@ func (_TaikoL2 *TaikoL2Caller) GetCrossChainSignalRoot(opts *bind.CallOpts, numb } -// GetCrossChainSignalRoot is a free data retrieval call binding the contract method 0xb8914ce4. +// GetCrossChainSignalRoot is a free data retrieval call binding the contract method 0x0599d294. // -// Solidity: function getCrossChainSignalRoot(uint256 number) view returns(bytes32) -func (_TaikoL2 *TaikoL2Session) GetCrossChainSignalRoot(number *big.Int) ([32]byte, error) { - return _TaikoL2.Contract.GetCrossChainSignalRoot(&_TaikoL2.CallOpts, number) +// Solidity: function getCrossChainSignalRoot(uint64 blockId) view returns(bytes32) +func (_TaikoL2 *TaikoL2Session) GetCrossChainSignalRoot(blockId uint64) ([32]byte, error) { + return _TaikoL2.Contract.GetCrossChainSignalRoot(&_TaikoL2.CallOpts, blockId) } -// GetCrossChainSignalRoot is a free data retrieval call binding the contract method 0xb8914ce4. +// GetCrossChainSignalRoot is a free data retrieval call binding the contract method 0x0599d294. // -// Solidity: function getCrossChainSignalRoot(uint256 number) view returns(bytes32) -func (_TaikoL2 *TaikoL2CallerSession) GetCrossChainSignalRoot(number *big.Int) ([32]byte, error) { - return _TaikoL2.Contract.GetCrossChainSignalRoot(&_TaikoL2.CallOpts, number) +// Solidity: function getCrossChainSignalRoot(uint64 blockId) view returns(bytes32) +func (_TaikoL2 *TaikoL2CallerSession) GetCrossChainSignalRoot(blockId uint64) ([32]byte, error) { + return _TaikoL2.Contract.GetCrossChainSignalRoot(&_TaikoL2.CallOpts, blockId) } // GetEIP1559Config is a free data retrieval call binding the contract method 0x4e755573. @@ -1170,16 +1170,16 @@ func (it *TaikoL2CrossChainSyncedIterator) Close() error { // TaikoL2CrossChainSynced represents a CrossChainSynced event raised by the TaikoL2 contract. type TaikoL2CrossChainSynced struct { - SrcHeight *big.Int + SrcHeight uint64 BlockHash [32]byte SignalRoot [32]byte Raw types.Log // Blockchain specific contextual infos } -// FilterCrossChainSynced is a free log retrieval operation binding the contract event 0x7528bbd1cef0e5d13408706892a51ee8ef82bbf33d4ec0c37216f8beba71205b. +// FilterCrossChainSynced is a free log retrieval operation binding the contract event 0x004ce985b8852a486571d0545799251fd671adcf33b7854a5f0f6a6a2431a555. // -// Solidity: event CrossChainSynced(uint256 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) -func (_TaikoL2 *TaikoL2Filterer) FilterCrossChainSynced(opts *bind.FilterOpts, srcHeight []*big.Int) (*TaikoL2CrossChainSyncedIterator, error) { +// Solidity: event CrossChainSynced(uint64 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) +func (_TaikoL2 *TaikoL2Filterer) FilterCrossChainSynced(opts *bind.FilterOpts, srcHeight []uint64) (*TaikoL2CrossChainSyncedIterator, error) { var srcHeightRule []interface{} for _, srcHeightItem := range srcHeight { @@ -1193,10 +1193,10 @@ func (_TaikoL2 *TaikoL2Filterer) FilterCrossChainSynced(opts *bind.FilterOpts, s return &TaikoL2CrossChainSyncedIterator{contract: _TaikoL2.contract, event: "CrossChainSynced", logs: logs, sub: sub}, nil } -// WatchCrossChainSynced is a free log subscription operation binding the contract event 0x7528bbd1cef0e5d13408706892a51ee8ef82bbf33d4ec0c37216f8beba71205b. +// WatchCrossChainSynced is a free log subscription operation binding the contract event 0x004ce985b8852a486571d0545799251fd671adcf33b7854a5f0f6a6a2431a555. // -// Solidity: event CrossChainSynced(uint256 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) -func (_TaikoL2 *TaikoL2Filterer) WatchCrossChainSynced(opts *bind.WatchOpts, sink chan<- *TaikoL2CrossChainSynced, srcHeight []*big.Int) (event.Subscription, error) { +// Solidity: event CrossChainSynced(uint64 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) +func (_TaikoL2 *TaikoL2Filterer) WatchCrossChainSynced(opts *bind.WatchOpts, sink chan<- *TaikoL2CrossChainSynced, srcHeight []uint64) (event.Subscription, error) { var srcHeightRule []interface{} for _, srcHeightItem := range srcHeight { @@ -1235,9 +1235,9 @@ func (_TaikoL2 *TaikoL2Filterer) WatchCrossChainSynced(opts *bind.WatchOpts, sin }), nil } -// ParseCrossChainSynced is a log parse operation binding the contract event 0x7528bbd1cef0e5d13408706892a51ee8ef82bbf33d4ec0c37216f8beba71205b. +// ParseCrossChainSynced is a log parse operation binding the contract event 0x004ce985b8852a486571d0545799251fd671adcf33b7854a5f0f6a6a2431a555. // -// Solidity: event CrossChainSynced(uint256 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) +// Solidity: event CrossChainSynced(uint64 indexed srcHeight, bytes32 blockHash, bytes32 signalRoot) func (_TaikoL2 *TaikoL2Filterer) ParseCrossChainSynced(log types.Log) (*TaikoL2CrossChainSynced, error) { event := new(TaikoL2CrossChainSynced) if err := _TaikoL2.contract.UnpackLog(event, "CrossChainSynced", log); err != nil { diff --git a/packages/relayer/header_syncer.go b/packages/relayer/header_syncer.go index 73f7c51cf7..662e54abb9 100644 --- a/packages/relayer/header_syncer.go +++ b/packages/relayer/header_syncer.go @@ -1,11 +1,9 @@ package relayer import ( - "math/big" - "github.com/ethereum/go-ethereum/accounts/abi/bind" ) type HeaderSyncer interface { - GetCrossChainBlockHash(opts *bind.CallOpts, number *big.Int) ([32]byte, error) + GetCrossChainBlockHash(opts *bind.CallOpts, blockId uint64) ([32]byte, error) } diff --git a/packages/relayer/message/process_message.go b/packages/relayer/message/process_message.go index 49a53e8e34..bb52113778 100644 --- a/packages/relayer/message/process_message.go +++ b/packages/relayer/message/process_message.go @@ -43,7 +43,7 @@ func (p *Processor) ProcessMessage( // get latest synced header since not every header is synced from L1 => L2, // and later blocks still have the storage trie proof from previous blocks. - latestSyncedHeader, err := p.destHeaderSyncer.GetCrossChainBlockHash(&bind.CallOpts{}, big.NewInt(0)) + latestSyncedHeader, err := p.destHeaderSyncer.GetCrossChainBlockHash(&bind.CallOpts{}, 0) if err != nil { return errors.Wrap(err, "taiko.GetSyncedHeader") } diff --git a/packages/relayer/message/wait_header_synced.go b/packages/relayer/message/wait_header_synced.go index 1478b16092..96497bda39 100644 --- a/packages/relayer/message/wait_header_synced.go +++ b/packages/relayer/message/wait_header_synced.go @@ -3,7 +3,6 @@ package message import ( "context" "log/slog" - "math/big" "time" "github.com/ethereum/go-ethereum/accounts/abi/bind" @@ -28,7 +27,7 @@ func (p *Processor) waitHeaderSynced(ctx context.Context, event *bridge.BridgeMe ) // get latest synced header since not every header is synced from L1 => L2, // and later blocks still have the storage trie proof from previous blocks. - latestSyncedHeader, err := p.destHeaderSyncer.GetCrossChainBlockHash(&bind.CallOpts{}, big.NewInt(0)) + latestSyncedHeader, err := p.destHeaderSyncer.GetCrossChainBlockHash(&bind.CallOpts{}, 0) if err != nil { return errors.Wrap(err, "p.destHeaderSyncer.GetCrossChainBlockHash") } diff --git a/packages/relayer/mock/header_syncer.go b/packages/relayer/mock/header_syncer.go index bc837ddd9a..fe204c9b42 100644 --- a/packages/relayer/mock/header_syncer.go +++ b/packages/relayer/mock/header_syncer.go @@ -2,7 +2,6 @@ package mock import ( "errors" - "math/big" "github.com/ethereum/go-ethereum/accounts/abi/bind" ) @@ -13,7 +12,7 @@ type HeaderSyncer struct { Fail bool } -func (h *HeaderSyncer) GetCrossChainBlockHash(opts *bind.CallOpts, number *big.Int) ([32]byte, error) { +func (h *HeaderSyncer) GetCrossChainBlockHash(opts *bind.CallOpts, blockId uint64) ([32]byte, error) { if h.Fail { return [32]byte{}, errors.New("fail") }