diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a1737427..6ae9173e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -15,6 +15,20 @@ jobs: name: ETH-based Chain Test runs-on: ubuntu-latest steps: + - name: Free Disk Space (Ubuntu) + uses: jlumbroso/free-disk-space@main + with: + # this might remove tools that are actually needed, + # if set to "true" but frees about 6 GB + tool-cache: false + # all of these default to true, but feel free to set to + # "false" if necessary for your workflow + android: true + dotnet: true + haskell: true + large-packages: true + docker-images: true + swap-storage: true - name: Checkout uses: actions/checkout@v4 with: @@ -49,6 +63,20 @@ jobs: name: Non-ETH-based Chain Test runs-on: ubuntu-latest steps: + - name: Free Disk Space (Ubuntu) + uses: jlumbroso/free-disk-space@main + with: + # this might remove tools that are actually needed, + # if set to "true" but frees about 6 GB + tool-cache: false + # all of these default to true, but feel free to set to + # "false" if necessary for your workflow + android: true + dotnet: true + haskell: true + large-packages: true + docker-images: true + swap-storage: true - name: Checkout uses: actions/checkout@v4 with: diff --git a/abi/IL1AssetRouter.json b/abi/IL1AssetRouter.json new file mode 100644 index 00000000..7743049f --- /dev/null +++ b/abi/IL1AssetRouter.json @@ -0,0 +1,843 @@ +[ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "assetId", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "additionalData", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "address", + "name": "assetDeploymentTracker", + "type": "address" + } + ], + "name": "AssetDeploymentTrackerRegistered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "assetId", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "assetDeploymentTracker", + "type": "address" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "additionalData", + "type": "bytes32" + } + ], + "name": "AssetDeploymentTrackerSet", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "assetId", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "_assetHandlerAddress", + "type": "address" + } + ], + "name": "AssetHandlerRegistered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "assetId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "BridgehubDepositBaseTokenInitiated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "txDataHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "l2DepositTxHash", + "type": "bytes32" + } + ], + "name": "BridgehubDepositFinalized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "txDataHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "assetId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "bridgeMintCalldata", + "type": "bytes" + } + ], + "name": "BridgehubDepositInitiated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes", + "name": "bridgeMintData", + "type": "bytes" + } + ], + "name": "BridgehubMintData", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "assetId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "assetDataHash", + "type": "bytes32" + } + ], + "name": "BridgehubWithdrawalInitiated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "assetId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "assetData", + "type": "bytes" + } + ], + "name": "ClaimedFailedDepositAssetRouter", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "assetId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "assetData", + "type": "bytes" + } + ], + "name": "DepositFinalizedAssetRouter", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "l2DepositTxHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "l1Token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "LegacyDepositInitiated", + "type": "event" + }, + { + "inputs": [], + "name": "BRIDGE_HUB", + "outputs": [ + { + "internalType": "contract IBridgehub", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "L1_NULLIFIER", + "outputs": [ + { + "internalType": "contract IL1Nullifier", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "L1_WETH_TOKEN", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_assetId", + "type": "bytes32" + } + ], + "name": "assetHandlerAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_depositSender", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "_assetId", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "_assetData", + "type": "bytes" + } + ], + "name": "bridgeRecoverFailedTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_depositSender", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "_assetId", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "_assetData", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "_l2TxHash", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "_l2BatchNumber", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_l2MessageIndex", + "type": "uint256" + }, + { + "internalType": "uint16", + "name": "_l2TxNumberInBatch", + "type": "uint16" + }, + { + "internalType": "bytes32[]", + "name": "_merkleProof", + "type": "bytes32[]" + } + ], + "name": "bridgeRecoverFailedTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_chainId", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "_txDataHash", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "_txHash", + "type": "bytes32" + } + ], + "name": "bridgehubConfirmL2Transaction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_originalCaller", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "name": "bridgehubDeposit", + "outputs": [ + { + "components": [ + { + "internalType": "bytes32", + "name": "magicValue", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "l2Contract", + "type": "address" + }, + { + "internalType": "bytes", + "name": "l2Calldata", + "type": "bytes" + }, + { + "internalType": "bytes[]", + "name": "factoryDeps", + "type": "bytes[]" + }, + { + "internalType": "bytes32", + "name": "txDataHash", + "type": "bytes32" + } + ], + "internalType": "struct L2TransactionRequestTwoBridgesInner", + "name": "request", + "type": "tuple" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_chainId", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "_assetId", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "_originalCaller", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "bridgehubDepositBaseToken", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_originalCaller", + "type": "address" + }, + { + "internalType": "address", + "name": "_l2Receiver", + "type": "address" + }, + { + "internalType": "address", + "name": "_l1Token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_l2TxGasLimit", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_l2TxGasPerPubdataByte", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_refundRecipient", + "type": "address" + } + ], + "name": "depositLegacyErc20Bridge", + "outputs": [ + { + "internalType": "bytes32", + "name": "txHash", + "type": "bytes32" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_chainId", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "_assetId", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "_transferData", + "type": "bytes" + } + ], + "name": "finalizeDeposit", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_chainId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_l2BatchNumber", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_l2MessageIndex", + "type": "uint256" + }, + { + "internalType": "uint16", + "name": "_l2TxNumberInBatch", + "type": "uint16" + }, + { + "internalType": "bytes", + "name": "_message", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "_merkleProof", + "type": "bytes32[]" + } + ], + "name": "finalizeWithdrawal", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_sender", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "_assetId", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "_assetData", + "type": "bytes" + } + ], + "name": "getDepositCalldata", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_chainId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_l2BatchNumber", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_l2MessageIndex", + "type": "uint256" + } + ], + "name": "isWithdrawalFinalized", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_chainId", + "type": "uint256" + } + ], + "name": "l2BridgeAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "nativeTokenVault", + "outputs": [ + { + "internalType": "contract INativeTokenVault", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_assetRegistrationData", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "_assetDeploymentTracker", + "type": "address" + } + ], + "name": "setAssetDeploymentTracker", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_assetRegistrationData", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "_assetHandlerAddress", + "type": "address" + } + ], + "name": "setAssetHandlerAddressThisChain", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IL1ERC20Bridge", + "name": "_legacyBridge", + "type": "address" + } + ], + "name": "setL1Erc20Bridge", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract INativeTokenVault", + "name": "_nativeTokenVault", + "type": "address" + } + ], + "name": "setNativeTokenVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_assetId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_originalCaller", + "type": "address" + } + ], + "name": "transferFundsToNTV", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } +] diff --git a/abi/IL1Nullifier.json b/abi/IL1Nullifier.json new file mode 100644 index 00000000..dce6cb5c --- /dev/null +++ b/abi/IL1Nullifier.json @@ -0,0 +1,484 @@ +[ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "txDataHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "l2DepositTxHash", + "type": "bytes32" + } + ], + "name": "BridgehubDepositFinalized", + "type": "event" + }, + { + "inputs": [], + "name": "BRIDGE_HUB", + "outputs": [ + { + "internalType": "contract IBridgehub", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_depositSender", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "_assetId", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "_assetData", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "_l2TxHash", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "_l2BatchNumber", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_l2MessageIndex", + "type": "uint256" + }, + { + "internalType": "uint16", + "name": "_l2TxNumberInBatch", + "type": "uint16" + }, + { + "internalType": "bytes32[]", + "name": "_merkleProof", + "type": "bytes32[]" + } + ], + "name": "bridgeRecoverFailedTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_chainId", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "_txDataHash", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "_txHash", + "type": "bytes32" + } + ], + "name": "bridgehubConfirmL2TransactionForwarded", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_token", + "type": "address" + } + ], + "name": "chainBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_depositSender", + "type": "address" + }, + { + "internalType": "address", + "name": "_l1Token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "_l2TxHash", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "_l2BatchNumber", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_l2MessageIndex", + "type": "uint256" + }, + { + "internalType": "uint16", + "name": "_l2TxNumberInBatch", + "type": "uint16" + }, + { + "internalType": "bytes32[]", + "name": "_merkleProof", + "type": "bytes32[]" + } + ], + "name": "claimFailedDeposit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_depositSender", + "type": "address" + }, + { + "internalType": "address", + "name": "_l1Token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "_l2TxHash", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "_l2BatchNumber", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_l2MessageIndex", + "type": "uint256" + }, + { + "internalType": "uint16", + "name": "_l2TxNumberInBatch", + "type": "uint16" + }, + { + "internalType": "bytes32[]", + "name": "_merkleProof", + "type": "bytes32[]" + } + ], + "name": "claimFailedDepositLegacyErc20Bridge", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_chainId", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "_l2TxHash", + "type": "bytes32" + } + ], + "name": "depositHappened", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "l2BatchNumber", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "l2MessageIndex", + "type": "uint256" + }, + { + "internalType": "address", + "name": "l2Sender", + "type": "address" + }, + { + "internalType": "uint16", + "name": "l2TxNumberInBatch", + "type": "uint16" + }, + { + "internalType": "bytes", + "name": "message", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "merkleProof", + "type": "bytes32[]" + } + ], + "internalType": "struct FinalizeL1DepositParams", + "name": "_finalizeWithdrawalParams", + "type": "tuple" + } + ], + "name": "finalizeDeposit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_chainId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_l2BatchNumber", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_l2MessageIndex", + "type": "uint256" + }, + { + "internalType": "uint16", + "name": "_l2TxNumberInBatch", + "type": "uint16" + }, + { + "internalType": "bytes", + "name": "_message", + "type": "bytes" + }, + { + "internalType": "bytes32[]", + "name": "_merkleProof", + "type": "bytes32[]" + } + ], + "name": "finalizeWithdrawal", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_chainId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_l2BatchNumber", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_l2MessageIndex", + "type": "uint256" + } + ], + "name": "isWithdrawalFinalized", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "l1NativeTokenVault", + "outputs": [ + { + "internalType": "contract IL1NativeTokenVault", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_chainId", + "type": "uint256" + } + ], + "name": "l2BridgeAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "legacyBridge", + "outputs": [ + { + "internalType": "contract IL1ERC20Bridge", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_token", + "type": "address" + } + ], + "name": "nullifyChainBalanceByNTV", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_l1AssetRouter", + "type": "address" + } + ], + "name": "setL1AssetRouter", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IL1NativeTokenVault", + "name": "_nativeTokenVault", + "type": "address" + } + ], + "name": "setL1NativeTokenVault", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_token", + "type": "address" + } + ], + "name": "transferTokenToNTV", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } +] diff --git a/abi/IL2AssetRouter.json b/abi/IL2AssetRouter.json new file mode 100644 index 00000000..e3d0df62 --- /dev/null +++ b/abi/IL2AssetRouter.json @@ -0,0 +1,408 @@ +[ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "assetId", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "additionalData", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "address", + "name": "assetDeploymentTracker", + "type": "address" + } + ], + "name": "AssetDeploymentTrackerRegistered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "assetId", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "_assetHandlerAddress", + "type": "address" + } + ], + "name": "AssetHandlerRegistered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "assetId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "BridgehubDepositBaseTokenInitiated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "txDataHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "assetId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "bridgeMintCalldata", + "type": "bytes" + } + ], + "name": "BridgehubDepositInitiated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "assetId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "assetDataHash", + "type": "bytes32" + } + ], + "name": "BridgehubWithdrawalInitiated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "assetId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "assetData", + "type": "bytes" + } + ], + "name": "DepositFinalizedAssetRouter", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "address", + "name": "l2Sender", + "type": "address" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "assetId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "assetData", + "type": "bytes" + } + ], + "name": "WithdrawalInitiatedAssetRouter", + "type": "event" + }, + { + "inputs": [], + "name": "BRIDGE_HUB", + "outputs": [ + { + "internalType": "contract IBridgehub", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "L1_ASSET_ROUTER", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_assetId", + "type": "bytes32" + } + ], + "name": "assetHandlerAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_chainId", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "_assetId", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "_transferData", + "type": "bytes" + } + ], + "name": "finalizeDeposit", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_l1Sender", + "type": "address" + }, + { + "internalType": "address", + "name": "_l2Receiver", + "type": "address" + }, + { + "internalType": "address", + "name": "_l1Token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "name": "finalizeDepositLegacyBridge", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_originChainId", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "_assetId", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "_assetHandlerAddress", + "type": "address" + } + ], + "name": "setAssetHandlerAddress", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_assetRegistrationData", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "_assetHandlerAddress", + "type": "address" + } + ], + "name": "setAssetHandlerAddressThisChain", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_assetId", + "type": "bytes32" + } + ], + "name": "setLegacyTokenAssetHandler", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_assetId", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "_transferData", + "type": "bytes" + } + ], + "name": "withdraw", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_l1Receiver", + "type": "address" + }, + { + "internalType": "address", + "name": "_l2Token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_sender", + "type": "address" + } + ], + "name": "withdrawLegacyBridge", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } +] diff --git a/src/adapters.ts b/src/adapters.ts index 33abc2fe..0b67a62f 100644 --- a/src/adapters.ts +++ b/src/adapters.ts @@ -7,10 +7,7 @@ import {Il2Bridge as IL2Bridge} from './typechain/Il2Bridge'; import {IBridgehubFactory} from './typechain/IBridgehubFactory'; import {IBridgehub} from './typechain/IBridgehub'; import {Il1SharedBridge as IL1SharedBridge} from './typechain/Il1SharedBridge'; -import { - Il1SharedBridgeFactory, - Il1SharedBridgeFactory as IL1SharedBridgeFactory, -} from './typechain/Il1SharedBridgeFactory'; +import {Il1SharedBridgeFactory as IL1SharedBridgeFactory} from './typechain/Il1SharedBridgeFactory'; import {INonceHolderFactory} from './typechain/INonceHolderFactory'; import {IZkSyncHyperchainFactory} from './typechain/IZkSyncHyperchainFactory'; import {IZkSyncHyperchain} from './typechain/IZkSyncHyperchain'; @@ -25,6 +22,7 @@ import { PriorityOpResponse, TransactionResponse, PaymasterParams, + FinalizeL1DepositParams, } from './types'; import { BOOTLOADER_FORMAL_ADDRESS, @@ -45,13 +43,14 @@ import { scaleGasLimit, undoL1ToL2Alias, isAddressEq, - L2_BASE_TOKEN_ADDRESS, + L2_ASSET_ROUTER_ADDRESS, } from './utils'; import {Il2SharedBridgeFactory} from './typechain/Il2SharedBridgeFactory'; import {Il2SharedBridge} from './typechain/Il2SharedBridge'; -import {Il1SharedBridge} from './typechain/Il1SharedBridge'; -import {Il1Bridge} from './typechain/Il1Bridge'; -import {Il1BridgeFactory} from './typechain/Il1BridgeFactory'; +import {Il1Nullifier} from './typechain/Il1Nullifier'; +import {Il1NullifierFactory} from './typechain/Il1NullifierFactory'; +import {Il1AssetRouter} from './typechain/Il1AssetRouter'; +import {Il1AssetRouterFactory} from './typechain/Il1AssetRouterFactory'; type Constructor = new (...args: any[]) => T; @@ -128,6 +127,26 @@ export function AdapterL1>(Base: TBase) { }; } + /** + * Returns the L1 asset router contract, used for handling cross chain calls. + */ + getL1AssetRouter(address: string): Il1AssetRouter { + return Il1AssetRouterFactory.connect(address, this._signerL1()); + } + + /** + * Returns the L1 Nullifier contract, used for replay protection for failed deposits and withdrawals. + */ + async getL1Nullifier(): Promise { + const assetRouter = this._providerL2().connectL2AssetRouter(); + const l1AssetRouter = this.getL1AssetRouter( + await assetRouter.L1_ASSET_ROUTER() + ); + const l1Nullifier = await l1AssetRouter.L1_NULLIFIER(); + + return Il1NullifierFactory.connect(l1Nullifier, this._signerL1()); + } + /** * Returns the address of the base token on L1. */ @@ -1421,41 +1440,27 @@ export function AdapterL1>(Base: TBase) { index = 0, overrides?: ethers.Overrides ): Promise { - const { - l1BatchNumber, - l2MessageIndex, - l2TxNumberInBlock, - message, - sender, - proof, - } = await this.finalizeWithdrawalParams(withdrawalHash, index); + const finalizeWithdrawalParams = await this.finalizeWithdrawalParams( + withdrawalHash, + index + ); - let l1Bridge: Il1SharedBridge | Il1Bridge; - if (isAddressEq(sender, L2_BASE_TOKEN_ADDRESS)) { - l1Bridge = (await this.getL1BridgeContracts()).shared; - } else if (!(await this._providerL2().isL2BridgeLegacy(sender))) { - const l2Bridge = Il2SharedBridgeFactory.connect( - sender, - this._providerL2() - ); - const bridgeAddress = await l2Bridge.l1SharedBridge(); - l1Bridge = Il1SharedBridgeFactory.connect( - bridgeAddress, - this._signerL1() - ); - } else { - const l2Bridge = IL2BridgeFactory.connect(sender, this._providerL2()); - const bridgeAddress = await l2Bridge.l1Bridge(); - l1Bridge = Il1BridgeFactory.connect(bridgeAddress, this._signerL1()); - } + const l1Nullifier = await this.getL1Nullifier(); + + const finalizeL1DepositParams: FinalizeL1DepositParams = { + chainId: (await this._providerL2().getNetwork()) + .chainId as BigNumberish, + l2BatchNumber: finalizeWithdrawalParams.l1BatchNumber as BigNumberish, + l2MessageIndex: finalizeWithdrawalParams.l2MessageIndex as BigNumberish, + l2Sender: finalizeWithdrawalParams.sender, + l2TxNumberInBatch: + finalizeWithdrawalParams.l2TxNumberInBlock as BigNumberish, + message: finalizeWithdrawalParams.message, + merkleProof: finalizeWithdrawalParams.proof, + }; - return await l1Bridge.finalizeWithdrawal( - (await this._providerL2().getNetwork()).chainId, - l1BatchNumber!, - l2MessageIndex, - l2TxNumberInBlock!, - message, - proof, + return await l1Nullifier.finalizeDeposit( + finalizeL1DepositParams, overrides ?? {} ); } @@ -1501,7 +1506,9 @@ export function AdapterL1>(Base: TBase) { this._providerL2() ); l1Bridge = IL1SharedBridgeFactory.connect( - await l2Bridge.l1SharedBridge(), + sender === L2_ASSET_ROUTER_ADDRESS + ? await l2Bridge.l1Bridge() + : await l2Bridge.l1SharedBridge(), this._providerL1() ); } diff --git a/src/provider.ts b/src/provider.ts index bf17be2b..7c4e8fc8 100644 --- a/src/provider.ts +++ b/src/provider.ts @@ -12,6 +12,8 @@ import {ConnectionInfo, poll} from '@ethersproject/web'; import {Ierc20Factory as IERC20Factory} from './typechain/Ierc20Factory'; import {IEthTokenFactory} from './typechain/IEthTokenFactory'; import {Il2BridgeFactory as IL2BridgeFactory} from './typechain/Il2BridgeFactory'; +import {Il2AssetRouter} from './typechain/Il2AssetRouter'; +import {Il2AssetRouterFactory as IL2AssetRouterFactory} from './typechain/Il2AssetRouterFactory'; import { Address, BalancesMap, @@ -56,6 +58,7 @@ import { REQUIRED_L1_TO_L2_GAS_PER_PUBDATA_LIMIT, sleep, isAddressEq, + L2_ASSET_ROUTER_ADDRESS, } from './utils'; import {Signer} from './signer'; import Formatter = providers.Formatter; @@ -1071,6 +1074,10 @@ export class Provider extends ethers.providers.JsonRpcProvider { return Il2SharedBridgeFactory.connect(address, this); } + connectL2AssetRouter(): Il2AssetRouter { + return IL2AssetRouterFactory.connect(L2_ASSET_ROUTER_ADDRESS, this); + } + /** * Returns true if passed bridge address is legacy and false if its shared bridge. ** diff --git a/src/typechain/Il1AssetRouter.d.ts b/src/typechain/Il1AssetRouter.d.ts new file mode 100644 index 00000000..5be5a78b --- /dev/null +++ b/src/typechain/Il1AssetRouter.d.ts @@ -0,0 +1,1630 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, +} from "ethers"; +import { + Contract, + ContractTransaction, + Overrides, + PayableOverrides, + CallOverrides, +} from "@ethersproject/contracts"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; + +interface Il1AssetRouterInterface extends ethers.utils.Interface { + functions: { + "BRIDGE_HUB()": FunctionFragment; + "L1_NULLIFIER()": FunctionFragment; + "L1_WETH_TOKEN()": FunctionFragment; + "assetHandlerAddress(bytes32)": FunctionFragment; + "bridgeRecoverFailedTransfer(uint256,address,bytes32,bytes)": FunctionFragment; + "bridgehubConfirmL2Transaction(uint256,bytes32,bytes32)": FunctionFragment; + "bridgehubDeposit(uint256,address,uint256,bytes)": FunctionFragment; + "bridgehubDepositBaseToken(uint256,bytes32,address,uint256)": FunctionFragment; + "depositLegacyErc20Bridge(address,address,address,uint256,uint256,uint256,address)": FunctionFragment; + "finalizeDeposit(uint256,bytes32,bytes)": FunctionFragment; + "finalizeWithdrawal(uint256,uint256,uint256,uint16,bytes,bytes32[])": FunctionFragment; + "getDepositCalldata(address,bytes32,bytes)": FunctionFragment; + "isWithdrawalFinalized(uint256,uint256,uint256)": FunctionFragment; + "l2BridgeAddress(uint256)": FunctionFragment; + "nativeTokenVault()": FunctionFragment; + "setAssetDeploymentTracker(bytes32,address)": FunctionFragment; + "setAssetHandlerAddressThisChain(bytes32,address)": FunctionFragment; + "setL1Erc20Bridge(address)": FunctionFragment; + "setNativeTokenVault(address)": FunctionFragment; + "transferFundsToNTV(bytes32,uint256,address)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "BRIDGE_HUB", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "L1_NULLIFIER", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "L1_WETH_TOKEN", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "assetHandlerAddress", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "bridgeRecoverFailedTransfer", + values: [BigNumberish, string, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "bridgehubConfirmL2Transaction", + values: [BigNumberish, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "bridgehubDeposit", + values: [BigNumberish, string, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "bridgehubDepositBaseToken", + values: [BigNumberish, BytesLike, string, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "depositLegacyErc20Bridge", + values: [ + string, + string, + string, + BigNumberish, + BigNumberish, + BigNumberish, + string + ] + ): string; + encodeFunctionData( + functionFragment: "finalizeDeposit", + values: [BigNumberish, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "finalizeWithdrawal", + values: [ + BigNumberish, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike[] + ] + ): string; + encodeFunctionData( + functionFragment: "getDepositCalldata", + values: [string, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "isWithdrawalFinalized", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "l2BridgeAddress", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "nativeTokenVault", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "setAssetDeploymentTracker", + values: [BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "setAssetHandlerAddressThisChain", + values: [BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "setL1Erc20Bridge", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "setNativeTokenVault", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "transferFundsToNTV", + values: [BytesLike, BigNumberish, string] + ): string; + + decodeFunctionResult(functionFragment: "BRIDGE_HUB", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "L1_NULLIFIER", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "L1_WETH_TOKEN", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assetHandlerAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "bridgeRecoverFailedTransfer", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "bridgehubConfirmL2Transaction", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "bridgehubDeposit", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "bridgehubDepositBaseToken", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "depositLegacyErc20Bridge", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "finalizeDeposit", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "finalizeWithdrawal", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getDepositCalldata", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "isWithdrawalFinalized", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "l2BridgeAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "nativeTokenVault", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setAssetDeploymentTracker", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setAssetHandlerAddressThisChain", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setL1Erc20Bridge", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setNativeTokenVault", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferFundsToNTV", + data: BytesLike + ): Result; + + events: { + "AssetDeploymentTrackerRegistered(bytes32,bytes32,address)": EventFragment; + "AssetDeploymentTrackerSet(bytes32,address,bytes32)": EventFragment; + "AssetHandlerRegistered(bytes32,address)": EventFragment; + "BridgehubDepositBaseTokenInitiated(uint256,address,bytes32,uint256)": EventFragment; + "BridgehubDepositFinalized(uint256,bytes32,bytes32)": EventFragment; + "BridgehubDepositInitiated(uint256,bytes32,address,bytes32,bytes)": EventFragment; + "BridgehubMintData(bytes)": EventFragment; + "BridgehubWithdrawalInitiated(uint256,address,bytes32,bytes32)": EventFragment; + "ClaimedFailedDepositAssetRouter(uint256,bytes32,bytes)": EventFragment; + "DepositFinalizedAssetRouter(uint256,bytes32,bytes)": EventFragment; + "LegacyDepositInitiated(uint256,bytes32,address,address,address,uint256)": EventFragment; + }; + + getEvent( + nameOrSignatureOrTopic: "AssetDeploymentTrackerRegistered" + ): EventFragment; + getEvent(nameOrSignatureOrTopic: "AssetDeploymentTrackerSet"): EventFragment; + getEvent(nameOrSignatureOrTopic: "AssetHandlerRegistered"): EventFragment; + getEvent( + nameOrSignatureOrTopic: "BridgehubDepositBaseTokenInitiated" + ): EventFragment; + getEvent(nameOrSignatureOrTopic: "BridgehubDepositFinalized"): EventFragment; + getEvent(nameOrSignatureOrTopic: "BridgehubDepositInitiated"): EventFragment; + getEvent(nameOrSignatureOrTopic: "BridgehubMintData"): EventFragment; + getEvent( + nameOrSignatureOrTopic: "BridgehubWithdrawalInitiated" + ): EventFragment; + getEvent( + nameOrSignatureOrTopic: "ClaimedFailedDepositAssetRouter" + ): EventFragment; + getEvent( + nameOrSignatureOrTopic: "DepositFinalizedAssetRouter" + ): EventFragment; + getEvent(nameOrSignatureOrTopic: "LegacyDepositInitiated"): EventFragment; +} + +export class Il1AssetRouter extends Contract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): this; + once(event: EventFilter | string, listener: Listener): this; + addListener(eventName: EventFilter | string, listener: Listener): this; + removeAllListeners(eventName: EventFilter | string): this; + removeListener(eventName: any, listener: Listener): this; + + interface: Il1AssetRouterInterface; + + functions: { + BRIDGE_HUB(overrides?: CallOverrides): Promise<{ + 0: string; + }>; + + "BRIDGE_HUB()"(overrides?: CallOverrides): Promise<{ + 0: string; + }>; + + L1_NULLIFIER(overrides?: CallOverrides): Promise<{ + 0: string; + }>; + + "L1_NULLIFIER()"(overrides?: CallOverrides): Promise<{ + 0: string; + }>; + + L1_WETH_TOKEN(overrides?: CallOverrides): Promise<{ + 0: string; + }>; + + "L1_WETH_TOKEN()"(overrides?: CallOverrides): Promise<{ + 0: string; + }>; + + assetHandlerAddress( + _assetId: BytesLike, + overrides?: CallOverrides + ): Promise<{ + 0: string; + }>; + + "assetHandlerAddress(bytes32)"( + _assetId: BytesLike, + overrides?: CallOverrides + ): Promise<{ + 0: string; + }>; + + "bridgeRecoverFailedTransfer(uint256,address,bytes32,bytes)"( + _chainId: BigNumberish, + _depositSender: string, + _assetId: BytesLike, + _assetData: BytesLike, + overrides?: Overrides + ): Promise; + + "bridgeRecoverFailedTransfer(uint256,address,bytes32,bytes,bytes32,uint256,uint256,uint16,bytes32[])"( + _chainId: BigNumberish, + _depositSender: string, + _assetId: BytesLike, + _assetData: BytesLike, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + bridgehubConfirmL2Transaction( + _chainId: BigNumberish, + _txDataHash: BytesLike, + _txHash: BytesLike, + overrides?: Overrides + ): Promise; + + "bridgehubConfirmL2Transaction(uint256,bytes32,bytes32)"( + _chainId: BigNumberish, + _txDataHash: BytesLike, + _txHash: BytesLike, + overrides?: Overrides + ): Promise; + + bridgehubDeposit( + _chainId: BigNumberish, + _originalCaller: string, + _value: BigNumberish, + _data: BytesLike, + overrides?: PayableOverrides + ): Promise; + + "bridgehubDeposit(uint256,address,uint256,bytes)"( + _chainId: BigNumberish, + _originalCaller: string, + _value: BigNumberish, + _data: BytesLike, + overrides?: PayableOverrides + ): Promise; + + bridgehubDepositBaseToken( + _chainId: BigNumberish, + _assetId: BytesLike, + _originalCaller: string, + _amount: BigNumberish, + overrides?: PayableOverrides + ): Promise; + + "bridgehubDepositBaseToken(uint256,bytes32,address,uint256)"( + _chainId: BigNumberish, + _assetId: BytesLike, + _originalCaller: string, + _amount: BigNumberish, + overrides?: PayableOverrides + ): Promise; + + depositLegacyErc20Bridge( + _originalCaller: string, + _l2Receiver: string, + _l1Token: string, + _amount: BigNumberish, + _l2TxGasLimit: BigNumberish, + _l2TxGasPerPubdataByte: BigNumberish, + _refundRecipient: string, + overrides?: PayableOverrides + ): Promise; + + "depositLegacyErc20Bridge(address,address,address,uint256,uint256,uint256,address)"( + _originalCaller: string, + _l2Receiver: string, + _l1Token: string, + _amount: BigNumberish, + _l2TxGasLimit: BigNumberish, + _l2TxGasPerPubdataByte: BigNumberish, + _refundRecipient: string, + overrides?: PayableOverrides + ): Promise; + + finalizeDeposit( + _chainId: BigNumberish, + _assetId: BytesLike, + _transferData: BytesLike, + overrides?: PayableOverrides + ): Promise; + + "finalizeDeposit(uint256,bytes32,bytes)"( + _chainId: BigNumberish, + _assetId: BytesLike, + _transferData: BytesLike, + overrides?: PayableOverrides + ): Promise; + + finalizeWithdrawal( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _message: BytesLike, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + "finalizeWithdrawal(uint256,uint256,uint256,uint16,bytes,bytes32[])"( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _message: BytesLike, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + getDepositCalldata( + _sender: string, + _assetId: BytesLike, + _assetData: BytesLike, + overrides?: CallOverrides + ): Promise<{ + 0: string; + }>; + + "getDepositCalldata(address,bytes32,bytes)"( + _sender: string, + _assetId: BytesLike, + _assetData: BytesLike, + overrides?: CallOverrides + ): Promise<{ + 0: string; + }>; + + isWithdrawalFinalized( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + overrides?: CallOverrides + ): Promise<{ + 0: boolean; + }>; + + "isWithdrawalFinalized(uint256,uint256,uint256)"( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + overrides?: CallOverrides + ): Promise<{ + 0: boolean; + }>; + + l2BridgeAddress( + _chainId: BigNumberish, + overrides?: CallOverrides + ): Promise<{ + 0: string; + }>; + + "l2BridgeAddress(uint256)"( + _chainId: BigNumberish, + overrides?: CallOverrides + ): Promise<{ + 0: string; + }>; + + nativeTokenVault(overrides?: CallOverrides): Promise<{ + 0: string; + }>; + + "nativeTokenVault()"(overrides?: CallOverrides): Promise<{ + 0: string; + }>; + + setAssetDeploymentTracker( + _assetRegistrationData: BytesLike, + _assetDeploymentTracker: string, + overrides?: Overrides + ): Promise; + + "setAssetDeploymentTracker(bytes32,address)"( + _assetRegistrationData: BytesLike, + _assetDeploymentTracker: string, + overrides?: Overrides + ): Promise; + + setAssetHandlerAddressThisChain( + _assetRegistrationData: BytesLike, + _assetHandlerAddress: string, + overrides?: Overrides + ): Promise; + + "setAssetHandlerAddressThisChain(bytes32,address)"( + _assetRegistrationData: BytesLike, + _assetHandlerAddress: string, + overrides?: Overrides + ): Promise; + + setL1Erc20Bridge( + _legacyBridge: string, + overrides?: Overrides + ): Promise; + + "setL1Erc20Bridge(address)"( + _legacyBridge: string, + overrides?: Overrides + ): Promise; + + setNativeTokenVault( + _nativeTokenVault: string, + overrides?: Overrides + ): Promise; + + "setNativeTokenVault(address)"( + _nativeTokenVault: string, + overrides?: Overrides + ): Promise; + + transferFundsToNTV( + _assetId: BytesLike, + _amount: BigNumberish, + _originalCaller: string, + overrides?: Overrides + ): Promise; + + "transferFundsToNTV(bytes32,uint256,address)"( + _assetId: BytesLike, + _amount: BigNumberish, + _originalCaller: string, + overrides?: Overrides + ): Promise; + }; + + BRIDGE_HUB(overrides?: CallOverrides): Promise; + + "BRIDGE_HUB()"(overrides?: CallOverrides): Promise; + + L1_NULLIFIER(overrides?: CallOverrides): Promise; + + "L1_NULLIFIER()"(overrides?: CallOverrides): Promise; + + L1_WETH_TOKEN(overrides?: CallOverrides): Promise; + + "L1_WETH_TOKEN()"(overrides?: CallOverrides): Promise; + + assetHandlerAddress( + _assetId: BytesLike, + overrides?: CallOverrides + ): Promise; + + "assetHandlerAddress(bytes32)"( + _assetId: BytesLike, + overrides?: CallOverrides + ): Promise; + + "bridgeRecoverFailedTransfer(uint256,address,bytes32,bytes)"( + _chainId: BigNumberish, + _depositSender: string, + _assetId: BytesLike, + _assetData: BytesLike, + overrides?: Overrides + ): Promise; + + "bridgeRecoverFailedTransfer(uint256,address,bytes32,bytes,bytes32,uint256,uint256,uint16,bytes32[])"( + _chainId: BigNumberish, + _depositSender: string, + _assetId: BytesLike, + _assetData: BytesLike, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + bridgehubConfirmL2Transaction( + _chainId: BigNumberish, + _txDataHash: BytesLike, + _txHash: BytesLike, + overrides?: Overrides + ): Promise; + + "bridgehubConfirmL2Transaction(uint256,bytes32,bytes32)"( + _chainId: BigNumberish, + _txDataHash: BytesLike, + _txHash: BytesLike, + overrides?: Overrides + ): Promise; + + bridgehubDeposit( + _chainId: BigNumberish, + _originalCaller: string, + _value: BigNumberish, + _data: BytesLike, + overrides?: PayableOverrides + ): Promise; + + "bridgehubDeposit(uint256,address,uint256,bytes)"( + _chainId: BigNumberish, + _originalCaller: string, + _value: BigNumberish, + _data: BytesLike, + overrides?: PayableOverrides + ): Promise; + + bridgehubDepositBaseToken( + _chainId: BigNumberish, + _assetId: BytesLike, + _originalCaller: string, + _amount: BigNumberish, + overrides?: PayableOverrides + ): Promise; + + "bridgehubDepositBaseToken(uint256,bytes32,address,uint256)"( + _chainId: BigNumberish, + _assetId: BytesLike, + _originalCaller: string, + _amount: BigNumberish, + overrides?: PayableOverrides + ): Promise; + + depositLegacyErc20Bridge( + _originalCaller: string, + _l2Receiver: string, + _l1Token: string, + _amount: BigNumberish, + _l2TxGasLimit: BigNumberish, + _l2TxGasPerPubdataByte: BigNumberish, + _refundRecipient: string, + overrides?: PayableOverrides + ): Promise; + + "depositLegacyErc20Bridge(address,address,address,uint256,uint256,uint256,address)"( + _originalCaller: string, + _l2Receiver: string, + _l1Token: string, + _amount: BigNumberish, + _l2TxGasLimit: BigNumberish, + _l2TxGasPerPubdataByte: BigNumberish, + _refundRecipient: string, + overrides?: PayableOverrides + ): Promise; + + finalizeDeposit( + _chainId: BigNumberish, + _assetId: BytesLike, + _transferData: BytesLike, + overrides?: PayableOverrides + ): Promise; + + "finalizeDeposit(uint256,bytes32,bytes)"( + _chainId: BigNumberish, + _assetId: BytesLike, + _transferData: BytesLike, + overrides?: PayableOverrides + ): Promise; + + finalizeWithdrawal( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _message: BytesLike, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + "finalizeWithdrawal(uint256,uint256,uint256,uint16,bytes,bytes32[])"( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _message: BytesLike, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + getDepositCalldata( + _sender: string, + _assetId: BytesLike, + _assetData: BytesLike, + overrides?: CallOverrides + ): Promise; + + "getDepositCalldata(address,bytes32,bytes)"( + _sender: string, + _assetId: BytesLike, + _assetData: BytesLike, + overrides?: CallOverrides + ): Promise; + + isWithdrawalFinalized( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "isWithdrawalFinalized(uint256,uint256,uint256)"( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + overrides?: CallOverrides + ): Promise; + + l2BridgeAddress( + _chainId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "l2BridgeAddress(uint256)"( + _chainId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + nativeTokenVault(overrides?: CallOverrides): Promise; + + "nativeTokenVault()"(overrides?: CallOverrides): Promise; + + setAssetDeploymentTracker( + _assetRegistrationData: BytesLike, + _assetDeploymentTracker: string, + overrides?: Overrides + ): Promise; + + "setAssetDeploymentTracker(bytes32,address)"( + _assetRegistrationData: BytesLike, + _assetDeploymentTracker: string, + overrides?: Overrides + ): Promise; + + setAssetHandlerAddressThisChain( + _assetRegistrationData: BytesLike, + _assetHandlerAddress: string, + overrides?: Overrides + ): Promise; + + "setAssetHandlerAddressThisChain(bytes32,address)"( + _assetRegistrationData: BytesLike, + _assetHandlerAddress: string, + overrides?: Overrides + ): Promise; + + setL1Erc20Bridge( + _legacyBridge: string, + overrides?: Overrides + ): Promise; + + "setL1Erc20Bridge(address)"( + _legacyBridge: string, + overrides?: Overrides + ): Promise; + + setNativeTokenVault( + _nativeTokenVault: string, + overrides?: Overrides + ): Promise; + + "setNativeTokenVault(address)"( + _nativeTokenVault: string, + overrides?: Overrides + ): Promise; + + transferFundsToNTV( + _assetId: BytesLike, + _amount: BigNumberish, + _originalCaller: string, + overrides?: Overrides + ): Promise; + + "transferFundsToNTV(bytes32,uint256,address)"( + _assetId: BytesLike, + _amount: BigNumberish, + _originalCaller: string, + overrides?: Overrides + ): Promise; + + callStatic: { + BRIDGE_HUB(overrides?: CallOverrides): Promise; + + "BRIDGE_HUB()"(overrides?: CallOverrides): Promise; + + L1_NULLIFIER(overrides?: CallOverrides): Promise; + + "L1_NULLIFIER()"(overrides?: CallOverrides): Promise; + + L1_WETH_TOKEN(overrides?: CallOverrides): Promise; + + "L1_WETH_TOKEN()"(overrides?: CallOverrides): Promise; + + assetHandlerAddress( + _assetId: BytesLike, + overrides?: CallOverrides + ): Promise; + + "assetHandlerAddress(bytes32)"( + _assetId: BytesLike, + overrides?: CallOverrides + ): Promise; + + "bridgeRecoverFailedTransfer(uint256,address,bytes32,bytes)"( + _chainId: BigNumberish, + _depositSender: string, + _assetId: BytesLike, + _assetData: BytesLike, + overrides?: CallOverrides + ): Promise; + + "bridgeRecoverFailedTransfer(uint256,address,bytes32,bytes,bytes32,uint256,uint256,uint16,bytes32[])"( + _chainId: BigNumberish, + _depositSender: string, + _assetId: BytesLike, + _assetData: BytesLike, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: CallOverrides + ): Promise; + + bridgehubConfirmL2Transaction( + _chainId: BigNumberish, + _txDataHash: BytesLike, + _txHash: BytesLike, + overrides?: CallOverrides + ): Promise; + + "bridgehubConfirmL2Transaction(uint256,bytes32,bytes32)"( + _chainId: BigNumberish, + _txDataHash: BytesLike, + _txHash: BytesLike, + overrides?: CallOverrides + ): Promise; + + bridgehubDeposit( + _chainId: BigNumberish, + _originalCaller: string, + _value: BigNumberish, + _data: BytesLike, + overrides?: CallOverrides + ): Promise<{ + magicValue: string; + l2Contract: string; + l2Calldata: string; + factoryDeps: string[]; + txDataHash: string; + 0: string; + 1: string; + 2: string; + 3: string[]; + 4: string; + }>; + + "bridgehubDeposit(uint256,address,uint256,bytes)"( + _chainId: BigNumberish, + _originalCaller: string, + _value: BigNumberish, + _data: BytesLike, + overrides?: CallOverrides + ): Promise<{ + magicValue: string; + l2Contract: string; + l2Calldata: string; + factoryDeps: string[]; + txDataHash: string; + 0: string; + 1: string; + 2: string; + 3: string[]; + 4: string; + }>; + + bridgehubDepositBaseToken( + _chainId: BigNumberish, + _assetId: BytesLike, + _originalCaller: string, + _amount: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "bridgehubDepositBaseToken(uint256,bytes32,address,uint256)"( + _chainId: BigNumberish, + _assetId: BytesLike, + _originalCaller: string, + _amount: BigNumberish, + overrides?: CallOverrides + ): Promise; + + depositLegacyErc20Bridge( + _originalCaller: string, + _l2Receiver: string, + _l1Token: string, + _amount: BigNumberish, + _l2TxGasLimit: BigNumberish, + _l2TxGasPerPubdataByte: BigNumberish, + _refundRecipient: string, + overrides?: CallOverrides + ): Promise; + + "depositLegacyErc20Bridge(address,address,address,uint256,uint256,uint256,address)"( + _originalCaller: string, + _l2Receiver: string, + _l1Token: string, + _amount: BigNumberish, + _l2TxGasLimit: BigNumberish, + _l2TxGasPerPubdataByte: BigNumberish, + _refundRecipient: string, + overrides?: CallOverrides + ): Promise; + + finalizeDeposit( + _chainId: BigNumberish, + _assetId: BytesLike, + _transferData: BytesLike, + overrides?: CallOverrides + ): Promise; + + "finalizeDeposit(uint256,bytes32,bytes)"( + _chainId: BigNumberish, + _assetId: BytesLike, + _transferData: BytesLike, + overrides?: CallOverrides + ): Promise; + + finalizeWithdrawal( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _message: BytesLike, + _merkleProof: BytesLike[], + overrides?: CallOverrides + ): Promise; + + "finalizeWithdrawal(uint256,uint256,uint256,uint16,bytes,bytes32[])"( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _message: BytesLike, + _merkleProof: BytesLike[], + overrides?: CallOverrides + ): Promise; + + getDepositCalldata( + _sender: string, + _assetId: BytesLike, + _assetData: BytesLike, + overrides?: CallOverrides + ): Promise; + + "getDepositCalldata(address,bytes32,bytes)"( + _sender: string, + _assetId: BytesLike, + _assetData: BytesLike, + overrides?: CallOverrides + ): Promise; + + isWithdrawalFinalized( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "isWithdrawalFinalized(uint256,uint256,uint256)"( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + overrides?: CallOverrides + ): Promise; + + l2BridgeAddress( + _chainId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "l2BridgeAddress(uint256)"( + _chainId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + nativeTokenVault(overrides?: CallOverrides): Promise; + + "nativeTokenVault()"(overrides?: CallOverrides): Promise; + + setAssetDeploymentTracker( + _assetRegistrationData: BytesLike, + _assetDeploymentTracker: string, + overrides?: CallOverrides + ): Promise; + + "setAssetDeploymentTracker(bytes32,address)"( + _assetRegistrationData: BytesLike, + _assetDeploymentTracker: string, + overrides?: CallOverrides + ): Promise; + + setAssetHandlerAddressThisChain( + _assetRegistrationData: BytesLike, + _assetHandlerAddress: string, + overrides?: CallOverrides + ): Promise; + + "setAssetHandlerAddressThisChain(bytes32,address)"( + _assetRegistrationData: BytesLike, + _assetHandlerAddress: string, + overrides?: CallOverrides + ): Promise; + + setL1Erc20Bridge( + _legacyBridge: string, + overrides?: CallOverrides + ): Promise; + + "setL1Erc20Bridge(address)"( + _legacyBridge: string, + overrides?: CallOverrides + ): Promise; + + setNativeTokenVault( + _nativeTokenVault: string, + overrides?: CallOverrides + ): Promise; + + "setNativeTokenVault(address)"( + _nativeTokenVault: string, + overrides?: CallOverrides + ): Promise; + + transferFundsToNTV( + _assetId: BytesLike, + _amount: BigNumberish, + _originalCaller: string, + overrides?: CallOverrides + ): Promise; + + "transferFundsToNTV(bytes32,uint256,address)"( + _assetId: BytesLike, + _amount: BigNumberish, + _originalCaller: string, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + AssetDeploymentTrackerRegistered( + assetId: BytesLike | null, + additionalData: BytesLike | null, + assetDeploymentTracker: null + ): EventFilter; + + AssetDeploymentTrackerSet( + assetId: BytesLike | null, + assetDeploymentTracker: string | null, + additionalData: BytesLike | null + ): EventFilter; + + AssetHandlerRegistered( + assetId: BytesLike | null, + _assetHandlerAddress: string | null + ): EventFilter; + + BridgehubDepositBaseTokenInitiated( + chainId: BigNumberish | null, + from: string | null, + assetId: null, + amount: null + ): EventFilter; + + BridgehubDepositFinalized( + chainId: BigNumberish | null, + txDataHash: BytesLike | null, + l2DepositTxHash: BytesLike | null + ): EventFilter; + + BridgehubDepositInitiated( + chainId: BigNumberish | null, + txDataHash: BytesLike | null, + from: string | null, + assetId: null, + bridgeMintCalldata: null + ): EventFilter; + + BridgehubMintData(bridgeMintData: null): EventFilter; + + BridgehubWithdrawalInitiated( + chainId: null, + sender: string | null, + assetId: BytesLike | null, + assetDataHash: null + ): EventFilter; + + ClaimedFailedDepositAssetRouter( + chainId: BigNumberish | null, + assetId: BytesLike | null, + assetData: null + ): EventFilter; + + DepositFinalizedAssetRouter( + chainId: BigNumberish | null, + assetId: BytesLike | null, + assetData: null + ): EventFilter; + + LegacyDepositInitiated( + chainId: BigNumberish | null, + l2DepositTxHash: BytesLike | null, + from: string | null, + to: null, + l1Token: null, + amount: null + ): EventFilter; + }; + + estimateGas: { + BRIDGE_HUB(overrides?: CallOverrides): Promise; + + "BRIDGE_HUB()"(overrides?: CallOverrides): Promise; + + L1_NULLIFIER(overrides?: CallOverrides): Promise; + + "L1_NULLIFIER()"(overrides?: CallOverrides): Promise; + + L1_WETH_TOKEN(overrides?: CallOverrides): Promise; + + "L1_WETH_TOKEN()"(overrides?: CallOverrides): Promise; + + assetHandlerAddress( + _assetId: BytesLike, + overrides?: CallOverrides + ): Promise; + + "assetHandlerAddress(bytes32)"( + _assetId: BytesLike, + overrides?: CallOverrides + ): Promise; + + "bridgeRecoverFailedTransfer(uint256,address,bytes32,bytes)"( + _chainId: BigNumberish, + _depositSender: string, + _assetId: BytesLike, + _assetData: BytesLike, + overrides?: Overrides + ): Promise; + + "bridgeRecoverFailedTransfer(uint256,address,bytes32,bytes,bytes32,uint256,uint256,uint16,bytes32[])"( + _chainId: BigNumberish, + _depositSender: string, + _assetId: BytesLike, + _assetData: BytesLike, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + bridgehubConfirmL2Transaction( + _chainId: BigNumberish, + _txDataHash: BytesLike, + _txHash: BytesLike, + overrides?: Overrides + ): Promise; + + "bridgehubConfirmL2Transaction(uint256,bytes32,bytes32)"( + _chainId: BigNumberish, + _txDataHash: BytesLike, + _txHash: BytesLike, + overrides?: Overrides + ): Promise; + + bridgehubDeposit( + _chainId: BigNumberish, + _originalCaller: string, + _value: BigNumberish, + _data: BytesLike, + overrides?: PayableOverrides + ): Promise; + + "bridgehubDeposit(uint256,address,uint256,bytes)"( + _chainId: BigNumberish, + _originalCaller: string, + _value: BigNumberish, + _data: BytesLike, + overrides?: PayableOverrides + ): Promise; + + bridgehubDepositBaseToken( + _chainId: BigNumberish, + _assetId: BytesLike, + _originalCaller: string, + _amount: BigNumberish, + overrides?: PayableOverrides + ): Promise; + + "bridgehubDepositBaseToken(uint256,bytes32,address,uint256)"( + _chainId: BigNumberish, + _assetId: BytesLike, + _originalCaller: string, + _amount: BigNumberish, + overrides?: PayableOverrides + ): Promise; + + depositLegacyErc20Bridge( + _originalCaller: string, + _l2Receiver: string, + _l1Token: string, + _amount: BigNumberish, + _l2TxGasLimit: BigNumberish, + _l2TxGasPerPubdataByte: BigNumberish, + _refundRecipient: string, + overrides?: PayableOverrides + ): Promise; + + "depositLegacyErc20Bridge(address,address,address,uint256,uint256,uint256,address)"( + _originalCaller: string, + _l2Receiver: string, + _l1Token: string, + _amount: BigNumberish, + _l2TxGasLimit: BigNumberish, + _l2TxGasPerPubdataByte: BigNumberish, + _refundRecipient: string, + overrides?: PayableOverrides + ): Promise; + + finalizeDeposit( + _chainId: BigNumberish, + _assetId: BytesLike, + _transferData: BytesLike, + overrides?: PayableOverrides + ): Promise; + + "finalizeDeposit(uint256,bytes32,bytes)"( + _chainId: BigNumberish, + _assetId: BytesLike, + _transferData: BytesLike, + overrides?: PayableOverrides + ): Promise; + + finalizeWithdrawal( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _message: BytesLike, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + "finalizeWithdrawal(uint256,uint256,uint256,uint16,bytes,bytes32[])"( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _message: BytesLike, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + getDepositCalldata( + _sender: string, + _assetId: BytesLike, + _assetData: BytesLike, + overrides?: CallOverrides + ): Promise; + + "getDepositCalldata(address,bytes32,bytes)"( + _sender: string, + _assetId: BytesLike, + _assetData: BytesLike, + overrides?: CallOverrides + ): Promise; + + isWithdrawalFinalized( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "isWithdrawalFinalized(uint256,uint256,uint256)"( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + overrides?: CallOverrides + ): Promise; + + l2BridgeAddress( + _chainId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "l2BridgeAddress(uint256)"( + _chainId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + nativeTokenVault(overrides?: CallOverrides): Promise; + + "nativeTokenVault()"(overrides?: CallOverrides): Promise; + + setAssetDeploymentTracker( + _assetRegistrationData: BytesLike, + _assetDeploymentTracker: string, + overrides?: Overrides + ): Promise; + + "setAssetDeploymentTracker(bytes32,address)"( + _assetRegistrationData: BytesLike, + _assetDeploymentTracker: string, + overrides?: Overrides + ): Promise; + + setAssetHandlerAddressThisChain( + _assetRegistrationData: BytesLike, + _assetHandlerAddress: string, + overrides?: Overrides + ): Promise; + + "setAssetHandlerAddressThisChain(bytes32,address)"( + _assetRegistrationData: BytesLike, + _assetHandlerAddress: string, + overrides?: Overrides + ): Promise; + + setL1Erc20Bridge( + _legacyBridge: string, + overrides?: Overrides + ): Promise; + + "setL1Erc20Bridge(address)"( + _legacyBridge: string, + overrides?: Overrides + ): Promise; + + setNativeTokenVault( + _nativeTokenVault: string, + overrides?: Overrides + ): Promise; + + "setNativeTokenVault(address)"( + _nativeTokenVault: string, + overrides?: Overrides + ): Promise; + + transferFundsToNTV( + _assetId: BytesLike, + _amount: BigNumberish, + _originalCaller: string, + overrides?: Overrides + ): Promise; + + "transferFundsToNTV(bytes32,uint256,address)"( + _assetId: BytesLike, + _amount: BigNumberish, + _originalCaller: string, + overrides?: Overrides + ): Promise; + }; + + populateTransaction: { + BRIDGE_HUB(overrides?: CallOverrides): Promise; + + "BRIDGE_HUB()"(overrides?: CallOverrides): Promise; + + L1_NULLIFIER(overrides?: CallOverrides): Promise; + + "L1_NULLIFIER()"(overrides?: CallOverrides): Promise; + + L1_WETH_TOKEN(overrides?: CallOverrides): Promise; + + "L1_WETH_TOKEN()"(overrides?: CallOverrides): Promise; + + assetHandlerAddress( + _assetId: BytesLike, + overrides?: CallOverrides + ): Promise; + + "assetHandlerAddress(bytes32)"( + _assetId: BytesLike, + overrides?: CallOverrides + ): Promise; + + "bridgeRecoverFailedTransfer(uint256,address,bytes32,bytes)"( + _chainId: BigNumberish, + _depositSender: string, + _assetId: BytesLike, + _assetData: BytesLike, + overrides?: Overrides + ): Promise; + + "bridgeRecoverFailedTransfer(uint256,address,bytes32,bytes,bytes32,uint256,uint256,uint16,bytes32[])"( + _chainId: BigNumberish, + _depositSender: string, + _assetId: BytesLike, + _assetData: BytesLike, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + bridgehubConfirmL2Transaction( + _chainId: BigNumberish, + _txDataHash: BytesLike, + _txHash: BytesLike, + overrides?: Overrides + ): Promise; + + "bridgehubConfirmL2Transaction(uint256,bytes32,bytes32)"( + _chainId: BigNumberish, + _txDataHash: BytesLike, + _txHash: BytesLike, + overrides?: Overrides + ): Promise; + + bridgehubDeposit( + _chainId: BigNumberish, + _originalCaller: string, + _value: BigNumberish, + _data: BytesLike, + overrides?: PayableOverrides + ): Promise; + + "bridgehubDeposit(uint256,address,uint256,bytes)"( + _chainId: BigNumberish, + _originalCaller: string, + _value: BigNumberish, + _data: BytesLike, + overrides?: PayableOverrides + ): Promise; + + bridgehubDepositBaseToken( + _chainId: BigNumberish, + _assetId: BytesLike, + _originalCaller: string, + _amount: BigNumberish, + overrides?: PayableOverrides + ): Promise; + + "bridgehubDepositBaseToken(uint256,bytes32,address,uint256)"( + _chainId: BigNumberish, + _assetId: BytesLike, + _originalCaller: string, + _amount: BigNumberish, + overrides?: PayableOverrides + ): Promise; + + depositLegacyErc20Bridge( + _originalCaller: string, + _l2Receiver: string, + _l1Token: string, + _amount: BigNumberish, + _l2TxGasLimit: BigNumberish, + _l2TxGasPerPubdataByte: BigNumberish, + _refundRecipient: string, + overrides?: PayableOverrides + ): Promise; + + "depositLegacyErc20Bridge(address,address,address,uint256,uint256,uint256,address)"( + _originalCaller: string, + _l2Receiver: string, + _l1Token: string, + _amount: BigNumberish, + _l2TxGasLimit: BigNumberish, + _l2TxGasPerPubdataByte: BigNumberish, + _refundRecipient: string, + overrides?: PayableOverrides + ): Promise; + + finalizeDeposit( + _chainId: BigNumberish, + _assetId: BytesLike, + _transferData: BytesLike, + overrides?: PayableOverrides + ): Promise; + + "finalizeDeposit(uint256,bytes32,bytes)"( + _chainId: BigNumberish, + _assetId: BytesLike, + _transferData: BytesLike, + overrides?: PayableOverrides + ): Promise; + + finalizeWithdrawal( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _message: BytesLike, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + "finalizeWithdrawal(uint256,uint256,uint256,uint16,bytes,bytes32[])"( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _message: BytesLike, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + getDepositCalldata( + _sender: string, + _assetId: BytesLike, + _assetData: BytesLike, + overrides?: CallOverrides + ): Promise; + + "getDepositCalldata(address,bytes32,bytes)"( + _sender: string, + _assetId: BytesLike, + _assetData: BytesLike, + overrides?: CallOverrides + ): Promise; + + isWithdrawalFinalized( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "isWithdrawalFinalized(uint256,uint256,uint256)"( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + overrides?: CallOverrides + ): Promise; + + l2BridgeAddress( + _chainId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "l2BridgeAddress(uint256)"( + _chainId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + nativeTokenVault(overrides?: CallOverrides): Promise; + + "nativeTokenVault()"( + overrides?: CallOverrides + ): Promise; + + setAssetDeploymentTracker( + _assetRegistrationData: BytesLike, + _assetDeploymentTracker: string, + overrides?: Overrides + ): Promise; + + "setAssetDeploymentTracker(bytes32,address)"( + _assetRegistrationData: BytesLike, + _assetDeploymentTracker: string, + overrides?: Overrides + ): Promise; + + setAssetHandlerAddressThisChain( + _assetRegistrationData: BytesLike, + _assetHandlerAddress: string, + overrides?: Overrides + ): Promise; + + "setAssetHandlerAddressThisChain(bytes32,address)"( + _assetRegistrationData: BytesLike, + _assetHandlerAddress: string, + overrides?: Overrides + ): Promise; + + setL1Erc20Bridge( + _legacyBridge: string, + overrides?: Overrides + ): Promise; + + "setL1Erc20Bridge(address)"( + _legacyBridge: string, + overrides?: Overrides + ): Promise; + + setNativeTokenVault( + _nativeTokenVault: string, + overrides?: Overrides + ): Promise; + + "setNativeTokenVault(address)"( + _nativeTokenVault: string, + overrides?: Overrides + ): Promise; + + transferFundsToNTV( + _assetId: BytesLike, + _amount: BigNumberish, + _originalCaller: string, + overrides?: Overrides + ): Promise; + + "transferFundsToNTV(bytes32,uint256,address)"( + _assetId: BytesLike, + _amount: BigNumberish, + _originalCaller: string, + overrides?: Overrides + ): Promise; + }; +} diff --git a/src/typechain/Il1AssetRouterFactory.ts b/src/typechain/Il1AssetRouterFactory.ts new file mode 100644 index 00000000..4bdefa6c --- /dev/null +++ b/src/typechain/Il1AssetRouterFactory.ts @@ -0,0 +1,861 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer } from "ethers"; +import { Provider } from "@ethersproject/providers"; + +import type { Il1AssetRouter } from "./Il1AssetRouter"; + +export class Il1AssetRouterFactory { + static connect( + address: string, + signerOrProvider: Signer | Provider + ): Il1AssetRouter { + return new Contract(address, _abi, signerOrProvider) as Il1AssetRouter; + } +} + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "assetId", + type: "bytes32", + }, + { + indexed: true, + internalType: "bytes32", + name: "additionalData", + type: "bytes32", + }, + { + indexed: false, + internalType: "address", + name: "assetDeploymentTracker", + type: "address", + }, + ], + name: "AssetDeploymentTrackerRegistered", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "assetId", + type: "bytes32", + }, + { + indexed: true, + internalType: "address", + name: "assetDeploymentTracker", + type: "address", + }, + { + indexed: true, + internalType: "bytes32", + name: "additionalData", + type: "bytes32", + }, + ], + name: "AssetDeploymentTrackerSet", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "assetId", + type: "bytes32", + }, + { + indexed: true, + internalType: "address", + name: "_assetHandlerAddress", + type: "address", + }, + ], + name: "AssetHandlerRegistered", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: false, + internalType: "bytes32", + name: "assetId", + type: "bytes32", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "BridgehubDepositBaseTokenInitiated", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + indexed: true, + internalType: "bytes32", + name: "txDataHash", + type: "bytes32", + }, + { + indexed: true, + internalType: "bytes32", + name: "l2DepositTxHash", + type: "bytes32", + }, + ], + name: "BridgehubDepositFinalized", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + indexed: true, + internalType: "bytes32", + name: "txDataHash", + type: "bytes32", + }, + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: false, + internalType: "bytes32", + name: "assetId", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes", + name: "bridgeMintCalldata", + type: "bytes", + }, + ], + name: "BridgehubDepositInitiated", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "bytes", + name: "bridgeMintData", + type: "bytes", + }, + ], + name: "BridgehubMintData", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: true, + internalType: "bytes32", + name: "assetId", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes32", + name: "assetDataHash", + type: "bytes32", + }, + ], + name: "BridgehubWithdrawalInitiated", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + indexed: true, + internalType: "bytes32", + name: "assetId", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes", + name: "assetData", + type: "bytes", + }, + ], + name: "ClaimedFailedDepositAssetRouter", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + indexed: true, + internalType: "bytes32", + name: "assetId", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes", + name: "assetData", + type: "bytes", + }, + ], + name: "DepositFinalizedAssetRouter", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + indexed: true, + internalType: "bytes32", + name: "l2DepositTxHash", + type: "bytes32", + }, + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "l1Token", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "LegacyDepositInitiated", + type: "event", + }, + { + inputs: [], + name: "BRIDGE_HUB", + outputs: [ + { + internalType: "contract IBridgehub", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "L1_NULLIFIER", + outputs: [ + { + internalType: "contract IL1Nullifier", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "L1_WETH_TOKEN", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_assetId", + type: "bytes32", + }, + ], + name: "assetHandlerAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "_chainId", + type: "uint256", + }, + { + internalType: "address", + name: "_depositSender", + type: "address", + }, + { + internalType: "bytes32", + name: "_assetId", + type: "bytes32", + }, + { + internalType: "bytes", + name: "_assetData", + type: "bytes", + }, + ], + name: "bridgeRecoverFailedTransfer", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "_chainId", + type: "uint256", + }, + { + internalType: "address", + name: "_depositSender", + type: "address", + }, + { + internalType: "bytes32", + name: "_assetId", + type: "bytes32", + }, + { + internalType: "bytes", + name: "_assetData", + type: "bytes", + }, + { + internalType: "bytes32", + name: "_l2TxHash", + type: "bytes32", + }, + { + internalType: "uint256", + name: "_l2BatchNumber", + type: "uint256", + }, + { + internalType: "uint256", + name: "_l2MessageIndex", + type: "uint256", + }, + { + internalType: "uint16", + name: "_l2TxNumberInBatch", + type: "uint16", + }, + { + internalType: "bytes32[]", + name: "_merkleProof", + type: "bytes32[]", + }, + ], + name: "bridgeRecoverFailedTransfer", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "_chainId", + type: "uint256", + }, + { + internalType: "bytes32", + name: "_txDataHash", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "_txHash", + type: "bytes32", + }, + ], + name: "bridgehubConfirmL2Transaction", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "_chainId", + type: "uint256", + }, + { + internalType: "address", + name: "_originalCaller", + type: "address", + }, + { + internalType: "uint256", + name: "_value", + type: "uint256", + }, + { + internalType: "bytes", + name: "_data", + type: "bytes", + }, + ], + name: "bridgehubDeposit", + outputs: [ + { + components: [ + { + internalType: "bytes32", + name: "magicValue", + type: "bytes32", + }, + { + internalType: "address", + name: "l2Contract", + type: "address", + }, + { + internalType: "bytes", + name: "l2Calldata", + type: "bytes", + }, + { + internalType: "bytes[]", + name: "factoryDeps", + type: "bytes[]", + }, + { + internalType: "bytes32", + name: "txDataHash", + type: "bytes32", + }, + ], + internalType: "struct L2TransactionRequestTwoBridgesInner", + name: "request", + type: "tuple", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "_chainId", + type: "uint256", + }, + { + internalType: "bytes32", + name: "_assetId", + type: "bytes32", + }, + { + internalType: "address", + name: "_originalCaller", + type: "address", + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256", + }, + ], + name: "bridgehubDepositBaseToken", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_originalCaller", + type: "address", + }, + { + internalType: "address", + name: "_l2Receiver", + type: "address", + }, + { + internalType: "address", + name: "_l1Token", + type: "address", + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256", + }, + { + internalType: "uint256", + name: "_l2TxGasLimit", + type: "uint256", + }, + { + internalType: "uint256", + name: "_l2TxGasPerPubdataByte", + type: "uint256", + }, + { + internalType: "address", + name: "_refundRecipient", + type: "address", + }, + ], + name: "depositLegacyErc20Bridge", + outputs: [ + { + internalType: "bytes32", + name: "txHash", + type: "bytes32", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "_chainId", + type: "uint256", + }, + { + internalType: "bytes32", + name: "_assetId", + type: "bytes32", + }, + { + internalType: "bytes", + name: "_transferData", + type: "bytes", + }, + ], + name: "finalizeDeposit", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "_chainId", + type: "uint256", + }, + { + internalType: "uint256", + name: "_l2BatchNumber", + type: "uint256", + }, + { + internalType: "uint256", + name: "_l2MessageIndex", + type: "uint256", + }, + { + internalType: "uint16", + name: "_l2TxNumberInBatch", + type: "uint16", + }, + { + internalType: "bytes", + name: "_message", + type: "bytes", + }, + { + internalType: "bytes32[]", + name: "_merkleProof", + type: "bytes32[]", + }, + ], + name: "finalizeWithdrawal", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_sender", + type: "address", + }, + { + internalType: "bytes32", + name: "_assetId", + type: "bytes32", + }, + { + internalType: "bytes", + name: "_assetData", + type: "bytes", + }, + ], + name: "getDepositCalldata", + outputs: [ + { + internalType: "bytes", + name: "", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "_chainId", + type: "uint256", + }, + { + internalType: "uint256", + name: "_l2BatchNumber", + type: "uint256", + }, + { + internalType: "uint256", + name: "_l2MessageIndex", + type: "uint256", + }, + ], + name: "isWithdrawalFinalized", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "_chainId", + type: "uint256", + }, + ], + name: "l2BridgeAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "nativeTokenVault", + outputs: [ + { + internalType: "contract INativeTokenVault", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_assetRegistrationData", + type: "bytes32", + }, + { + internalType: "address", + name: "_assetDeploymentTracker", + type: "address", + }, + ], + name: "setAssetDeploymentTracker", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_assetRegistrationData", + type: "bytes32", + }, + { + internalType: "address", + name: "_assetHandlerAddress", + type: "address", + }, + ], + name: "setAssetHandlerAddressThisChain", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "contract IL1ERC20Bridge", + name: "_legacyBridge", + type: "address", + }, + ], + name: "setL1Erc20Bridge", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "contract INativeTokenVault", + name: "_nativeTokenVault", + type: "address", + }, + ], + name: "setNativeTokenVault", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_assetId", + type: "bytes32", + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256", + }, + { + internalType: "address", + name: "_originalCaller", + type: "address", + }, + ], + name: "transferFundsToNTV", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +]; diff --git a/src/typechain/Il1Nullifier.d.ts b/src/typechain/Il1Nullifier.d.ts new file mode 100644 index 00000000..590dd7c4 --- /dev/null +++ b/src/typechain/Il1Nullifier.d.ts @@ -0,0 +1,1482 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, +} from "ethers"; +import { + Contract, + ContractTransaction, + Overrides, + CallOverrides, +} from "@ethersproject/contracts"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; + +interface Il1NullifierInterface extends ethers.utils.Interface { + functions: { + "BRIDGE_HUB()": FunctionFragment; + "bridgeRecoverFailedTransfer(uint256,address,bytes32,bytes,bytes32,uint256,uint256,uint16,bytes32[])": FunctionFragment; + "bridgehubConfirmL2TransactionForwarded(uint256,bytes32,bytes32)": FunctionFragment; + "chainBalance(uint256,address)": FunctionFragment; + "claimFailedDeposit(uint256,address,address,uint256,bytes32,uint256,uint256,uint16,bytes32[])": FunctionFragment; + "claimFailedDepositLegacyErc20Bridge(address,address,uint256,bytes32,uint256,uint256,uint16,bytes32[])": FunctionFragment; + "depositHappened(uint256,bytes32)": FunctionFragment; + "finalizeDeposit(tuple)": FunctionFragment; + "finalizeWithdrawal(uint256,uint256,uint256,uint16,bytes,bytes32[])": FunctionFragment; + "isWithdrawalFinalized(uint256,uint256,uint256)": FunctionFragment; + "l1NativeTokenVault()": FunctionFragment; + "l2BridgeAddress(uint256)": FunctionFragment; + "legacyBridge()": FunctionFragment; + "nullifyChainBalanceByNTV(uint256,address)": FunctionFragment; + "setL1AssetRouter(address)": FunctionFragment; + "setL1NativeTokenVault(address)": FunctionFragment; + "transferTokenToNTV(address)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "BRIDGE_HUB", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "bridgeRecoverFailedTransfer", + values: [ + BigNumberish, + string, + BytesLike, + BytesLike, + BytesLike, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike[] + ] + ): string; + encodeFunctionData( + functionFragment: "bridgehubConfirmL2TransactionForwarded", + values: [BigNumberish, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "chainBalance", + values: [BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "claimFailedDeposit", + values: [ + BigNumberish, + string, + string, + BigNumberish, + BytesLike, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike[] + ] + ): string; + encodeFunctionData( + functionFragment: "claimFailedDepositLegacyErc20Bridge", + values: [ + string, + string, + BigNumberish, + BytesLike, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike[] + ] + ): string; + encodeFunctionData( + functionFragment: "depositHappened", + values: [BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "finalizeDeposit", + values: [ + { + chainId: BigNumberish; + l2BatchNumber: BigNumberish; + l2MessageIndex: BigNumberish; + l2Sender: string; + l2TxNumberInBatch: BigNumberish; + message: BytesLike; + merkleProof: BytesLike[]; + } + ] + ): string; + encodeFunctionData( + functionFragment: "finalizeWithdrawal", + values: [ + BigNumberish, + BigNumberish, + BigNumberish, + BigNumberish, + BytesLike, + BytesLike[] + ] + ): string; + encodeFunctionData( + functionFragment: "isWithdrawalFinalized", + values: [BigNumberish, BigNumberish, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "l1NativeTokenVault", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "l2BridgeAddress", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "legacyBridge", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "nullifyChainBalanceByNTV", + values: [BigNumberish, string] + ): string; + encodeFunctionData( + functionFragment: "setL1AssetRouter", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "setL1NativeTokenVault", + values: [string] + ): string; + encodeFunctionData( + functionFragment: "transferTokenToNTV", + values: [string] + ): string; + + decodeFunctionResult(functionFragment: "BRIDGE_HUB", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "bridgeRecoverFailedTransfer", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "bridgehubConfirmL2TransactionForwarded", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "chainBalance", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "claimFailedDeposit", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "claimFailedDepositLegacyErc20Bridge", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "depositHappened", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "finalizeDeposit", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "finalizeWithdrawal", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "isWithdrawalFinalized", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "l1NativeTokenVault", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "l2BridgeAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "legacyBridge", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "nullifyChainBalanceByNTV", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setL1AssetRouter", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setL1NativeTokenVault", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "transferTokenToNTV", + data: BytesLike + ): Result; + + events: { + "BridgehubDepositFinalized(uint256,bytes32,bytes32)": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "BridgehubDepositFinalized"): EventFragment; +} + +export class Il1Nullifier extends Contract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): this; + once(event: EventFilter | string, listener: Listener): this; + addListener(eventName: EventFilter | string, listener: Listener): this; + removeAllListeners(eventName: EventFilter | string): this; + removeListener(eventName: any, listener: Listener): this; + + interface: Il1NullifierInterface; + + functions: { + BRIDGE_HUB(overrides?: CallOverrides): Promise<{ + 0: string; + }>; + + "BRIDGE_HUB()"(overrides?: CallOverrides): Promise<{ + 0: string; + }>; + + bridgeRecoverFailedTransfer( + _chainId: BigNumberish, + _depositSender: string, + _assetId: BytesLike, + _assetData: BytesLike, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + "bridgeRecoverFailedTransfer(uint256,address,bytes32,bytes,bytes32,uint256,uint256,uint16,bytes32[])"( + _chainId: BigNumberish, + _depositSender: string, + _assetId: BytesLike, + _assetData: BytesLike, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + bridgehubConfirmL2TransactionForwarded( + _chainId: BigNumberish, + _txDataHash: BytesLike, + _txHash: BytesLike, + overrides?: Overrides + ): Promise; + + "bridgehubConfirmL2TransactionForwarded(uint256,bytes32,bytes32)"( + _chainId: BigNumberish, + _txDataHash: BytesLike, + _txHash: BytesLike, + overrides?: Overrides + ): Promise; + + chainBalance( + _chainId: BigNumberish, + _token: string, + overrides?: CallOverrides + ): Promise<{ + 0: BigNumber; + }>; + + "chainBalance(uint256,address)"( + _chainId: BigNumberish, + _token: string, + overrides?: CallOverrides + ): Promise<{ + 0: BigNumber; + }>; + + claimFailedDeposit( + _chainId: BigNumberish, + _depositSender: string, + _l1Token: string, + _amount: BigNumberish, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + "claimFailedDeposit(uint256,address,address,uint256,bytes32,uint256,uint256,uint16,bytes32[])"( + _chainId: BigNumberish, + _depositSender: string, + _l1Token: string, + _amount: BigNumberish, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + claimFailedDepositLegacyErc20Bridge( + _depositSender: string, + _l1Token: string, + _amount: BigNumberish, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + "claimFailedDepositLegacyErc20Bridge(address,address,uint256,bytes32,uint256,uint256,uint16,bytes32[])"( + _depositSender: string, + _l1Token: string, + _amount: BigNumberish, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + depositHappened( + _chainId: BigNumberish, + _l2TxHash: BytesLike, + overrides?: CallOverrides + ): Promise<{ + 0: string; + }>; + + "depositHappened(uint256,bytes32)"( + _chainId: BigNumberish, + _l2TxHash: BytesLike, + overrides?: CallOverrides + ): Promise<{ + 0: string; + }>; + + finalizeDeposit( + _finalizeWithdrawalParams: { + chainId: BigNumberish; + l2BatchNumber: BigNumberish; + l2MessageIndex: BigNumberish; + l2Sender: string; + l2TxNumberInBatch: BigNumberish; + message: BytesLike; + merkleProof: BytesLike[]; + }, + overrides?: Overrides + ): Promise; + + "finalizeDeposit(tuple)"( + _finalizeWithdrawalParams: { + chainId: BigNumberish; + l2BatchNumber: BigNumberish; + l2MessageIndex: BigNumberish; + l2Sender: string; + l2TxNumberInBatch: BigNumberish; + message: BytesLike; + merkleProof: BytesLike[]; + }, + overrides?: Overrides + ): Promise; + + finalizeWithdrawal( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _message: BytesLike, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + "finalizeWithdrawal(uint256,uint256,uint256,uint16,bytes,bytes32[])"( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _message: BytesLike, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + isWithdrawalFinalized( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + overrides?: CallOverrides + ): Promise<{ + 0: boolean; + }>; + + "isWithdrawalFinalized(uint256,uint256,uint256)"( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + overrides?: CallOverrides + ): Promise<{ + 0: boolean; + }>; + + l1NativeTokenVault(overrides?: CallOverrides): Promise<{ + 0: string; + }>; + + "l1NativeTokenVault()"(overrides?: CallOverrides): Promise<{ + 0: string; + }>; + + l2BridgeAddress( + _chainId: BigNumberish, + overrides?: CallOverrides + ): Promise<{ + 0: string; + }>; + + "l2BridgeAddress(uint256)"( + _chainId: BigNumberish, + overrides?: CallOverrides + ): Promise<{ + 0: string; + }>; + + legacyBridge(overrides?: CallOverrides): Promise<{ + 0: string; + }>; + + "legacyBridge()"(overrides?: CallOverrides): Promise<{ + 0: string; + }>; + + nullifyChainBalanceByNTV( + _chainId: BigNumberish, + _token: string, + overrides?: Overrides + ): Promise; + + "nullifyChainBalanceByNTV(uint256,address)"( + _chainId: BigNumberish, + _token: string, + overrides?: Overrides + ): Promise; + + setL1AssetRouter( + _l1AssetRouter: string, + overrides?: Overrides + ): Promise; + + "setL1AssetRouter(address)"( + _l1AssetRouter: string, + overrides?: Overrides + ): Promise; + + setL1NativeTokenVault( + _nativeTokenVault: string, + overrides?: Overrides + ): Promise; + + "setL1NativeTokenVault(address)"( + _nativeTokenVault: string, + overrides?: Overrides + ): Promise; + + transferTokenToNTV( + _token: string, + overrides?: Overrides + ): Promise; + + "transferTokenToNTV(address)"( + _token: string, + overrides?: Overrides + ): Promise; + }; + + BRIDGE_HUB(overrides?: CallOverrides): Promise; + + "BRIDGE_HUB()"(overrides?: CallOverrides): Promise; + + bridgeRecoverFailedTransfer( + _chainId: BigNumberish, + _depositSender: string, + _assetId: BytesLike, + _assetData: BytesLike, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + "bridgeRecoverFailedTransfer(uint256,address,bytes32,bytes,bytes32,uint256,uint256,uint16,bytes32[])"( + _chainId: BigNumberish, + _depositSender: string, + _assetId: BytesLike, + _assetData: BytesLike, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + bridgehubConfirmL2TransactionForwarded( + _chainId: BigNumberish, + _txDataHash: BytesLike, + _txHash: BytesLike, + overrides?: Overrides + ): Promise; + + "bridgehubConfirmL2TransactionForwarded(uint256,bytes32,bytes32)"( + _chainId: BigNumberish, + _txDataHash: BytesLike, + _txHash: BytesLike, + overrides?: Overrides + ): Promise; + + chainBalance( + _chainId: BigNumberish, + _token: string, + overrides?: CallOverrides + ): Promise; + + "chainBalance(uint256,address)"( + _chainId: BigNumberish, + _token: string, + overrides?: CallOverrides + ): Promise; + + claimFailedDeposit( + _chainId: BigNumberish, + _depositSender: string, + _l1Token: string, + _amount: BigNumberish, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + "claimFailedDeposit(uint256,address,address,uint256,bytes32,uint256,uint256,uint16,bytes32[])"( + _chainId: BigNumberish, + _depositSender: string, + _l1Token: string, + _amount: BigNumberish, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + claimFailedDepositLegacyErc20Bridge( + _depositSender: string, + _l1Token: string, + _amount: BigNumberish, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + "claimFailedDepositLegacyErc20Bridge(address,address,uint256,bytes32,uint256,uint256,uint16,bytes32[])"( + _depositSender: string, + _l1Token: string, + _amount: BigNumberish, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + depositHappened( + _chainId: BigNumberish, + _l2TxHash: BytesLike, + overrides?: CallOverrides + ): Promise; + + "depositHappened(uint256,bytes32)"( + _chainId: BigNumberish, + _l2TxHash: BytesLike, + overrides?: CallOverrides + ): Promise; + + finalizeDeposit( + _finalizeWithdrawalParams: { + chainId: BigNumberish; + l2BatchNumber: BigNumberish; + l2MessageIndex: BigNumberish; + l2Sender: string; + l2TxNumberInBatch: BigNumberish; + message: BytesLike; + merkleProof: BytesLike[]; + }, + overrides?: Overrides + ): Promise; + + "finalizeDeposit(tuple)"( + _finalizeWithdrawalParams: { + chainId: BigNumberish; + l2BatchNumber: BigNumberish; + l2MessageIndex: BigNumberish; + l2Sender: string; + l2TxNumberInBatch: BigNumberish; + message: BytesLike; + merkleProof: BytesLike[]; + }, + overrides?: Overrides + ): Promise; + + finalizeWithdrawal( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _message: BytesLike, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + "finalizeWithdrawal(uint256,uint256,uint256,uint16,bytes,bytes32[])"( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _message: BytesLike, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + isWithdrawalFinalized( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "isWithdrawalFinalized(uint256,uint256,uint256)"( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + overrides?: CallOverrides + ): Promise; + + l1NativeTokenVault(overrides?: CallOverrides): Promise; + + "l1NativeTokenVault()"(overrides?: CallOverrides): Promise; + + l2BridgeAddress( + _chainId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "l2BridgeAddress(uint256)"( + _chainId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + legacyBridge(overrides?: CallOverrides): Promise; + + "legacyBridge()"(overrides?: CallOverrides): Promise; + + nullifyChainBalanceByNTV( + _chainId: BigNumberish, + _token: string, + overrides?: Overrides + ): Promise; + + "nullifyChainBalanceByNTV(uint256,address)"( + _chainId: BigNumberish, + _token: string, + overrides?: Overrides + ): Promise; + + setL1AssetRouter( + _l1AssetRouter: string, + overrides?: Overrides + ): Promise; + + "setL1AssetRouter(address)"( + _l1AssetRouter: string, + overrides?: Overrides + ): Promise; + + setL1NativeTokenVault( + _nativeTokenVault: string, + overrides?: Overrides + ): Promise; + + "setL1NativeTokenVault(address)"( + _nativeTokenVault: string, + overrides?: Overrides + ): Promise; + + transferTokenToNTV( + _token: string, + overrides?: Overrides + ): Promise; + + "transferTokenToNTV(address)"( + _token: string, + overrides?: Overrides + ): Promise; + + callStatic: { + BRIDGE_HUB(overrides?: CallOverrides): Promise; + + "BRIDGE_HUB()"(overrides?: CallOverrides): Promise; + + bridgeRecoverFailedTransfer( + _chainId: BigNumberish, + _depositSender: string, + _assetId: BytesLike, + _assetData: BytesLike, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: CallOverrides + ): Promise; + + "bridgeRecoverFailedTransfer(uint256,address,bytes32,bytes,bytes32,uint256,uint256,uint16,bytes32[])"( + _chainId: BigNumberish, + _depositSender: string, + _assetId: BytesLike, + _assetData: BytesLike, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: CallOverrides + ): Promise; + + bridgehubConfirmL2TransactionForwarded( + _chainId: BigNumberish, + _txDataHash: BytesLike, + _txHash: BytesLike, + overrides?: CallOverrides + ): Promise; + + "bridgehubConfirmL2TransactionForwarded(uint256,bytes32,bytes32)"( + _chainId: BigNumberish, + _txDataHash: BytesLike, + _txHash: BytesLike, + overrides?: CallOverrides + ): Promise; + + chainBalance( + _chainId: BigNumberish, + _token: string, + overrides?: CallOverrides + ): Promise; + + "chainBalance(uint256,address)"( + _chainId: BigNumberish, + _token: string, + overrides?: CallOverrides + ): Promise; + + claimFailedDeposit( + _chainId: BigNumberish, + _depositSender: string, + _l1Token: string, + _amount: BigNumberish, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: CallOverrides + ): Promise; + + "claimFailedDeposit(uint256,address,address,uint256,bytes32,uint256,uint256,uint16,bytes32[])"( + _chainId: BigNumberish, + _depositSender: string, + _l1Token: string, + _amount: BigNumberish, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: CallOverrides + ): Promise; + + claimFailedDepositLegacyErc20Bridge( + _depositSender: string, + _l1Token: string, + _amount: BigNumberish, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: CallOverrides + ): Promise; + + "claimFailedDepositLegacyErc20Bridge(address,address,uint256,bytes32,uint256,uint256,uint16,bytes32[])"( + _depositSender: string, + _l1Token: string, + _amount: BigNumberish, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: CallOverrides + ): Promise; + + depositHappened( + _chainId: BigNumberish, + _l2TxHash: BytesLike, + overrides?: CallOverrides + ): Promise; + + "depositHappened(uint256,bytes32)"( + _chainId: BigNumberish, + _l2TxHash: BytesLike, + overrides?: CallOverrides + ): Promise; + + finalizeDeposit( + _finalizeWithdrawalParams: { + chainId: BigNumberish; + l2BatchNumber: BigNumberish; + l2MessageIndex: BigNumberish; + l2Sender: string; + l2TxNumberInBatch: BigNumberish; + message: BytesLike; + merkleProof: BytesLike[]; + }, + overrides?: CallOverrides + ): Promise; + + "finalizeDeposit(tuple)"( + _finalizeWithdrawalParams: { + chainId: BigNumberish; + l2BatchNumber: BigNumberish; + l2MessageIndex: BigNumberish; + l2Sender: string; + l2TxNumberInBatch: BigNumberish; + message: BytesLike; + merkleProof: BytesLike[]; + }, + overrides?: CallOverrides + ): Promise; + + finalizeWithdrawal( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _message: BytesLike, + _merkleProof: BytesLike[], + overrides?: CallOverrides + ): Promise; + + "finalizeWithdrawal(uint256,uint256,uint256,uint16,bytes,bytes32[])"( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _message: BytesLike, + _merkleProof: BytesLike[], + overrides?: CallOverrides + ): Promise; + + isWithdrawalFinalized( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "isWithdrawalFinalized(uint256,uint256,uint256)"( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + overrides?: CallOverrides + ): Promise; + + l1NativeTokenVault(overrides?: CallOverrides): Promise; + + "l1NativeTokenVault()"(overrides?: CallOverrides): Promise; + + l2BridgeAddress( + _chainId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "l2BridgeAddress(uint256)"( + _chainId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + legacyBridge(overrides?: CallOverrides): Promise; + + "legacyBridge()"(overrides?: CallOverrides): Promise; + + nullifyChainBalanceByNTV( + _chainId: BigNumberish, + _token: string, + overrides?: CallOverrides + ): Promise; + + "nullifyChainBalanceByNTV(uint256,address)"( + _chainId: BigNumberish, + _token: string, + overrides?: CallOverrides + ): Promise; + + setL1AssetRouter( + _l1AssetRouter: string, + overrides?: CallOverrides + ): Promise; + + "setL1AssetRouter(address)"( + _l1AssetRouter: string, + overrides?: CallOverrides + ): Promise; + + setL1NativeTokenVault( + _nativeTokenVault: string, + overrides?: CallOverrides + ): Promise; + + "setL1NativeTokenVault(address)"( + _nativeTokenVault: string, + overrides?: CallOverrides + ): Promise; + + transferTokenToNTV( + _token: string, + overrides?: CallOverrides + ): Promise; + + "transferTokenToNTV(address)"( + _token: string, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + BridgehubDepositFinalized( + chainId: BigNumberish | null, + txDataHash: BytesLike | null, + l2DepositTxHash: BytesLike | null + ): EventFilter; + }; + + estimateGas: { + BRIDGE_HUB(overrides?: CallOverrides): Promise; + + "BRIDGE_HUB()"(overrides?: CallOverrides): Promise; + + bridgeRecoverFailedTransfer( + _chainId: BigNumberish, + _depositSender: string, + _assetId: BytesLike, + _assetData: BytesLike, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + "bridgeRecoverFailedTransfer(uint256,address,bytes32,bytes,bytes32,uint256,uint256,uint16,bytes32[])"( + _chainId: BigNumberish, + _depositSender: string, + _assetId: BytesLike, + _assetData: BytesLike, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + bridgehubConfirmL2TransactionForwarded( + _chainId: BigNumberish, + _txDataHash: BytesLike, + _txHash: BytesLike, + overrides?: Overrides + ): Promise; + + "bridgehubConfirmL2TransactionForwarded(uint256,bytes32,bytes32)"( + _chainId: BigNumberish, + _txDataHash: BytesLike, + _txHash: BytesLike, + overrides?: Overrides + ): Promise; + + chainBalance( + _chainId: BigNumberish, + _token: string, + overrides?: CallOverrides + ): Promise; + + "chainBalance(uint256,address)"( + _chainId: BigNumberish, + _token: string, + overrides?: CallOverrides + ): Promise; + + claimFailedDeposit( + _chainId: BigNumberish, + _depositSender: string, + _l1Token: string, + _amount: BigNumberish, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + "claimFailedDeposit(uint256,address,address,uint256,bytes32,uint256,uint256,uint16,bytes32[])"( + _chainId: BigNumberish, + _depositSender: string, + _l1Token: string, + _amount: BigNumberish, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + claimFailedDepositLegacyErc20Bridge( + _depositSender: string, + _l1Token: string, + _amount: BigNumberish, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + "claimFailedDepositLegacyErc20Bridge(address,address,uint256,bytes32,uint256,uint256,uint16,bytes32[])"( + _depositSender: string, + _l1Token: string, + _amount: BigNumberish, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + depositHappened( + _chainId: BigNumberish, + _l2TxHash: BytesLike, + overrides?: CallOverrides + ): Promise; + + "depositHappened(uint256,bytes32)"( + _chainId: BigNumberish, + _l2TxHash: BytesLike, + overrides?: CallOverrides + ): Promise; + + finalizeDeposit( + _finalizeWithdrawalParams: { + chainId: BigNumberish; + l2BatchNumber: BigNumberish; + l2MessageIndex: BigNumberish; + l2Sender: string; + l2TxNumberInBatch: BigNumberish; + message: BytesLike; + merkleProof: BytesLike[]; + }, + overrides?: Overrides + ): Promise; + + "finalizeDeposit(tuple)"( + _finalizeWithdrawalParams: { + chainId: BigNumberish; + l2BatchNumber: BigNumberish; + l2MessageIndex: BigNumberish; + l2Sender: string; + l2TxNumberInBatch: BigNumberish; + message: BytesLike; + merkleProof: BytesLike[]; + }, + overrides?: Overrides + ): Promise; + + finalizeWithdrawal( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _message: BytesLike, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + "finalizeWithdrawal(uint256,uint256,uint256,uint16,bytes,bytes32[])"( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _message: BytesLike, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + isWithdrawalFinalized( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "isWithdrawalFinalized(uint256,uint256,uint256)"( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + overrides?: CallOverrides + ): Promise; + + l1NativeTokenVault(overrides?: CallOverrides): Promise; + + "l1NativeTokenVault()"(overrides?: CallOverrides): Promise; + + l2BridgeAddress( + _chainId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "l2BridgeAddress(uint256)"( + _chainId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + legacyBridge(overrides?: CallOverrides): Promise; + + "legacyBridge()"(overrides?: CallOverrides): Promise; + + nullifyChainBalanceByNTV( + _chainId: BigNumberish, + _token: string, + overrides?: Overrides + ): Promise; + + "nullifyChainBalanceByNTV(uint256,address)"( + _chainId: BigNumberish, + _token: string, + overrides?: Overrides + ): Promise; + + setL1AssetRouter( + _l1AssetRouter: string, + overrides?: Overrides + ): Promise; + + "setL1AssetRouter(address)"( + _l1AssetRouter: string, + overrides?: Overrides + ): Promise; + + setL1NativeTokenVault( + _nativeTokenVault: string, + overrides?: Overrides + ): Promise; + + "setL1NativeTokenVault(address)"( + _nativeTokenVault: string, + overrides?: Overrides + ): Promise; + + transferTokenToNTV( + _token: string, + overrides?: Overrides + ): Promise; + + "transferTokenToNTV(address)"( + _token: string, + overrides?: Overrides + ): Promise; + }; + + populateTransaction: { + BRIDGE_HUB(overrides?: CallOverrides): Promise; + + "BRIDGE_HUB()"(overrides?: CallOverrides): Promise; + + bridgeRecoverFailedTransfer( + _chainId: BigNumberish, + _depositSender: string, + _assetId: BytesLike, + _assetData: BytesLike, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + "bridgeRecoverFailedTransfer(uint256,address,bytes32,bytes,bytes32,uint256,uint256,uint16,bytes32[])"( + _chainId: BigNumberish, + _depositSender: string, + _assetId: BytesLike, + _assetData: BytesLike, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + bridgehubConfirmL2TransactionForwarded( + _chainId: BigNumberish, + _txDataHash: BytesLike, + _txHash: BytesLike, + overrides?: Overrides + ): Promise; + + "bridgehubConfirmL2TransactionForwarded(uint256,bytes32,bytes32)"( + _chainId: BigNumberish, + _txDataHash: BytesLike, + _txHash: BytesLike, + overrides?: Overrides + ): Promise; + + chainBalance( + _chainId: BigNumberish, + _token: string, + overrides?: CallOverrides + ): Promise; + + "chainBalance(uint256,address)"( + _chainId: BigNumberish, + _token: string, + overrides?: CallOverrides + ): Promise; + + claimFailedDeposit( + _chainId: BigNumberish, + _depositSender: string, + _l1Token: string, + _amount: BigNumberish, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + "claimFailedDeposit(uint256,address,address,uint256,bytes32,uint256,uint256,uint16,bytes32[])"( + _chainId: BigNumberish, + _depositSender: string, + _l1Token: string, + _amount: BigNumberish, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + claimFailedDepositLegacyErc20Bridge( + _depositSender: string, + _l1Token: string, + _amount: BigNumberish, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + "claimFailedDepositLegacyErc20Bridge(address,address,uint256,bytes32,uint256,uint256,uint16,bytes32[])"( + _depositSender: string, + _l1Token: string, + _amount: BigNumberish, + _l2TxHash: BytesLike, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + depositHappened( + _chainId: BigNumberish, + _l2TxHash: BytesLike, + overrides?: CallOverrides + ): Promise; + + "depositHappened(uint256,bytes32)"( + _chainId: BigNumberish, + _l2TxHash: BytesLike, + overrides?: CallOverrides + ): Promise; + + finalizeDeposit( + _finalizeWithdrawalParams: { + chainId: BigNumberish; + l2BatchNumber: BigNumberish; + l2MessageIndex: BigNumberish; + l2Sender: string; + l2TxNumberInBatch: BigNumberish; + message: BytesLike; + merkleProof: BytesLike[]; + }, + overrides?: Overrides + ): Promise; + + "finalizeDeposit(tuple)"( + _finalizeWithdrawalParams: { + chainId: BigNumberish; + l2BatchNumber: BigNumberish; + l2MessageIndex: BigNumberish; + l2Sender: string; + l2TxNumberInBatch: BigNumberish; + message: BytesLike; + merkleProof: BytesLike[]; + }, + overrides?: Overrides + ): Promise; + + finalizeWithdrawal( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _message: BytesLike, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + "finalizeWithdrawal(uint256,uint256,uint256,uint16,bytes,bytes32[])"( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + _l2TxNumberInBatch: BigNumberish, + _message: BytesLike, + _merkleProof: BytesLike[], + overrides?: Overrides + ): Promise; + + isWithdrawalFinalized( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "isWithdrawalFinalized(uint256,uint256,uint256)"( + _chainId: BigNumberish, + _l2BatchNumber: BigNumberish, + _l2MessageIndex: BigNumberish, + overrides?: CallOverrides + ): Promise; + + l1NativeTokenVault( + overrides?: CallOverrides + ): Promise; + + "l1NativeTokenVault()"( + overrides?: CallOverrides + ): Promise; + + l2BridgeAddress( + _chainId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "l2BridgeAddress(uint256)"( + _chainId: BigNumberish, + overrides?: CallOverrides + ): Promise; + + legacyBridge(overrides?: CallOverrides): Promise; + + "legacyBridge()"(overrides?: CallOverrides): Promise; + + nullifyChainBalanceByNTV( + _chainId: BigNumberish, + _token: string, + overrides?: Overrides + ): Promise; + + "nullifyChainBalanceByNTV(uint256,address)"( + _chainId: BigNumberish, + _token: string, + overrides?: Overrides + ): Promise; + + setL1AssetRouter( + _l1AssetRouter: string, + overrides?: Overrides + ): Promise; + + "setL1AssetRouter(address)"( + _l1AssetRouter: string, + overrides?: Overrides + ): Promise; + + setL1NativeTokenVault( + _nativeTokenVault: string, + overrides?: Overrides + ): Promise; + + "setL1NativeTokenVault(address)"( + _nativeTokenVault: string, + overrides?: Overrides + ): Promise; + + transferTokenToNTV( + _token: string, + overrides?: Overrides + ): Promise; + + "transferTokenToNTV(address)"( + _token: string, + overrides?: Overrides + ): Promise; + }; +} diff --git a/src/typechain/Il1NullifierFactory.ts b/src/typechain/Il1NullifierFactory.ts new file mode 100644 index 00000000..6511bd31 --- /dev/null +++ b/src/typechain/Il1NullifierFactory.ts @@ -0,0 +1,502 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer } from "ethers"; +import { Provider } from "@ethersproject/providers"; + +import type { Il1Nullifier } from "./Il1Nullifier"; + +export class Il1NullifierFactory { + static connect( + address: string, + signerOrProvider: Signer | Provider + ): Il1Nullifier { + return new Contract(address, _abi, signerOrProvider) as Il1Nullifier; + } +} + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + indexed: true, + internalType: "bytes32", + name: "txDataHash", + type: "bytes32", + }, + { + indexed: true, + internalType: "bytes32", + name: "l2DepositTxHash", + type: "bytes32", + }, + ], + name: "BridgehubDepositFinalized", + type: "event", + }, + { + inputs: [], + name: "BRIDGE_HUB", + outputs: [ + { + internalType: "contract IBridgehub", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "_chainId", + type: "uint256", + }, + { + internalType: "address", + name: "_depositSender", + type: "address", + }, + { + internalType: "bytes32", + name: "_assetId", + type: "bytes32", + }, + { + internalType: "bytes", + name: "_assetData", + type: "bytes", + }, + { + internalType: "bytes32", + name: "_l2TxHash", + type: "bytes32", + }, + { + internalType: "uint256", + name: "_l2BatchNumber", + type: "uint256", + }, + { + internalType: "uint256", + name: "_l2MessageIndex", + type: "uint256", + }, + { + internalType: "uint16", + name: "_l2TxNumberInBatch", + type: "uint16", + }, + { + internalType: "bytes32[]", + name: "_merkleProof", + type: "bytes32[]", + }, + ], + name: "bridgeRecoverFailedTransfer", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "_chainId", + type: "uint256", + }, + { + internalType: "bytes32", + name: "_txDataHash", + type: "bytes32", + }, + { + internalType: "bytes32", + name: "_txHash", + type: "bytes32", + }, + ], + name: "bridgehubConfirmL2TransactionForwarded", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "_chainId", + type: "uint256", + }, + { + internalType: "address", + name: "_token", + type: "address", + }, + ], + name: "chainBalance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "_chainId", + type: "uint256", + }, + { + internalType: "address", + name: "_depositSender", + type: "address", + }, + { + internalType: "address", + name: "_l1Token", + type: "address", + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256", + }, + { + internalType: "bytes32", + name: "_l2TxHash", + type: "bytes32", + }, + { + internalType: "uint256", + name: "_l2BatchNumber", + type: "uint256", + }, + { + internalType: "uint256", + name: "_l2MessageIndex", + type: "uint256", + }, + { + internalType: "uint16", + name: "_l2TxNumberInBatch", + type: "uint16", + }, + { + internalType: "bytes32[]", + name: "_merkleProof", + type: "bytes32[]", + }, + ], + name: "claimFailedDeposit", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_depositSender", + type: "address", + }, + { + internalType: "address", + name: "_l1Token", + type: "address", + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256", + }, + { + internalType: "bytes32", + name: "_l2TxHash", + type: "bytes32", + }, + { + internalType: "uint256", + name: "_l2BatchNumber", + type: "uint256", + }, + { + internalType: "uint256", + name: "_l2MessageIndex", + type: "uint256", + }, + { + internalType: "uint16", + name: "_l2TxNumberInBatch", + type: "uint16", + }, + { + internalType: "bytes32[]", + name: "_merkleProof", + type: "bytes32[]", + }, + ], + name: "claimFailedDepositLegacyErc20Bridge", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "_chainId", + type: "uint256", + }, + { + internalType: "bytes32", + name: "_l2TxHash", + type: "bytes32", + }, + ], + name: "depositHappened", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + components: [ + { + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + internalType: "uint256", + name: "l2BatchNumber", + type: "uint256", + }, + { + internalType: "uint256", + name: "l2MessageIndex", + type: "uint256", + }, + { + internalType: "address", + name: "l2Sender", + type: "address", + }, + { + internalType: "uint16", + name: "l2TxNumberInBatch", + type: "uint16", + }, + { + internalType: "bytes", + name: "message", + type: "bytes", + }, + { + internalType: "bytes32[]", + name: "merkleProof", + type: "bytes32[]", + }, + ], + internalType: "struct FinalizeL1DepositParams", + name: "_finalizeWithdrawalParams", + type: "tuple", + }, + ], + name: "finalizeDeposit", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "_chainId", + type: "uint256", + }, + { + internalType: "uint256", + name: "_l2BatchNumber", + type: "uint256", + }, + { + internalType: "uint256", + name: "_l2MessageIndex", + type: "uint256", + }, + { + internalType: "uint16", + name: "_l2TxNumberInBatch", + type: "uint16", + }, + { + internalType: "bytes", + name: "_message", + type: "bytes", + }, + { + internalType: "bytes32[]", + name: "_merkleProof", + type: "bytes32[]", + }, + ], + name: "finalizeWithdrawal", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "_chainId", + type: "uint256", + }, + { + internalType: "uint256", + name: "_l2BatchNumber", + type: "uint256", + }, + { + internalType: "uint256", + name: "_l2MessageIndex", + type: "uint256", + }, + ], + name: "isWithdrawalFinalized", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "l1NativeTokenVault", + outputs: [ + { + internalType: "contract IL1NativeTokenVault", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "_chainId", + type: "uint256", + }, + ], + name: "l2BridgeAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "legacyBridge", + outputs: [ + { + internalType: "contract IL1ERC20Bridge", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "_chainId", + type: "uint256", + }, + { + internalType: "address", + name: "_token", + type: "address", + }, + ], + name: "nullifyChainBalanceByNTV", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_l1AssetRouter", + type: "address", + }, + ], + name: "setL1AssetRouter", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "contract IL1NativeTokenVault", + name: "_nativeTokenVault", + type: "address", + }, + ], + name: "setL1NativeTokenVault", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_token", + type: "address", + }, + ], + name: "transferTokenToNTV", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +]; diff --git a/src/typechain/Il2AssetRouter.d.ts b/src/typechain/Il2AssetRouter.d.ts new file mode 100644 index 00000000..a671917a --- /dev/null +++ b/src/typechain/Il2AssetRouter.d.ts @@ -0,0 +1,795 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, +} from "ethers"; +import { + Contract, + ContractTransaction, + Overrides, + PayableOverrides, + CallOverrides, +} from "@ethersproject/contracts"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; + +interface Il2AssetRouterInterface extends ethers.utils.Interface { + functions: { + "BRIDGE_HUB()": FunctionFragment; + "L1_ASSET_ROUTER()": FunctionFragment; + "assetHandlerAddress(bytes32)": FunctionFragment; + "finalizeDeposit(uint256,bytes32,bytes)": FunctionFragment; + "finalizeDepositLegacyBridge(address,address,address,uint256,bytes)": FunctionFragment; + "setAssetHandlerAddress(uint256,bytes32,address)": FunctionFragment; + "setAssetHandlerAddressThisChain(bytes32,address)": FunctionFragment; + "setLegacyTokenAssetHandler(bytes32)": FunctionFragment; + "withdraw(bytes32,bytes)": FunctionFragment; + "withdrawLegacyBridge(address,address,uint256,address)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "BRIDGE_HUB", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "L1_ASSET_ROUTER", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "assetHandlerAddress", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "finalizeDeposit", + values: [BigNumberish, BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "finalizeDepositLegacyBridge", + values: [string, string, string, BigNumberish, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "setAssetHandlerAddress", + values: [BigNumberish, BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "setAssetHandlerAddressThisChain", + values: [BytesLike, string] + ): string; + encodeFunctionData( + functionFragment: "setLegacyTokenAssetHandler", + values: [BytesLike] + ): string; + encodeFunctionData( + functionFragment: "withdraw", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "withdrawLegacyBridge", + values: [string, string, BigNumberish, string] + ): string; + + decodeFunctionResult(functionFragment: "BRIDGE_HUB", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "L1_ASSET_ROUTER", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "assetHandlerAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "finalizeDeposit", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "finalizeDepositLegacyBridge", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setAssetHandlerAddress", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setAssetHandlerAddressThisChain", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "setLegacyTokenAssetHandler", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "withdraw", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "withdrawLegacyBridge", + data: BytesLike + ): Result; + + events: { + "AssetDeploymentTrackerRegistered(bytes32,bytes32,address)": EventFragment; + "AssetHandlerRegistered(bytes32,address)": EventFragment; + "BridgehubDepositBaseTokenInitiated(uint256,address,bytes32,uint256)": EventFragment; + "BridgehubDepositInitiated(uint256,bytes32,address,bytes32,bytes)": EventFragment; + "BridgehubWithdrawalInitiated(uint256,address,bytes32,bytes32)": EventFragment; + "DepositFinalizedAssetRouter(uint256,bytes32,bytes)": EventFragment; + "WithdrawalInitiatedAssetRouter(uint256,address,bytes32,bytes)": EventFragment; + }; + + getEvent( + nameOrSignatureOrTopic: "AssetDeploymentTrackerRegistered" + ): EventFragment; + getEvent(nameOrSignatureOrTopic: "AssetHandlerRegistered"): EventFragment; + getEvent( + nameOrSignatureOrTopic: "BridgehubDepositBaseTokenInitiated" + ): EventFragment; + getEvent(nameOrSignatureOrTopic: "BridgehubDepositInitiated"): EventFragment; + getEvent( + nameOrSignatureOrTopic: "BridgehubWithdrawalInitiated" + ): EventFragment; + getEvent( + nameOrSignatureOrTopic: "DepositFinalizedAssetRouter" + ): EventFragment; + getEvent( + nameOrSignatureOrTopic: "WithdrawalInitiatedAssetRouter" + ): EventFragment; +} + +export class Il2AssetRouter extends Contract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): this; + once(event: EventFilter | string, listener: Listener): this; + addListener(eventName: EventFilter | string, listener: Listener): this; + removeAllListeners(eventName: EventFilter | string): this; + removeListener(eventName: any, listener: Listener): this; + + interface: Il2AssetRouterInterface; + + functions: { + BRIDGE_HUB(overrides?: CallOverrides): Promise<{ + 0: string; + }>; + + "BRIDGE_HUB()"(overrides?: CallOverrides): Promise<{ + 0: string; + }>; + + L1_ASSET_ROUTER(overrides?: CallOverrides): Promise<{ + 0: string; + }>; + + "L1_ASSET_ROUTER()"(overrides?: CallOverrides): Promise<{ + 0: string; + }>; + + assetHandlerAddress( + _assetId: BytesLike, + overrides?: CallOverrides + ): Promise<{ + 0: string; + }>; + + "assetHandlerAddress(bytes32)"( + _assetId: BytesLike, + overrides?: CallOverrides + ): Promise<{ + 0: string; + }>; + + finalizeDeposit( + _chainId: BigNumberish, + _assetId: BytesLike, + _transferData: BytesLike, + overrides?: PayableOverrides + ): Promise; + + "finalizeDeposit(uint256,bytes32,bytes)"( + _chainId: BigNumberish, + _assetId: BytesLike, + _transferData: BytesLike, + overrides?: PayableOverrides + ): Promise; + + finalizeDepositLegacyBridge( + _l1Sender: string, + _l2Receiver: string, + _l1Token: string, + _amount: BigNumberish, + _data: BytesLike, + overrides?: Overrides + ): Promise; + + "finalizeDepositLegacyBridge(address,address,address,uint256,bytes)"( + _l1Sender: string, + _l2Receiver: string, + _l1Token: string, + _amount: BigNumberish, + _data: BytesLike, + overrides?: Overrides + ): Promise; + + setAssetHandlerAddress( + _originChainId: BigNumberish, + _assetId: BytesLike, + _assetHandlerAddress: string, + overrides?: Overrides + ): Promise; + + "setAssetHandlerAddress(uint256,bytes32,address)"( + _originChainId: BigNumberish, + _assetId: BytesLike, + _assetHandlerAddress: string, + overrides?: Overrides + ): Promise; + + setAssetHandlerAddressThisChain( + _assetRegistrationData: BytesLike, + _assetHandlerAddress: string, + overrides?: Overrides + ): Promise; + + "setAssetHandlerAddressThisChain(bytes32,address)"( + _assetRegistrationData: BytesLike, + _assetHandlerAddress: string, + overrides?: Overrides + ): Promise; + + setLegacyTokenAssetHandler( + _assetId: BytesLike, + overrides?: Overrides + ): Promise; + + "setLegacyTokenAssetHandler(bytes32)"( + _assetId: BytesLike, + overrides?: Overrides + ): Promise; + + withdraw( + _assetId: BytesLike, + _transferData: BytesLike, + overrides?: Overrides + ): Promise; + + "withdraw(bytes32,bytes)"( + _assetId: BytesLike, + _transferData: BytesLike, + overrides?: Overrides + ): Promise; + + withdrawLegacyBridge( + _l1Receiver: string, + _l2Token: string, + _amount: BigNumberish, + _sender: string, + overrides?: Overrides + ): Promise; + + "withdrawLegacyBridge(address,address,uint256,address)"( + _l1Receiver: string, + _l2Token: string, + _amount: BigNumberish, + _sender: string, + overrides?: Overrides + ): Promise; + }; + + BRIDGE_HUB(overrides?: CallOverrides): Promise; + + "BRIDGE_HUB()"(overrides?: CallOverrides): Promise; + + L1_ASSET_ROUTER(overrides?: CallOverrides): Promise; + + "L1_ASSET_ROUTER()"(overrides?: CallOverrides): Promise; + + assetHandlerAddress( + _assetId: BytesLike, + overrides?: CallOverrides + ): Promise; + + "assetHandlerAddress(bytes32)"( + _assetId: BytesLike, + overrides?: CallOverrides + ): Promise; + + finalizeDeposit( + _chainId: BigNumberish, + _assetId: BytesLike, + _transferData: BytesLike, + overrides?: PayableOverrides + ): Promise; + + "finalizeDeposit(uint256,bytes32,bytes)"( + _chainId: BigNumberish, + _assetId: BytesLike, + _transferData: BytesLike, + overrides?: PayableOverrides + ): Promise; + + finalizeDepositLegacyBridge( + _l1Sender: string, + _l2Receiver: string, + _l1Token: string, + _amount: BigNumberish, + _data: BytesLike, + overrides?: Overrides + ): Promise; + + "finalizeDepositLegacyBridge(address,address,address,uint256,bytes)"( + _l1Sender: string, + _l2Receiver: string, + _l1Token: string, + _amount: BigNumberish, + _data: BytesLike, + overrides?: Overrides + ): Promise; + + setAssetHandlerAddress( + _originChainId: BigNumberish, + _assetId: BytesLike, + _assetHandlerAddress: string, + overrides?: Overrides + ): Promise; + + "setAssetHandlerAddress(uint256,bytes32,address)"( + _originChainId: BigNumberish, + _assetId: BytesLike, + _assetHandlerAddress: string, + overrides?: Overrides + ): Promise; + + setAssetHandlerAddressThisChain( + _assetRegistrationData: BytesLike, + _assetHandlerAddress: string, + overrides?: Overrides + ): Promise; + + "setAssetHandlerAddressThisChain(bytes32,address)"( + _assetRegistrationData: BytesLike, + _assetHandlerAddress: string, + overrides?: Overrides + ): Promise; + + setLegacyTokenAssetHandler( + _assetId: BytesLike, + overrides?: Overrides + ): Promise; + + "setLegacyTokenAssetHandler(bytes32)"( + _assetId: BytesLike, + overrides?: Overrides + ): Promise; + + withdraw( + _assetId: BytesLike, + _transferData: BytesLike, + overrides?: Overrides + ): Promise; + + "withdraw(bytes32,bytes)"( + _assetId: BytesLike, + _transferData: BytesLike, + overrides?: Overrides + ): Promise; + + withdrawLegacyBridge( + _l1Receiver: string, + _l2Token: string, + _amount: BigNumberish, + _sender: string, + overrides?: Overrides + ): Promise; + + "withdrawLegacyBridge(address,address,uint256,address)"( + _l1Receiver: string, + _l2Token: string, + _amount: BigNumberish, + _sender: string, + overrides?: Overrides + ): Promise; + + callStatic: { + BRIDGE_HUB(overrides?: CallOverrides): Promise; + + "BRIDGE_HUB()"(overrides?: CallOverrides): Promise; + + L1_ASSET_ROUTER(overrides?: CallOverrides): Promise; + + "L1_ASSET_ROUTER()"(overrides?: CallOverrides): Promise; + + assetHandlerAddress( + _assetId: BytesLike, + overrides?: CallOverrides + ): Promise; + + "assetHandlerAddress(bytes32)"( + _assetId: BytesLike, + overrides?: CallOverrides + ): Promise; + + finalizeDeposit( + _chainId: BigNumberish, + _assetId: BytesLike, + _transferData: BytesLike, + overrides?: CallOverrides + ): Promise; + + "finalizeDeposit(uint256,bytes32,bytes)"( + _chainId: BigNumberish, + _assetId: BytesLike, + _transferData: BytesLike, + overrides?: CallOverrides + ): Promise; + + finalizeDepositLegacyBridge( + _l1Sender: string, + _l2Receiver: string, + _l1Token: string, + _amount: BigNumberish, + _data: BytesLike, + overrides?: CallOverrides + ): Promise; + + "finalizeDepositLegacyBridge(address,address,address,uint256,bytes)"( + _l1Sender: string, + _l2Receiver: string, + _l1Token: string, + _amount: BigNumberish, + _data: BytesLike, + overrides?: CallOverrides + ): Promise; + + setAssetHandlerAddress( + _originChainId: BigNumberish, + _assetId: BytesLike, + _assetHandlerAddress: string, + overrides?: CallOverrides + ): Promise; + + "setAssetHandlerAddress(uint256,bytes32,address)"( + _originChainId: BigNumberish, + _assetId: BytesLike, + _assetHandlerAddress: string, + overrides?: CallOverrides + ): Promise; + + setAssetHandlerAddressThisChain( + _assetRegistrationData: BytesLike, + _assetHandlerAddress: string, + overrides?: CallOverrides + ): Promise; + + "setAssetHandlerAddressThisChain(bytes32,address)"( + _assetRegistrationData: BytesLike, + _assetHandlerAddress: string, + overrides?: CallOverrides + ): Promise; + + setLegacyTokenAssetHandler( + _assetId: BytesLike, + overrides?: CallOverrides + ): Promise; + + "setLegacyTokenAssetHandler(bytes32)"( + _assetId: BytesLike, + overrides?: CallOverrides + ): Promise; + + withdraw( + _assetId: BytesLike, + _transferData: BytesLike, + overrides?: CallOverrides + ): Promise; + + "withdraw(bytes32,bytes)"( + _assetId: BytesLike, + _transferData: BytesLike, + overrides?: CallOverrides + ): Promise; + + withdrawLegacyBridge( + _l1Receiver: string, + _l2Token: string, + _amount: BigNumberish, + _sender: string, + overrides?: CallOverrides + ): Promise; + + "withdrawLegacyBridge(address,address,uint256,address)"( + _l1Receiver: string, + _l2Token: string, + _amount: BigNumberish, + _sender: string, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + AssetDeploymentTrackerRegistered( + assetId: BytesLike | null, + additionalData: BytesLike | null, + assetDeploymentTracker: null + ): EventFilter; + + AssetHandlerRegistered( + assetId: BytesLike | null, + _assetHandlerAddress: string | null + ): EventFilter; + + BridgehubDepositBaseTokenInitiated( + chainId: BigNumberish | null, + from: string | null, + assetId: null, + amount: null + ): EventFilter; + + BridgehubDepositInitiated( + chainId: BigNumberish | null, + txDataHash: BytesLike | null, + from: string | null, + assetId: null, + bridgeMintCalldata: null + ): EventFilter; + + BridgehubWithdrawalInitiated( + chainId: null, + sender: string | null, + assetId: BytesLike | null, + assetDataHash: null + ): EventFilter; + + DepositFinalizedAssetRouter( + chainId: BigNumberish | null, + assetId: BytesLike | null, + assetData: null + ): EventFilter; + + WithdrawalInitiatedAssetRouter( + chainId: null, + l2Sender: string | null, + assetId: BytesLike | null, + assetData: null + ): EventFilter; + }; + + estimateGas: { + BRIDGE_HUB(overrides?: CallOverrides): Promise; + + "BRIDGE_HUB()"(overrides?: CallOverrides): Promise; + + L1_ASSET_ROUTER(overrides?: CallOverrides): Promise; + + "L1_ASSET_ROUTER()"(overrides?: CallOverrides): Promise; + + assetHandlerAddress( + _assetId: BytesLike, + overrides?: CallOverrides + ): Promise; + + "assetHandlerAddress(bytes32)"( + _assetId: BytesLike, + overrides?: CallOverrides + ): Promise; + + finalizeDeposit( + _chainId: BigNumberish, + _assetId: BytesLike, + _transferData: BytesLike, + overrides?: PayableOverrides + ): Promise; + + "finalizeDeposit(uint256,bytes32,bytes)"( + _chainId: BigNumberish, + _assetId: BytesLike, + _transferData: BytesLike, + overrides?: PayableOverrides + ): Promise; + + finalizeDepositLegacyBridge( + _l1Sender: string, + _l2Receiver: string, + _l1Token: string, + _amount: BigNumberish, + _data: BytesLike, + overrides?: Overrides + ): Promise; + + "finalizeDepositLegacyBridge(address,address,address,uint256,bytes)"( + _l1Sender: string, + _l2Receiver: string, + _l1Token: string, + _amount: BigNumberish, + _data: BytesLike, + overrides?: Overrides + ): Promise; + + setAssetHandlerAddress( + _originChainId: BigNumberish, + _assetId: BytesLike, + _assetHandlerAddress: string, + overrides?: Overrides + ): Promise; + + "setAssetHandlerAddress(uint256,bytes32,address)"( + _originChainId: BigNumberish, + _assetId: BytesLike, + _assetHandlerAddress: string, + overrides?: Overrides + ): Promise; + + setAssetHandlerAddressThisChain( + _assetRegistrationData: BytesLike, + _assetHandlerAddress: string, + overrides?: Overrides + ): Promise; + + "setAssetHandlerAddressThisChain(bytes32,address)"( + _assetRegistrationData: BytesLike, + _assetHandlerAddress: string, + overrides?: Overrides + ): Promise; + + setLegacyTokenAssetHandler( + _assetId: BytesLike, + overrides?: Overrides + ): Promise; + + "setLegacyTokenAssetHandler(bytes32)"( + _assetId: BytesLike, + overrides?: Overrides + ): Promise; + + withdraw( + _assetId: BytesLike, + _transferData: BytesLike, + overrides?: Overrides + ): Promise; + + "withdraw(bytes32,bytes)"( + _assetId: BytesLike, + _transferData: BytesLike, + overrides?: Overrides + ): Promise; + + withdrawLegacyBridge( + _l1Receiver: string, + _l2Token: string, + _amount: BigNumberish, + _sender: string, + overrides?: Overrides + ): Promise; + + "withdrawLegacyBridge(address,address,uint256,address)"( + _l1Receiver: string, + _l2Token: string, + _amount: BigNumberish, + _sender: string, + overrides?: Overrides + ): Promise; + }; + + populateTransaction: { + BRIDGE_HUB(overrides?: CallOverrides): Promise; + + "BRIDGE_HUB()"(overrides?: CallOverrides): Promise; + + L1_ASSET_ROUTER(overrides?: CallOverrides): Promise; + + "L1_ASSET_ROUTER()"( + overrides?: CallOverrides + ): Promise; + + assetHandlerAddress( + _assetId: BytesLike, + overrides?: CallOverrides + ): Promise; + + "assetHandlerAddress(bytes32)"( + _assetId: BytesLike, + overrides?: CallOverrides + ): Promise; + + finalizeDeposit( + _chainId: BigNumberish, + _assetId: BytesLike, + _transferData: BytesLike, + overrides?: PayableOverrides + ): Promise; + + "finalizeDeposit(uint256,bytes32,bytes)"( + _chainId: BigNumberish, + _assetId: BytesLike, + _transferData: BytesLike, + overrides?: PayableOverrides + ): Promise; + + finalizeDepositLegacyBridge( + _l1Sender: string, + _l2Receiver: string, + _l1Token: string, + _amount: BigNumberish, + _data: BytesLike, + overrides?: Overrides + ): Promise; + + "finalizeDepositLegacyBridge(address,address,address,uint256,bytes)"( + _l1Sender: string, + _l2Receiver: string, + _l1Token: string, + _amount: BigNumberish, + _data: BytesLike, + overrides?: Overrides + ): Promise; + + setAssetHandlerAddress( + _originChainId: BigNumberish, + _assetId: BytesLike, + _assetHandlerAddress: string, + overrides?: Overrides + ): Promise; + + "setAssetHandlerAddress(uint256,bytes32,address)"( + _originChainId: BigNumberish, + _assetId: BytesLike, + _assetHandlerAddress: string, + overrides?: Overrides + ): Promise; + + setAssetHandlerAddressThisChain( + _assetRegistrationData: BytesLike, + _assetHandlerAddress: string, + overrides?: Overrides + ): Promise; + + "setAssetHandlerAddressThisChain(bytes32,address)"( + _assetRegistrationData: BytesLike, + _assetHandlerAddress: string, + overrides?: Overrides + ): Promise; + + setLegacyTokenAssetHandler( + _assetId: BytesLike, + overrides?: Overrides + ): Promise; + + "setLegacyTokenAssetHandler(bytes32)"( + _assetId: BytesLike, + overrides?: Overrides + ): Promise; + + withdraw( + _assetId: BytesLike, + _transferData: BytesLike, + overrides?: Overrides + ): Promise; + + "withdraw(bytes32,bytes)"( + _assetId: BytesLike, + _transferData: BytesLike, + overrides?: Overrides + ): Promise; + + withdrawLegacyBridge( + _l1Receiver: string, + _l2Token: string, + _amount: BigNumberish, + _sender: string, + overrides?: Overrides + ): Promise; + + "withdrawLegacyBridge(address,address,uint256,address)"( + _l1Receiver: string, + _l2Token: string, + _amount: BigNumberish, + _sender: string, + overrides?: Overrides + ): Promise; + }; +} diff --git a/src/typechain/Il2AssetRouterFactory.ts b/src/typechain/Il2AssetRouterFactory.ts new file mode 100644 index 00000000..2f8a011a --- /dev/null +++ b/src/typechain/Il2AssetRouterFactory.ts @@ -0,0 +1,426 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer } from "ethers"; +import { Provider } from "@ethersproject/providers"; + +import type { Il2AssetRouter } from "./Il2AssetRouter"; + +export class Il2AssetRouterFactory { + static connect( + address: string, + signerOrProvider: Signer | Provider + ): Il2AssetRouter { + return new Contract(address, _abi, signerOrProvider) as Il2AssetRouter; + } +} + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "assetId", + type: "bytes32", + }, + { + indexed: true, + internalType: "bytes32", + name: "additionalData", + type: "bytes32", + }, + { + indexed: false, + internalType: "address", + name: "assetDeploymentTracker", + type: "address", + }, + ], + name: "AssetDeploymentTrackerRegistered", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "assetId", + type: "bytes32", + }, + { + indexed: true, + internalType: "address", + name: "_assetHandlerAddress", + type: "address", + }, + ], + name: "AssetHandlerRegistered", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: false, + internalType: "bytes32", + name: "assetId", + type: "bytes32", + }, + { + indexed: false, + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "BridgehubDepositBaseTokenInitiated", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + indexed: true, + internalType: "bytes32", + name: "txDataHash", + type: "bytes32", + }, + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: false, + internalType: "bytes32", + name: "assetId", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes", + name: "bridgeMintCalldata", + type: "bytes", + }, + ], + name: "BridgehubDepositInitiated", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + indexed: true, + internalType: "address", + name: "sender", + type: "address", + }, + { + indexed: true, + internalType: "bytes32", + name: "assetId", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes32", + name: "assetDataHash", + type: "bytes32", + }, + ], + name: "BridgehubWithdrawalInitiated", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + indexed: true, + internalType: "bytes32", + name: "assetId", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes", + name: "assetData", + type: "bytes", + }, + ], + name: "DepositFinalizedAssetRouter", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "chainId", + type: "uint256", + }, + { + indexed: true, + internalType: "address", + name: "l2Sender", + type: "address", + }, + { + indexed: true, + internalType: "bytes32", + name: "assetId", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes", + name: "assetData", + type: "bytes", + }, + ], + name: "WithdrawalInitiatedAssetRouter", + type: "event", + }, + { + inputs: [], + name: "BRIDGE_HUB", + outputs: [ + { + internalType: "contract IBridgehub", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "L1_ASSET_ROUTER", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_assetId", + type: "bytes32", + }, + ], + name: "assetHandlerAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "_chainId", + type: "uint256", + }, + { + internalType: "bytes32", + name: "_assetId", + type: "bytes32", + }, + { + internalType: "bytes", + name: "_transferData", + type: "bytes", + }, + ], + name: "finalizeDeposit", + outputs: [], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_l1Sender", + type: "address", + }, + { + internalType: "address", + name: "_l2Receiver", + type: "address", + }, + { + internalType: "address", + name: "_l1Token", + type: "address", + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256", + }, + { + internalType: "bytes", + name: "_data", + type: "bytes", + }, + ], + name: "finalizeDepositLegacyBridge", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "_originChainId", + type: "uint256", + }, + { + internalType: "bytes32", + name: "_assetId", + type: "bytes32", + }, + { + internalType: "address", + name: "_assetHandlerAddress", + type: "address", + }, + ], + name: "setAssetHandlerAddress", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_assetRegistrationData", + type: "bytes32", + }, + { + internalType: "address", + name: "_assetHandlerAddress", + type: "address", + }, + ], + name: "setAssetHandlerAddressThisChain", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_assetId", + type: "bytes32", + }, + ], + name: "setLegacyTokenAssetHandler", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "_assetId", + type: "bytes32", + }, + { + internalType: "bytes", + name: "_transferData", + type: "bytes", + }, + ], + name: "withdraw", + outputs: [ + { + internalType: "bytes32", + name: "", + type: "bytes32", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "_l1Receiver", + type: "address", + }, + { + internalType: "address", + name: "_l2Token", + type: "address", + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256", + }, + { + internalType: "address", + name: "_sender", + type: "address", + }, + ], + name: "withdrawLegacyBridge", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +]; diff --git a/src/typechain/L2InteropRootStorage.d.ts b/src/typechain/L2InteropRootStorage.d.ts new file mode 100644 index 00000000..3fd08ab9 --- /dev/null +++ b/src/typechain/L2InteropRootStorage.d.ts @@ -0,0 +1,218 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, +} from "ethers"; +import { + Contract, + ContractTransaction, + Overrides, + CallOverrides, +} from "@ethersproject/contracts"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; + +interface L2InteropRootStorageInterface extends ethers.utils.Interface { + functions: { + "addInteropRoot(uint256,uint256,bytes32[])": FunctionFragment; + "interopRoots(uint256,uint256)": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "addInteropRoot", + values: [BigNumberish, BigNumberish, BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "interopRoots", + values: [BigNumberish, BigNumberish] + ): string; + + decodeFunctionResult( + functionFragment: "addInteropRoot", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "interopRoots", + data: BytesLike + ): Result; + + events: { + "InteropRootAdded(uint256,uint256,bytes32[])": EventFragment; + }; + + getEvent(nameOrSignatureOrTopic: "InteropRootAdded"): EventFragment; +} + +export class L2InteropRootStorage extends Contract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): this; + once(event: EventFilter | string, listener: Listener): this; + addListener(eventName: EventFilter | string, listener: Listener): this; + removeAllListeners(eventName: EventFilter | string): this; + removeListener(eventName: any, listener: Listener): this; + + interface: L2InteropRootStorageInterface; + + functions: { + addInteropRoot( + chainId: BigNumberish, + blockOrBatchNumber: BigNumberish, + sides: BytesLike[], + overrides?: Overrides + ): Promise; + + "addInteropRoot(uint256,uint256,bytes32[])"( + chainId: BigNumberish, + blockOrBatchNumber: BigNumberish, + sides: BytesLike[], + overrides?: Overrides + ): Promise; + + interopRoots( + chainId: BigNumberish, + blockOrBatchNumber: BigNumberish, + overrides?: CallOverrides + ): Promise<{ + interopRoot: string; + 0: string; + }>; + + "interopRoots(uint256,uint256)"( + chainId: BigNumberish, + blockOrBatchNumber: BigNumberish, + overrides?: CallOverrides + ): Promise<{ + interopRoot: string; + 0: string; + }>; + }; + + addInteropRoot( + chainId: BigNumberish, + blockOrBatchNumber: BigNumberish, + sides: BytesLike[], + overrides?: Overrides + ): Promise; + + "addInteropRoot(uint256,uint256,bytes32[])"( + chainId: BigNumberish, + blockOrBatchNumber: BigNumberish, + sides: BytesLike[], + overrides?: Overrides + ): Promise; + + interopRoots( + chainId: BigNumberish, + blockOrBatchNumber: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "interopRoots(uint256,uint256)"( + chainId: BigNumberish, + blockOrBatchNumber: BigNumberish, + overrides?: CallOverrides + ): Promise; + + callStatic: { + addInteropRoot( + chainId: BigNumberish, + blockOrBatchNumber: BigNumberish, + sides: BytesLike[], + overrides?: CallOverrides + ): Promise; + + "addInteropRoot(uint256,uint256,bytes32[])"( + chainId: BigNumberish, + blockOrBatchNumber: BigNumberish, + sides: BytesLike[], + overrides?: CallOverrides + ): Promise; + + interopRoots( + chainId: BigNumberish, + blockOrBatchNumber: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "interopRoots(uint256,uint256)"( + chainId: BigNumberish, + blockOrBatchNumber: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + filters: { + InteropRootAdded( + chainId: BigNumberish | null, + blockNumber: BigNumberish | null, + sides: null + ): EventFilter; + }; + + estimateGas: { + addInteropRoot( + chainId: BigNumberish, + blockOrBatchNumber: BigNumberish, + sides: BytesLike[], + overrides?: Overrides + ): Promise; + + "addInteropRoot(uint256,uint256,bytes32[])"( + chainId: BigNumberish, + blockOrBatchNumber: BigNumberish, + sides: BytesLike[], + overrides?: Overrides + ): Promise; + + interopRoots( + chainId: BigNumberish, + blockOrBatchNumber: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "interopRoots(uint256,uint256)"( + chainId: BigNumberish, + blockOrBatchNumber: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + addInteropRoot( + chainId: BigNumberish, + blockOrBatchNumber: BigNumberish, + sides: BytesLike[], + overrides?: Overrides + ): Promise; + + "addInteropRoot(uint256,uint256,bytes32[])"( + chainId: BigNumberish, + blockOrBatchNumber: BigNumberish, + sides: BytesLike[], + overrides?: Overrides + ): Promise; + + interopRoots( + chainId: BigNumberish, + blockOrBatchNumber: BigNumberish, + overrides?: CallOverrides + ): Promise; + + "interopRoots(uint256,uint256)"( + chainId: BigNumberish, + blockOrBatchNumber: BigNumberish, + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/src/typechain/L2InteropRootStorageFactory.ts b/src/typechain/L2InteropRootStorageFactory.ts new file mode 100644 index 00000000..75c0bfd0 --- /dev/null +++ b/src/typechain/L2InteropRootStorageFactory.ts @@ -0,0 +1,116 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer } from "ethers"; +import { Provider } from "@ethersproject/providers"; + +import type { L2InteropRootStorage } from "./L2InteropRootStorage"; + +export class L2InteropRootStorageFactory { + static connect( + address: string, + signerOrProvider: Signer | Provider + ): L2InteropRootStorage { + return new Contract( + address, + _abi, + signerOrProvider + ) as L2InteropRootStorage; + } +} + +const _abi = [ + { + type: "function", + name: "addInteropRoot", + inputs: [ + { + name: "chainId", + type: "uint256", + internalType: "uint256", + }, + { + name: "blockOrBatchNumber", + type: "uint256", + internalType: "uint256", + }, + { + name: "sides", + type: "bytes32[]", + internalType: "bytes32[]", + }, + ], + outputs: [], + stateMutability: "nonpayable", + }, + { + type: "function", + name: "interopRoots", + inputs: [ + { + name: "chainId", + type: "uint256", + internalType: "uint256", + }, + { + name: "blockOrBatchNumber", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "interopRoot", + type: "bytes32", + internalType: "bytes32", + }, + ], + stateMutability: "view", + }, + { + type: "event", + name: "InteropRootAdded", + inputs: [ + { + name: "chainId", + type: "uint256", + indexed: true, + internalType: "uint256", + }, + { + name: "blockNumber", + type: "uint256", + indexed: true, + internalType: "uint256", + }, + { + name: "sides", + type: "bytes32[]", + indexed: false, + internalType: "bytes32[]", + }, + ], + anonymous: false, + }, + { + type: "error", + name: "CallerMustBeBootloader", + inputs: [], + }, + { + type: "error", + name: "InteropRootAlreadyExists", + inputs: [], + }, + { + type: "error", + name: "MessageRootIsZero", + inputs: [], + }, + { + type: "error", + name: "SidesLengthNotOne", + inputs: [], + }, +]; diff --git a/src/typechain/L2MessageVerification.d.ts b/src/typechain/L2MessageVerification.d.ts new file mode 100644 index 00000000..93209fae --- /dev/null +++ b/src/typechain/L2MessageVerification.d.ts @@ -0,0 +1,491 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { + ethers, + EventFilter, + Signer, + BigNumber, + BigNumberish, + PopulatedTransaction, +} from "ethers"; +import { + Contract, + ContractTransaction, + CallOverrides, +} from "@ethersproject/contracts"; +import { BytesLike } from "@ethersproject/bytes"; +import { Listener, Provider } from "@ethersproject/providers"; +import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi"; + +interface L2MessageVerificationInterface extends ethers.utils.Interface { + functions: { + "proveL2LeafInclusionShared(uint256,uint256,uint256,bytes32,bytes32[])": FunctionFragment; + "proveL2LogInclusionShared(uint256,uint256,uint256,tuple,bytes32[])": FunctionFragment; + "proveL2MessageInclusionShared(uint256,uint256,uint256,tuple,bytes32[])": FunctionFragment; + }; + + encodeFunctionData( + functionFragment: "proveL2LeafInclusionShared", + values: [BigNumberish, BigNumberish, BigNumberish, BytesLike, BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "proveL2LogInclusionShared", + values: [ + BigNumberish, + BigNumberish, + BigNumberish, + { + l2ShardId: BigNumberish; + isService: boolean; + txNumberInBatch: BigNumberish; + sender: string; + key: BytesLike; + value: BytesLike; + }, + BytesLike[] + ] + ): string; + encodeFunctionData( + functionFragment: "proveL2MessageInclusionShared", + values: [ + BigNumberish, + BigNumberish, + BigNumberish, + { txNumberInBatch: BigNumberish; sender: string; data: BytesLike }, + BytesLike[] + ] + ): string; + + decodeFunctionResult( + functionFragment: "proveL2LeafInclusionShared", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "proveL2LogInclusionShared", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "proveL2MessageInclusionShared", + data: BytesLike + ): Result; + + events: {}; +} + +export class L2MessageVerification extends Contract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): this; + once(event: EventFilter | string, listener: Listener): this; + addListener(eventName: EventFilter | string, listener: Listener): this; + removeAllListeners(eventName: EventFilter | string): this; + removeListener(eventName: any, listener: Listener): this; + + interface: L2MessageVerificationInterface; + + functions: { + proveL2LeafInclusionShared( + _chainId: BigNumberish, + _blockOrBatchNumber: BigNumberish, + _leafProofMask: BigNumberish, + _leaf: BytesLike, + _proof: BytesLike[], + overrides?: CallOverrides + ): Promise<{ + 0: boolean; + }>; + + "proveL2LeafInclusionShared(uint256,uint256,uint256,bytes32,bytes32[])"( + _chainId: BigNumberish, + _blockOrBatchNumber: BigNumberish, + _leafProofMask: BigNumberish, + _leaf: BytesLike, + _proof: BytesLike[], + overrides?: CallOverrides + ): Promise<{ + 0: boolean; + }>; + + proveL2LogInclusionShared( + _chainId: BigNumberish, + _blockOrBatchNumber: BigNumberish, + _index: BigNumberish, + _log: { + l2ShardId: BigNumberish; + isService: boolean; + txNumberInBatch: BigNumberish; + sender: string; + key: BytesLike; + value: BytesLike; + }, + _proof: BytesLike[], + overrides?: CallOverrides + ): Promise<{ + 0: boolean; + }>; + + "proveL2LogInclusionShared(uint256,uint256,uint256,tuple,bytes32[])"( + _chainId: BigNumberish, + _blockOrBatchNumber: BigNumberish, + _index: BigNumberish, + _log: { + l2ShardId: BigNumberish; + isService: boolean; + txNumberInBatch: BigNumberish; + sender: string; + key: BytesLike; + value: BytesLike; + }, + _proof: BytesLike[], + overrides?: CallOverrides + ): Promise<{ + 0: boolean; + }>; + + proveL2MessageInclusionShared( + _chainId: BigNumberish, + _blockOrBatchNumber: BigNumberish, + _index: BigNumberish, + _message: { + txNumberInBatch: BigNumberish; + sender: string; + data: BytesLike; + }, + _proof: BytesLike[], + overrides?: CallOverrides + ): Promise<{ + 0: boolean; + }>; + + "proveL2MessageInclusionShared(uint256,uint256,uint256,tuple,bytes32[])"( + _chainId: BigNumberish, + _blockOrBatchNumber: BigNumberish, + _index: BigNumberish, + _message: { + txNumberInBatch: BigNumberish; + sender: string; + data: BytesLike; + }, + _proof: BytesLike[], + overrides?: CallOverrides + ): Promise<{ + 0: boolean; + }>; + }; + + proveL2LeafInclusionShared( + _chainId: BigNumberish, + _blockOrBatchNumber: BigNumberish, + _leafProofMask: BigNumberish, + _leaf: BytesLike, + _proof: BytesLike[], + overrides?: CallOverrides + ): Promise; + + "proveL2LeafInclusionShared(uint256,uint256,uint256,bytes32,bytes32[])"( + _chainId: BigNumberish, + _blockOrBatchNumber: BigNumberish, + _leafProofMask: BigNumberish, + _leaf: BytesLike, + _proof: BytesLike[], + overrides?: CallOverrides + ): Promise; + + proveL2LogInclusionShared( + _chainId: BigNumberish, + _blockOrBatchNumber: BigNumberish, + _index: BigNumberish, + _log: { + l2ShardId: BigNumberish; + isService: boolean; + txNumberInBatch: BigNumberish; + sender: string; + key: BytesLike; + value: BytesLike; + }, + _proof: BytesLike[], + overrides?: CallOverrides + ): Promise; + + "proveL2LogInclusionShared(uint256,uint256,uint256,tuple,bytes32[])"( + _chainId: BigNumberish, + _blockOrBatchNumber: BigNumberish, + _index: BigNumberish, + _log: { + l2ShardId: BigNumberish; + isService: boolean; + txNumberInBatch: BigNumberish; + sender: string; + key: BytesLike; + value: BytesLike; + }, + _proof: BytesLike[], + overrides?: CallOverrides + ): Promise; + + proveL2MessageInclusionShared( + _chainId: BigNumberish, + _blockOrBatchNumber: BigNumberish, + _index: BigNumberish, + _message: { + txNumberInBatch: BigNumberish; + sender: string; + data: BytesLike; + }, + _proof: BytesLike[], + overrides?: CallOverrides + ): Promise; + + "proveL2MessageInclusionShared(uint256,uint256,uint256,tuple,bytes32[])"( + _chainId: BigNumberish, + _blockOrBatchNumber: BigNumberish, + _index: BigNumberish, + _message: { + txNumberInBatch: BigNumberish; + sender: string; + data: BytesLike; + }, + _proof: BytesLike[], + overrides?: CallOverrides + ): Promise; + + callStatic: { + proveL2LeafInclusionShared( + _chainId: BigNumberish, + _blockOrBatchNumber: BigNumberish, + _leafProofMask: BigNumberish, + _leaf: BytesLike, + _proof: BytesLike[], + overrides?: CallOverrides + ): Promise; + + "proveL2LeafInclusionShared(uint256,uint256,uint256,bytes32,bytes32[])"( + _chainId: BigNumberish, + _blockOrBatchNumber: BigNumberish, + _leafProofMask: BigNumberish, + _leaf: BytesLike, + _proof: BytesLike[], + overrides?: CallOverrides + ): Promise; + + proveL2LogInclusionShared( + _chainId: BigNumberish, + _blockOrBatchNumber: BigNumberish, + _index: BigNumberish, + _log: { + l2ShardId: BigNumberish; + isService: boolean; + txNumberInBatch: BigNumberish; + sender: string; + key: BytesLike; + value: BytesLike; + }, + _proof: BytesLike[], + overrides?: CallOverrides + ): Promise; + + "proveL2LogInclusionShared(uint256,uint256,uint256,tuple,bytes32[])"( + _chainId: BigNumberish, + _blockOrBatchNumber: BigNumberish, + _index: BigNumberish, + _log: { + l2ShardId: BigNumberish; + isService: boolean; + txNumberInBatch: BigNumberish; + sender: string; + key: BytesLike; + value: BytesLike; + }, + _proof: BytesLike[], + overrides?: CallOverrides + ): Promise; + + proveL2MessageInclusionShared( + _chainId: BigNumberish, + _blockOrBatchNumber: BigNumberish, + _index: BigNumberish, + _message: { + txNumberInBatch: BigNumberish; + sender: string; + data: BytesLike; + }, + _proof: BytesLike[], + overrides?: CallOverrides + ): Promise; + + "proveL2MessageInclusionShared(uint256,uint256,uint256,tuple,bytes32[])"( + _chainId: BigNumberish, + _blockOrBatchNumber: BigNumberish, + _index: BigNumberish, + _message: { + txNumberInBatch: BigNumberish; + sender: string; + data: BytesLike; + }, + _proof: BytesLike[], + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + proveL2LeafInclusionShared( + _chainId: BigNumberish, + _blockOrBatchNumber: BigNumberish, + _leafProofMask: BigNumberish, + _leaf: BytesLike, + _proof: BytesLike[], + overrides?: CallOverrides + ): Promise; + + "proveL2LeafInclusionShared(uint256,uint256,uint256,bytes32,bytes32[])"( + _chainId: BigNumberish, + _blockOrBatchNumber: BigNumberish, + _leafProofMask: BigNumberish, + _leaf: BytesLike, + _proof: BytesLike[], + overrides?: CallOverrides + ): Promise; + + proveL2LogInclusionShared( + _chainId: BigNumberish, + _blockOrBatchNumber: BigNumberish, + _index: BigNumberish, + _log: { + l2ShardId: BigNumberish; + isService: boolean; + txNumberInBatch: BigNumberish; + sender: string; + key: BytesLike; + value: BytesLike; + }, + _proof: BytesLike[], + overrides?: CallOverrides + ): Promise; + + "proveL2LogInclusionShared(uint256,uint256,uint256,tuple,bytes32[])"( + _chainId: BigNumberish, + _blockOrBatchNumber: BigNumberish, + _index: BigNumberish, + _log: { + l2ShardId: BigNumberish; + isService: boolean; + txNumberInBatch: BigNumberish; + sender: string; + key: BytesLike; + value: BytesLike; + }, + _proof: BytesLike[], + overrides?: CallOverrides + ): Promise; + + proveL2MessageInclusionShared( + _chainId: BigNumberish, + _blockOrBatchNumber: BigNumberish, + _index: BigNumberish, + _message: { + txNumberInBatch: BigNumberish; + sender: string; + data: BytesLike; + }, + _proof: BytesLike[], + overrides?: CallOverrides + ): Promise; + + "proveL2MessageInclusionShared(uint256,uint256,uint256,tuple,bytes32[])"( + _chainId: BigNumberish, + _blockOrBatchNumber: BigNumberish, + _index: BigNumberish, + _message: { + txNumberInBatch: BigNumberish; + sender: string; + data: BytesLike; + }, + _proof: BytesLike[], + overrides?: CallOverrides + ): Promise; + }; + + populateTransaction: { + proveL2LeafInclusionShared( + _chainId: BigNumberish, + _blockOrBatchNumber: BigNumberish, + _leafProofMask: BigNumberish, + _leaf: BytesLike, + _proof: BytesLike[], + overrides?: CallOverrides + ): Promise; + + "proveL2LeafInclusionShared(uint256,uint256,uint256,bytes32,bytes32[])"( + _chainId: BigNumberish, + _blockOrBatchNumber: BigNumberish, + _leafProofMask: BigNumberish, + _leaf: BytesLike, + _proof: BytesLike[], + overrides?: CallOverrides + ): Promise; + + proveL2LogInclusionShared( + _chainId: BigNumberish, + _blockOrBatchNumber: BigNumberish, + _index: BigNumberish, + _log: { + l2ShardId: BigNumberish; + isService: boolean; + txNumberInBatch: BigNumberish; + sender: string; + key: BytesLike; + value: BytesLike; + }, + _proof: BytesLike[], + overrides?: CallOverrides + ): Promise; + + "proveL2LogInclusionShared(uint256,uint256,uint256,tuple,bytes32[])"( + _chainId: BigNumberish, + _blockOrBatchNumber: BigNumberish, + _index: BigNumberish, + _log: { + l2ShardId: BigNumberish; + isService: boolean; + txNumberInBatch: BigNumberish; + sender: string; + key: BytesLike; + value: BytesLike; + }, + _proof: BytesLike[], + overrides?: CallOverrides + ): Promise; + + proveL2MessageInclusionShared( + _chainId: BigNumberish, + _blockOrBatchNumber: BigNumberish, + _index: BigNumberish, + _message: { + txNumberInBatch: BigNumberish; + sender: string; + data: BytesLike; + }, + _proof: BytesLike[], + overrides?: CallOverrides + ): Promise; + + "proveL2MessageInclusionShared(uint256,uint256,uint256,tuple,bytes32[])"( + _chainId: BigNumberish, + _blockOrBatchNumber: BigNumberish, + _index: BigNumberish, + _message: { + txNumberInBatch: BigNumberish; + sender: string; + data: BytesLike; + }, + _proof: BytesLike[], + overrides?: CallOverrides + ): Promise; + }; +} diff --git a/src/typechain/L2MessageVerificationFactory.ts b/src/typechain/L2MessageVerificationFactory.ts new file mode 100644 index 00000000..4c8f038e --- /dev/null +++ b/src/typechain/L2MessageVerificationFactory.ts @@ -0,0 +1,226 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Signer } from "ethers"; +import { Provider } from "@ethersproject/providers"; + +import type { L2MessageVerification } from "./L2MessageVerification"; + +export class L2MessageVerificationFactory { + static connect( + address: string, + signerOrProvider: Signer | Provider + ): L2MessageVerification { + return new Contract( + address, + _abi, + signerOrProvider + ) as L2MessageVerification; + } +} + +const _abi = [ + { + type: "function", + name: "proveL2LeafInclusionShared", + inputs: [ + { + name: "_chainId", + type: "uint256", + internalType: "uint256", + }, + { + name: "_blockOrBatchNumber", + type: "uint256", + internalType: "uint256", + }, + { + name: "_leafProofMask", + type: "uint256", + internalType: "uint256", + }, + { + name: "_leaf", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "_proof", + type: "bytes32[]", + internalType: "bytes32[]", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "proveL2LogInclusionShared", + inputs: [ + { + name: "_chainId", + type: "uint256", + internalType: "uint256", + }, + { + name: "_blockOrBatchNumber", + type: "uint256", + internalType: "uint256", + }, + { + name: "_index", + type: "uint256", + internalType: "uint256", + }, + { + name: "_log", + type: "tuple", + internalType: "struct L2Log", + components: [ + { + name: "l2ShardId", + type: "uint8", + internalType: "uint8", + }, + { + name: "isService", + type: "bool", + internalType: "bool", + }, + { + name: "txNumberInBatch", + type: "uint16", + internalType: "uint16", + }, + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "key", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "value", + type: "bytes32", + internalType: "bytes32", + }, + ], + }, + { + name: "_proof", + type: "bytes32[]", + internalType: "bytes32[]", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "function", + name: "proveL2MessageInclusionShared", + inputs: [ + { + name: "_chainId", + type: "uint256", + internalType: "uint256", + }, + { + name: "_blockOrBatchNumber", + type: "uint256", + internalType: "uint256", + }, + { + name: "_index", + type: "uint256", + internalType: "uint256", + }, + { + name: "_message", + type: "tuple", + internalType: "struct L2Message", + components: [ + { + name: "txNumberInBatch", + type: "uint16", + internalType: "uint16", + }, + { + name: "sender", + type: "address", + internalType: "address", + }, + { + name: "data", + type: "bytes", + internalType: "bytes", + }, + ], + }, + { + name: "_proof", + type: "bytes32[]", + internalType: "bytes32[]", + }, + ], + outputs: [ + { + name: "", + type: "bool", + internalType: "bool", + }, + ], + stateMutability: "view", + }, + { + type: "error", + name: "HashedLogIsDefault", + inputs: [], + }, + { + type: "error", + name: "InvalidProofLengthForFinalNode", + inputs: [], + }, + { + type: "error", + name: "MerkleIndexOutOfBounds", + inputs: [], + }, + { + type: "error", + name: "MerklePathEmpty", + inputs: [], + }, + { + type: "error", + name: "MerklePathOutOfBounds", + inputs: [], + }, + { + type: "error", + name: "UnsupportedProofMetadataVersion", + inputs: [ + { + name: "metadataVersion", + type: "uint256", + internalType: "uint256", + }, + ], + }, +]; diff --git a/src/types.ts b/src/types.ts index 7db4dedd..72f3aeab 100644 --- a/src/types.ts +++ b/src/types.ts @@ -696,6 +696,21 @@ export interface SmartAccountSigner { transactionBuilder?: TransactionBuilder; } +/** + * Contains parameters for finalizing the L2->L1 deposit transaction. + * Pre V26 withdrawals were special kind of transaction, + * but starting from v26 any cross-chain token movement is called a deposit, regardless of direction + */ +export type FinalizeL1DepositParams = { + chainId: BigNumberish; + l2BatchNumber: BigNumberish; + l2MessageIndex: BigNumberish; + l2Sender: Address; + l2TxNumberInBatch: BigNumberish; + message: BytesLike; + merkleProof: BytesLike[]; +}; + /** * Gateway environment presets. * diff --git a/src/utils.ts b/src/utils.ts index 1954f8e2..d86ad398 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -177,6 +177,9 @@ export const ZERO_HASH = export const L1_TO_L2_ALIAS_OFFSET = '0x1111000000000000000000000000000000001111'; +export const L2_ASSET_ROUTER_ADDRESS: Address = + '0x0000000000000000000000000000000000010003'; + /** * The address of the L2 Message Verification. * @readonly