From 75f991e5e29fdf3908e8937bbf39e897fbcf3301 Mon Sep 17 00:00:00 2001 From: Paul <108695806+pxrl@users.noreply.github.com> Date: Fri, 20 Dec 2024 19:34:53 +0000 Subject: [PATCH] feat: Support Ink in AtomicWethDepositor --- contracts/AtomicWethDepositor.sol | 3 ++ deployments/mainnet/AtomicWethDepositor.json | 41 ++++++++++++------- .../68cb79cd539c6a9785b32ed27fb708b7.json | 21 ++++++++++ src/common/ContractAddresses.ts | 2 +- 4 files changed, 52 insertions(+), 15 deletions(-) create mode 100644 deployments/mainnet/solcInputs/68cb79cd539c6a9785b32ed27fb708b7.json diff --git a/contracts/AtomicWethDepositor.sol b/contracts/AtomicWethDepositor.sol index 2808bf81d..02fcc807f 100644 --- a/contracts/AtomicWethDepositor.sol +++ b/contracts/AtomicWethDepositor.sol @@ -49,6 +49,7 @@ contract AtomicWethDepositor { OvmL1Bridge public immutable modeL1Bridge = OvmL1Bridge(0x735aDBbE72226BD52e818E7181953f42E3b0FF21); OvmL1Bridge public immutable bobaL1Bridge = OvmL1Bridge(0xdc1664458d2f0B6090bEa60A8793A4E66c2F1c00); OvmL1Bridge public immutable baseL1Bridge = OvmL1Bridge(0x3154Cf16ccdb4C6d922629664174b904d80F2C35); + OvmL1Bridge public immutable inkL1Bridge = OvmL1Bridge(0x88FF1e5b602916615391F55854588EFcBB7663f0); OvmL1Bridge public immutable liskL1Bridge = OvmL1Bridge(0x2658723Bf70c7667De6B25F99fcce13A16D25d08); OvmL1Bridge public immutable redstoneL1Bridge = OvmL1Bridge(0xc473ca7E02af24c129c2eEf51F2aDf0411c1Df69); OvmL1Bridge public immutable blastL1Bridge = OvmL1Bridge(0x697402166Fbf2F22E970df8a6486Ef171dbfc524); @@ -75,6 +76,8 @@ contract AtomicWethDepositor { modeL1Bridge.depositETHTo{ value: amount }(to, l2Gas, ""); } else if (chainId == 480) { worldChainL1Bridge.depositETHTo{ value: amount }(to, l2Gas, ""); + } else if (chainId == 57073) { + inkL1Bridge.depositETHTo{ value: amount }(to, l2Gas, ""); } else if (chainId == 1135) { liskL1Bridge.depositETHTo{ value: amount }(to, l2Gas, ""); } else if (chainId == 81457) { diff --git a/deployments/mainnet/AtomicWethDepositor.json b/deployments/mainnet/AtomicWethDepositor.json index 39a63f12b..868ef9b3c 100644 --- a/deployments/mainnet/AtomicWethDepositor.json +++ b/deployments/mainnet/AtomicWethDepositor.json @@ -1,5 +1,5 @@ { - "address": "0xa679201903847f3723Dc88CA7530c8B665bC51a5", + "address": "0xb505EB8E884cA548508bd7806631b6C1BC25C1f8", "abi": [ { "anonymous": false, @@ -222,6 +222,19 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [], + "name": "inkL1Bridge", + "outputs": [ + { + "internalType": "contract OvmL1Bridge", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "lineaL1MessageService", @@ -357,26 +370,26 @@ "type": "receive" } ], - "transactionHash": "0xc357db947a4f937ca325e6246f6a6bcd972b4ad32ad2bcb66741f8f24b1b8ff0", + "transactionHash": "0x553f75e9b913cad6f61de7a7a139d8c5952862b7507bedd5608fe2199af17259", "receipt": { "to": null, "from": "0x9A8f92a830A5cB89a3816e3D267CB7791c16b04D", - "contractAddress": "0xa679201903847f3723Dc88CA7530c8B665bC51a5", - "transactionIndex": 158, - "gasUsed": "1379246", + "contractAddress": "0xb505EB8E884cA548508bd7806631b6C1BC25C1f8", + "transactionIndex": 74, + "gasUsed": "1440662", "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockHash": "0xbeddf54fffcd886bbc27d552bd71808d082946081f8bf53c058a429a8a0331ec", - "transactionHash": "0xc357db947a4f937ca325e6246f6a6bcd972b4ad32ad2bcb66741f8f24b1b8ff0", + "blockHash": "0x401d2640eeddb33dcac3878913c16e3f1319d4178f7baf1630f0a75ca0c10d98", + "transactionHash": "0x553f75e9b913cad6f61de7a7a139d8c5952862b7507bedd5608fe2199af17259", "logs": [], - "blockNumber": 20927440, - "cumulativeGasUsed": "14135373", + "blockNumber": 21445877, + "cumulativeGasUsed": "8180094", "status": 1, "byzantium": true }, "args": [], - "numDeployments": 9, - "solcInputHash": "0b9a38081e5f67aae8aeed6c044fb8c5", - "metadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LineaEthDepositInitiated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"OvmEthDepositInitiated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ZkSyncEthDepositInitiated\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"baseL1Bridge\",\"outputs\":[{\"internalType\":\"contract OvmL1Bridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blastL1Bridge\",\"outputs\":[{\"internalType\":\"contract OvmL1Bridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bobaL1Bridge\",\"outputs\":[{\"internalType\":\"contract OvmL1Bridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"bridgeWethToLinea\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"l2Gas\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"name\":\"bridgeWethToOvm\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"bridgeWethToPolygon\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"l2GasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"l2GasPerPubdataByteLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"refundRecipient\",\"type\":\"address\"}],\"name\":\"bridgeWethToZkSync\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lineaL1MessageService\",\"outputs\":[{\"internalType\":\"contract LineaL1MessageService\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"liskL1Bridge\",\"outputs\":[{\"internalType\":\"contract OvmL1Bridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"modeL1Bridge\",\"outputs\":[{\"internalType\":\"contract OvmL1Bridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"optimismL1Bridge\",\"outputs\":[{\"internalType\":\"contract OvmL1Bridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"polygonL1Bridge\",\"outputs\":[{\"internalType\":\"contract PolygonL1Bridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"redstoneL1Bridge\",\"outputs\":[{\"internalType\":\"contract OvmL1Bridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"weth\",\"outputs\":[{\"internalType\":\"contract Weth\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"worldChainL1Bridge\",\"outputs\":[{\"internalType\":\"contract OvmL1Bridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zkSyncL1Bridge\",\"outputs\":[{\"internalType\":\"contract ZkSyncL1Bridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zoraL1Bridge\",\"outputs\":[{\"internalType\":\"contract OvmL1Bridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Contract deployed on Ethereum helps relay bots atomically unwrap and bridge WETH over the canonical chain bridges for Optimism, Base, Boba, ZkSync, Linea, and Polygon. Needed as these chains only support bridging of ETH, not WETH.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/AtomicWethDepositor.sol\":\"AtomicWethDepositor\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000000},\"remappings\":[],\"viaIR\":true},\"sources\":{\"contracts/AtomicWethDepositor.sol\":{\"keccak256\":\"0x279a415c1fcf0365315770894547b175fb652c77f12627fa86a5ba290a91dbd7\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://05a980264232fb71de48253205b2d6c647c86b73fe677208f7597c97ad5ee7e9\",\"dweb:/ipfs/QmaCzsBFWC9unHJhRWhK35V1BaJfMUfT6iE4HboMxQMoSV\"]}},\"version\":1}", - "bytecode": "0x61022080604052346102475773c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26080527399c9fc46f92e8a1c0dec1b1747d010903e884be160a05273735adbbe72226bd52e818e7181953f42e3b0ff2160c05273dc1664458d2f0b6090bea60a8793a4e66c2f1c0060e05261010090733154cf16ccdb4c6d922629664174b904d80f2c358252610120732658723bf70c7667de6b25f99fcce13a16d25d08815261014073c473ca7e02af24c129c2eef51f2adf0411c1df69815261016073697402166fbf2f22e970df8a6486ef171dbfc524815261018073470458c91978d2d929704489ad730dc3e300111381526101a090733e2ea9b92b7e48a52296fd261dc26fd99528463182526101c09273a0c68c638235ee32657e8f720a23cec1bfc77c7784526101e0947332400084c286cf3e17e7b677ea9583e60a00032486526102009673d19d4b5d358258f05d7b411e21a1460d11b0876f8852611825998a61024c8b396080518a81816101c601528181610c1801528181610fb1015281816110270152611341015260a0518a818161029f01526109e2015260c0518a818161047b0152610df5015260e0518a818161085b015261172d0152518981816103ad0152610b2f01525188818161013301526105c301525187818161070c0152610b9e0152518681816106680152610e6401525185818161051f01526112380152518481816107b10152610f42015251838181610a510152610ce9015251828181610ed3015281816113010152818161143701526114f6015251818181610ac001526110f80152f35b5f80fdfe6080806040526004908136101561001d575b5050361561001b57005b005b5f915f3560e01c918263019f8e81146116e557508163128d5f681461125c5781632a8ecb13146111ed57816336918a9714610fd55781633fc8cef314610f665781634fbf95d714610ef75781635970eafa14610e8857816362c8eb5c14610e19578163645b6f1114610daa57828263b3d5ccc314610bc257508163b6865d6e14610b53578163b745c3f314610ae4578163c04b953414610a75578163c80dcc3814610a06578163d3cdc8f914610997578163e88650c41461015a575063f43873c4146100e95780610011565b3461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b80fd5b9050346109935760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261099357610193611751565b604435916024359163ffffffff8416840361038e57846064359473ffffffffffffffffffffffffffffffffffffffff93847f000000000000000000000000000000000000000000000000000000000000000016803b1561039d57604080517f23b872dd0000000000000000000000000000000000000000000000000000000081523384820190815230602082015291820189905290859082908190606001038183865af1908115610988578591610974575b5050803b1561039d578380916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528c888401525af1908115610969578491610951575b5050600a87036103a157847f00000000000000000000000000000000000000000000000000000000000000001691823b1561039d576103379285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b03925af180156103925761037a575b50505b60405192835216917fcde53d24289bf7d0b2baeea6140c533d8388fb574b055364d718f637bedea7a460203393a480f35b61038390611774565b61038e57845f610346565b8480fd5b6040513d84823e3d90fd5b8380fd5b612105870361046f57847f00000000000000000000000000000000000000000000000000000000000000001691823b1561039d576104459285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b03925af180156103925761045b575b5050610349565b61046490611774565b61038e57845f610454565b61868b870361051357847f00000000000000000000000000000000000000000000000000000000000000001691823b1561039d576104459285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b6101e087036105b757847f00000000000000000000000000000000000000000000000000000000000000001691823b1561039d576104459285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b61046f870361065b57847f00000000000000000000000000000000000000000000000000000000000000001691823b1561039d576104459285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b62013e31870361070057847f00000000000000000000000000000000000000000000000000000000000000001691823b1561039d576104459285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b6102b287036107a457847f00000000000000000000000000000000000000000000000000000000000000001691823b1561039d576104459285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b6276adf1870361084957847f00000000000000000000000000000000000000000000000000000000000000001691823b1561039d576104459285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b90915061012086036108f357908691847f00000000000000000000000000000000000000000000000000000000000000001691823b1561039d576104459285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b6064906020604051917f08c379a0000000000000000000000000000000000000000000000000000000008352820152601360248201527f496e76616c6964204f564d20636861696e4964000000000000000000000000006044820152fd5b61095a90611774565b61096557825f610292565b8280fd5b6040513d86823e3d90fd5b61097d90611774565b61039d57835f610245565b6040513d87823e3d90fd5b5080fd5b823461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b915034610da75760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610da757610bfb611751565b6024359073ffffffffffffffffffffffffffffffffffffffff90817f000000000000000000000000000000000000000000000000000000000000000016803b15610d6557604080517f23b872dd0000000000000000000000000000000000000000000000000000000081523387820190815230602082015291820186905290879082908190606001038183865af1908115610d9c578791610d88575b5050803b15610d65578580916024604051809481937f2e1a7d4d000000000000000000000000000000000000000000000000000000008352898b8401525af1908115610d7d578691610d69575b5050817f00000000000000000000000000000000000000000000000000000000000000001690813b15610d6557859360249260405196879586947f4faa8a2600000000000000000000000000000000000000000000000000000000865216908401525af1801561039257610d555750f35b610d5e90611774565b6101575780f35b8580fd5b610d7290611774565b61038e57845f610ce4565b6040513d88823e3d90fd5b610d9190611774565b610d6557855f610c97565b6040513d89823e3d90fd5b50fd5b823461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b905060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261099357611009611751565b826024359173ffffffffffffffffffffffffffffffffffffffff90817f000000000000000000000000000000000000000000000000000000000000000016803b1561039d57604080517f23b872dd0000000000000000000000000000000000000000000000000000000081523388820190815230602082015291820187905290859082908190606001038183865af19081156109885785916111d9575b5050803b1561039d578380916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528a8c8401525af19081156109695784916111c5575b5050817f0000000000000000000000000000000000000000000000000000000000000000169161112334866117b5565b833b1561038e57849260849160405195869485937f9f3ce55a00000000000000000000000000000000000000000000000000000000855216809a840152346024840152606060448401528560648401525af18015610392576111b1575b50506040519081527f61ed67a945fe5f4d777919629ad666c7e81d66dc5fbaf4c143edd000c15d67dd60203392a380f35b6111ba90611774565b61096557825f611180565b6111ce90611774565b61096557825f6110f3565b6111e290611774565b61039d57835f6110a6565b823461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b82346116795760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261167957611294611751565b602490604435906064359460843573ffffffffffffffffffffffffffffffffffffffff93848216809203611679576040517fb473318e0000000000000000000000000000000000000000000000000000000081523a848201528187820152886044820152602081606481897f0000000000000000000000000000000000000000000000000000000000000000165afa801561166e575f9061167d575b61133d91508735906117b5565b91857f000000000000000000000000000000000000000000000000000000000000000016803b1561167957604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233878201908152306020820152918201869052905f9082908190606001038183865af1801561166e5761165b575b50803b156116575788809189604051809481937f2e1a7d4d000000000000000000000000000000000000000000000000000000008352898b8401525af1801561164c57908991611638575b505060405191602083019280841067ffffffffffffffff85111761160d57899a8460409b98999a9b52878252897f0000000000000000000000000000000000000000000000000000000000000000163b156116095760409a989695949a99979951957feb6724190000000000000000000000000000000000000000000000000000000087528888169087015288358987015260e060448701528960e48701526101048601926064870152608486015261010060a48601525180915261012490818501918160051b860101999189905b82821061156b575050505082809281808b8b979560c4899701520391887f0000000000000000000000000000000000000000000000000000000000000000165af1801561039257611557575b50506040519235835216907fa3e601130860a6f97b42655ad74f631ddf0c8e5adaa98402fded9c09bc35a44060203392a380f35b61156090611774565b61039d578385611523565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedc878d969596030181528b855180518092528c5b8281106115f3575050808d0160209081018d9052601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909c018c019b939484019360019290920191016114d7565b808f60208281809587010151920101520161159f565b8780fd5b886041877f4e487b71000000000000000000000000000000000000000000000000000000005f52525ffd5b61164190611774565b61160957878a611408565b6040513d8b823e3d90fd5b8880fd5b611666919950611774565b5f978a6113bd565b6040513d5f823e3d90fd5b5f80fd5b5060203d6020116116de575b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f820116820182811067ffffffffffffffff82111761160d576020918391604052810103126116795761133d9051611330565b503d611689565b34611679575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126116795760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361167957565b67ffffffffffffffff811161178857604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b919082018092116117c257565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffdfea26469706673582212205607a85a9e0ca52451b4663fa28c093065e7dee23fa38dcc76041544e413a52e64736f6c63430008170033", - "deployedBytecode": "0x6080806040526004908136101561001d575b5050361561001b57005b005b5f915f3560e01c918263019f8e81146116e557508163128d5f681461125c5781632a8ecb13146111ed57816336918a9714610fd55781633fc8cef314610f665781634fbf95d714610ef75781635970eafa14610e8857816362c8eb5c14610e19578163645b6f1114610daa57828263b3d5ccc314610bc257508163b6865d6e14610b53578163b745c3f314610ae4578163c04b953414610a75578163c80dcc3814610a06578163d3cdc8f914610997578163e88650c41461015a575063f43873c4146100e95780610011565b3461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b80fd5b9050346109935760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261099357610193611751565b604435916024359163ffffffff8416840361038e57846064359473ffffffffffffffffffffffffffffffffffffffff93847f000000000000000000000000000000000000000000000000000000000000000016803b1561039d57604080517f23b872dd0000000000000000000000000000000000000000000000000000000081523384820190815230602082015291820189905290859082908190606001038183865af1908115610988578591610974575b5050803b1561039d578380916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528c888401525af1908115610969578491610951575b5050600a87036103a157847f00000000000000000000000000000000000000000000000000000000000000001691823b1561039d576103379285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b03925af180156103925761037a575b50505b60405192835216917fcde53d24289bf7d0b2baeea6140c533d8388fb574b055364d718f637bedea7a460203393a480f35b61038390611774565b61038e57845f610346565b8480fd5b6040513d84823e3d90fd5b8380fd5b612105870361046f57847f00000000000000000000000000000000000000000000000000000000000000001691823b1561039d576104459285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b03925af180156103925761045b575b5050610349565b61046490611774565b61038e57845f610454565b61868b870361051357847f00000000000000000000000000000000000000000000000000000000000000001691823b1561039d576104459285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b6101e087036105b757847f00000000000000000000000000000000000000000000000000000000000000001691823b1561039d576104459285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b61046f870361065b57847f00000000000000000000000000000000000000000000000000000000000000001691823b1561039d576104459285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b62013e31870361070057847f00000000000000000000000000000000000000000000000000000000000000001691823b1561039d576104459285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b6102b287036107a457847f00000000000000000000000000000000000000000000000000000000000000001691823b1561039d576104459285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b6276adf1870361084957847f00000000000000000000000000000000000000000000000000000000000000001691823b1561039d576104459285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b90915061012086036108f357908691847f00000000000000000000000000000000000000000000000000000000000000001691823b1561039d576104459285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b6064906020604051917f08c379a0000000000000000000000000000000000000000000000000000000008352820152601360248201527f496e76616c6964204f564d20636861696e4964000000000000000000000000006044820152fd5b61095a90611774565b61096557825f610292565b8280fd5b6040513d86823e3d90fd5b61097d90611774565b61039d57835f610245565b6040513d87823e3d90fd5b5080fd5b823461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b915034610da75760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610da757610bfb611751565b6024359073ffffffffffffffffffffffffffffffffffffffff90817f000000000000000000000000000000000000000000000000000000000000000016803b15610d6557604080517f23b872dd0000000000000000000000000000000000000000000000000000000081523387820190815230602082015291820186905290879082908190606001038183865af1908115610d9c578791610d88575b5050803b15610d65578580916024604051809481937f2e1a7d4d000000000000000000000000000000000000000000000000000000008352898b8401525af1908115610d7d578691610d69575b5050817f00000000000000000000000000000000000000000000000000000000000000001690813b15610d6557859360249260405196879586947f4faa8a2600000000000000000000000000000000000000000000000000000000865216908401525af1801561039257610d555750f35b610d5e90611774565b6101575780f35b8580fd5b610d7290611774565b61038e57845f610ce4565b6040513d88823e3d90fd5b610d9190611774565b610d6557855f610c97565b6040513d89823e3d90fd5b50fd5b823461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b905060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261099357611009611751565b826024359173ffffffffffffffffffffffffffffffffffffffff90817f000000000000000000000000000000000000000000000000000000000000000016803b1561039d57604080517f23b872dd0000000000000000000000000000000000000000000000000000000081523388820190815230602082015291820187905290859082908190606001038183865af19081156109885785916111d9575b5050803b1561039d578380916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528a8c8401525af19081156109695784916111c5575b5050817f0000000000000000000000000000000000000000000000000000000000000000169161112334866117b5565b833b1561038e57849260849160405195869485937f9f3ce55a00000000000000000000000000000000000000000000000000000000855216809a840152346024840152606060448401528560648401525af18015610392576111b1575b50506040519081527f61ed67a945fe5f4d777919629ad666c7e81d66dc5fbaf4c143edd000c15d67dd60203392a380f35b6111ba90611774565b61096557825f611180565b6111ce90611774565b61096557825f6110f3565b6111e290611774565b61039d57835f6110a6565b823461015757807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b82346116795760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261167957611294611751565b602490604435906064359460843573ffffffffffffffffffffffffffffffffffffffff93848216809203611679576040517fb473318e0000000000000000000000000000000000000000000000000000000081523a848201528187820152886044820152602081606481897f0000000000000000000000000000000000000000000000000000000000000000165afa801561166e575f9061167d575b61133d91508735906117b5565b91857f000000000000000000000000000000000000000000000000000000000000000016803b1561167957604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233878201908152306020820152918201869052905f9082908190606001038183865af1801561166e5761165b575b50803b156116575788809189604051809481937f2e1a7d4d000000000000000000000000000000000000000000000000000000008352898b8401525af1801561164c57908991611638575b505060405191602083019280841067ffffffffffffffff85111761160d57899a8460409b98999a9b52878252897f0000000000000000000000000000000000000000000000000000000000000000163b156116095760409a989695949a99979951957feb6724190000000000000000000000000000000000000000000000000000000087528888169087015288358987015260e060448701528960e48701526101048601926064870152608486015261010060a48601525180915261012490818501918160051b860101999189905b82821061156b575050505082809281808b8b979560c4899701520391887f0000000000000000000000000000000000000000000000000000000000000000165af1801561039257611557575b50506040519235835216907fa3e601130860a6f97b42655ad74f631ddf0c8e5adaa98402fded9c09bc35a44060203392a380f35b61156090611774565b61039d578385611523565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedc878d969596030181528b855180518092528c5b8281106115f3575050808d0160209081018d9052601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909c018c019b939484019360019290920191016114d7565b808f60208281809587010151920101520161159f565b8780fd5b886041877f4e487b71000000000000000000000000000000000000000000000000000000005f52525ffd5b61164190611774565b61160957878a611408565b6040513d8b823e3d90fd5b8880fd5b611666919950611774565b5f978a6113bd565b6040513d5f823e3d90fd5b5f80fd5b5060203d6020116116de575b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f820116820182811067ffffffffffffffff82111761160d576020918391604052810103126116795761133d9051611330565b503d611689565b34611679575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126116795760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361167957565b67ffffffffffffffff811161178857604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b919082018092116117c257565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffdfea26469706673582212205607a85a9e0ca52451b4663fa28c093065e7dee23fa38dcc76041544e413a52e64736f6c63430008170033" + "numDeployments": 10, + "solcInputHash": "68cb79cd539c6a9785b32ed27fb708b7", + "metadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LineaEthDepositInitiated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"OvmEthDepositInitiated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ZkSyncEthDepositInitiated\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"baseL1Bridge\",\"outputs\":[{\"internalType\":\"contract OvmL1Bridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blastL1Bridge\",\"outputs\":[{\"internalType\":\"contract OvmL1Bridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bobaL1Bridge\",\"outputs\":[{\"internalType\":\"contract OvmL1Bridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"bridgeWethToLinea\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"l2Gas\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"name\":\"bridgeWethToOvm\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"bridgeWethToPolygon\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"l2GasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"l2GasPerPubdataByteLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"refundRecipient\",\"type\":\"address\"}],\"name\":\"bridgeWethToZkSync\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inkL1Bridge\",\"outputs\":[{\"internalType\":\"contract OvmL1Bridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lineaL1MessageService\",\"outputs\":[{\"internalType\":\"contract LineaL1MessageService\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"liskL1Bridge\",\"outputs\":[{\"internalType\":\"contract OvmL1Bridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"modeL1Bridge\",\"outputs\":[{\"internalType\":\"contract OvmL1Bridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"optimismL1Bridge\",\"outputs\":[{\"internalType\":\"contract OvmL1Bridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"polygonL1Bridge\",\"outputs\":[{\"internalType\":\"contract PolygonL1Bridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"redstoneL1Bridge\",\"outputs\":[{\"internalType\":\"contract OvmL1Bridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"weth\",\"outputs\":[{\"internalType\":\"contract Weth\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"worldChainL1Bridge\",\"outputs\":[{\"internalType\":\"contract OvmL1Bridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zkSyncL1Bridge\",\"outputs\":[{\"internalType\":\"contract ZkSyncL1Bridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zoraL1Bridge\",\"outputs\":[{\"internalType\":\"contract OvmL1Bridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Contract deployed on Ethereum helps relay bots atomically unwrap and bridge WETH over the canonical chain bridges for Optimism, Base, Boba, ZkSync, Linea, and Polygon. Needed as these chains only support bridging of ETH, not WETH.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/AtomicWethDepositor.sol\":\"AtomicWethDepositor\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000000},\"remappings\":[],\"viaIR\":true},\"sources\":{\"contracts/AtomicWethDepositor.sol\":{\"keccak256\":\"0xb3d899b66e5a2b05180de450741cfe5e410aa0a71a5fc4c75e4a7756f9562f6e\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://69f28509ff529c0252fca9c62775f915fcb8b2df1d785167253c8d4972b17612\",\"dweb:/ipfs/QmNqXnbJYas3F1eiZ2BEFxCEmqtaj71Yfuv9WEhQSH3DuT\"]}},\"version\":1}", + "bytecode": "0x610240806040523461026f5773c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26080527399c9fc46f92e8a1c0dec1b1747d010903e884be160a05273735adbbe72226bd52e818e7181953f42e3b0ff2160c05273dc1664458d2f0b6090bea60a8793a4e66c2f1c0060e05261010090733154cf16ccdb4c6d922629664174b904d80f2c3582526101207388ff1e5b602916615391f55854588efcbb7663f08152610140732658723bf70c7667de6b25f99fcce13a16d25d08815261016073c473ca7e02af24c129c2eef51f2adf0411c1df69815261018073697402166fbf2f22e970df8a6486ef171dbfc52481526101a073470458c91978d2d929704489ad730dc3e300111381526101c091733e2ea9b92b7e48a52296fd261dc26fd99528463183526101e09373a0c68c638235ee32657e8f720a23cec1bfc77c778552610200957332400084c286cf3e17e7b677ea9583e60a00032487526102209773d19d4b5d358258f05d7b411e21a1460d11b0876f89526119439a8b6102748c396080518b81816101d101528181610d36015281816110cf01528181611145015261145f015260a0518b81816102aa0152610a91015260c0518b81816104860152610f13015260e0518b818161090a015261184b0152518a81816103b80152610c4d0152518981816105ce0152610bde01525188818161013e01526106720152518781816107bb0152610cbc0152518681816107170152610f8201525185818161052a01526113560152518481816108600152611060015251838181610b000152610e07015251828181610ff10152818161141f015281816115550152611614015251818181610b6f01526112160152f35b5f80fdfe6080806040526004908136101561001d575b5050361561001b57005b005b5f915f3560e01c918263019f8e811461180357508163128d5f681461137a5781632a8ecb131461130b57816336918a97146110f35781633fc8cef3146110845781634fbf95d7146110155781635970eafa14610fa657816362c8eb5c14610f37578163645b6f1114610ec857828263b3d5ccc314610ce057508163b6865d6e14610c71578163b745c3f314610c02578163b9597e5914610b93578163c04b953414610b24578163c80dcc3814610ab5578163d3cdc8f914610a46578163e88650c414610165575063f43873c4146100f45780610011565b3461016257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b80fd5b905034610a425760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610a425761019e61186f565b604435916024359163ffffffff8416840361039957846064359473ffffffffffffffffffffffffffffffffffffffff93847f000000000000000000000000000000000000000000000000000000000000000016803b156103a857604080517f23b872dd0000000000000000000000000000000000000000000000000000000081523384820190815230602082015291820189905290859082908190606001038183865af1908115610a37578591610a23575b5050803b156103a8578380916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528c888401525af1908115610a18578491610a00575b5050600a87036103ac57847f00000000000000000000000000000000000000000000000000000000000000001691823b156103a8576103429285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b03925af1801561039d57610385575b50505b60405192835216917fcde53d24289bf7d0b2baeea6140c533d8388fb574b055364d718f637bedea7a460203393a480f35b61038e90611892565b61039957845f610351565b8480fd5b6040513d84823e3d90fd5b8380fd5b612105870361047a57847f00000000000000000000000000000000000000000000000000000000000000001691823b156103a8576104509285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b03925af1801561039d57610466575b5050610354565b61046f90611892565b61039957845f61045f565b61868b870361051e57847f00000000000000000000000000000000000000000000000000000000000000001691823b156103a8576104509285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b6101e087036105c257847f00000000000000000000000000000000000000000000000000000000000000001691823b156103a8576104509285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b61def1870361066657847f00000000000000000000000000000000000000000000000000000000000000001691823b156103a8576104509285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b61046f870361070a57847f00000000000000000000000000000000000000000000000000000000000000001691823b156103a8576104509285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b62013e3187036107af57847f00000000000000000000000000000000000000000000000000000000000000001691823b156103a8576104509285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b6102b2870361085357847f00000000000000000000000000000000000000000000000000000000000000001691823b156103a8576104509285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b6276adf187036108f857847f00000000000000000000000000000000000000000000000000000000000000001691823b156103a8576104509285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b90915061012086036109a257908691847f00000000000000000000000000000000000000000000000000000000000000001691823b156103a8576104509285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b6064906020604051917f08c379a0000000000000000000000000000000000000000000000000000000008352820152601360248201527f496e76616c6964204f564d20636861696e4964000000000000000000000000006044820152fd5b610a0990611892565b610a1457825f61029d565b8280fd5b6040513d86823e3d90fd5b610a2c90611892565b6103a857835f610250565b6040513d87823e3d90fd5b5080fd5b823461016257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461016257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461016257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461016257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461016257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461016257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b915034610ec55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610ec557610d1961186f565b6024359073ffffffffffffffffffffffffffffffffffffffff90817f000000000000000000000000000000000000000000000000000000000000000016803b15610e8357604080517f23b872dd0000000000000000000000000000000000000000000000000000000081523387820190815230602082015291820186905290879082908190606001038183865af1908115610eba578791610ea6575b5050803b15610e83578580916024604051809481937f2e1a7d4d000000000000000000000000000000000000000000000000000000008352898b8401525af1908115610e9b578691610e87575b5050817f00000000000000000000000000000000000000000000000000000000000000001690813b15610e8357859360249260405196879586947f4faa8a2600000000000000000000000000000000000000000000000000000000865216908401525af1801561039d57610e735750f35b610e7c90611892565b6101625780f35b8580fd5b610e9090611892565b61039957845f610e02565b6040513d88823e3d90fd5b610eaf90611892565b610e8357855f610db5565b6040513d89823e3d90fd5b50fd5b823461016257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461016257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461016257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461016257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461016257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b905060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610a425761112761186f565b826024359173ffffffffffffffffffffffffffffffffffffffff90817f000000000000000000000000000000000000000000000000000000000000000016803b156103a857604080517f23b872dd0000000000000000000000000000000000000000000000000000000081523388820190815230602082015291820187905290859082908190606001038183865af1908115610a375785916112f7575b5050803b156103a8578380916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528a8c8401525af1908115610a185784916112e3575b5050817f0000000000000000000000000000000000000000000000000000000000000000169161124134866118d3565b833b1561039957849260849160405195869485937f9f3ce55a00000000000000000000000000000000000000000000000000000000855216809a840152346024840152606060448401528560648401525af1801561039d576112cf575b50506040519081527f61ed67a945fe5f4d777919629ad666c7e81d66dc5fbaf4c143edd000c15d67dd60203392a380f35b6112d890611892565b610a1457825f61129e565b6112ec90611892565b610a1457825f611211565b61130090611892565b6103a857835f6111c4565b823461016257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b82346117975760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112611797576113b261186f565b602490604435906064359460843573ffffffffffffffffffffffffffffffffffffffff93848216809203611797576040517fb473318e0000000000000000000000000000000000000000000000000000000081523a848201528187820152886044820152602081606481897f0000000000000000000000000000000000000000000000000000000000000000165afa801561178c575f9061179b575b61145b91508735906118d3565b91857f000000000000000000000000000000000000000000000000000000000000000016803b1561179757604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233878201908152306020820152918201869052905f9082908190606001038183865af1801561178c57611779575b50803b156117755788809189604051809481937f2e1a7d4d000000000000000000000000000000000000000000000000000000008352898b8401525af1801561176a57908991611756575b505060405191602083019280841067ffffffffffffffff85111761172b57899a8460409b98999a9b52878252897f0000000000000000000000000000000000000000000000000000000000000000163b156117275760409a989695949a99979951957feb6724190000000000000000000000000000000000000000000000000000000087528888169087015288358987015260e060448701528960e48701526101048601926064870152608486015261010060a48601525180915261012490818501918160051b860101999189905b828210611689575050505082809281808b8b979560c4899701520391887f0000000000000000000000000000000000000000000000000000000000000000165af1801561039d57611675575b50506040519235835216907fa3e601130860a6f97b42655ad74f631ddf0c8e5adaa98402fded9c09bc35a44060203392a380f35b61167e90611892565b6103a8578385611641565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedc878d969596030181528b855180518092528c5b828110611711575050808d0160209081018d9052601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909c018c019b939484019360019290920191016115f5565b808f6020828180958701015192010152016116bd565b8780fd5b886041877f4e487b71000000000000000000000000000000000000000000000000000000005f52525ffd5b61175f90611892565b61172757878a611526565b6040513d8b823e3d90fd5b8880fd5b611784919950611892565b5f978a6114db565b6040513d5f823e3d90fd5b5f80fd5b5060203d6020116117fc575b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f820116820182811067ffffffffffffffff82111761172b576020918391604052810103126117975761145b905161144e565b503d6117a7565b34611797575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126117975760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361179757565b67ffffffffffffffff81116118a657604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b919082018092116118e057565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffdfea26469706673582212205f7037abf5e15b3d8beb47a6151b22811d841628adba6392901c70bc78b1c89e64736f6c63430008170033", + "deployedBytecode": "0x6080806040526004908136101561001d575b5050361561001b57005b005b5f915f3560e01c918263019f8e811461180357508163128d5f681461137a5781632a8ecb131461130b57816336918a97146110f35781633fc8cef3146110845781634fbf95d7146110155781635970eafa14610fa657816362c8eb5c14610f37578163645b6f1114610ec857828263b3d5ccc314610ce057508163b6865d6e14610c71578163b745c3f314610c02578163b9597e5914610b93578163c04b953414610b24578163c80dcc3814610ab5578163d3cdc8f914610a46578163e88650c414610165575063f43873c4146100f45780610011565b3461016257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b80fd5b905034610a425760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610a425761019e61186f565b604435916024359163ffffffff8416840361039957846064359473ffffffffffffffffffffffffffffffffffffffff93847f000000000000000000000000000000000000000000000000000000000000000016803b156103a857604080517f23b872dd0000000000000000000000000000000000000000000000000000000081523384820190815230602082015291820189905290859082908190606001038183865af1908115610a37578591610a23575b5050803b156103a8578380916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528c888401525af1908115610a18578491610a00575b5050600a87036103ac57847f00000000000000000000000000000000000000000000000000000000000000001691823b156103a8576103429285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b03925af1801561039d57610385575b50505b60405192835216917fcde53d24289bf7d0b2baeea6140c533d8388fb574b055364d718f637bedea7a460203393a480f35b61038e90611892565b61039957845f610351565b8480fd5b6040513d84823e3d90fd5b8380fd5b612105870361047a57847f00000000000000000000000000000000000000000000000000000000000000001691823b156103a8576104509285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b03925af1801561039d57610466575b5050610354565b61046f90611892565b61039957845f61045f565b61868b870361051e57847f00000000000000000000000000000000000000000000000000000000000000001691823b156103a8576104509285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b6101e087036105c257847f00000000000000000000000000000000000000000000000000000000000000001691823b156103a8576104509285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b61def1870361066657847f00000000000000000000000000000000000000000000000000000000000000001691823b156103a8576104509285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b61046f870361070a57847f00000000000000000000000000000000000000000000000000000000000000001691823b156103a8576104509285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b62013e3187036107af57847f00000000000000000000000000000000000000000000000000000000000000001691823b156103a8576104509285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b6102b2870361085357847f00000000000000000000000000000000000000000000000000000000000000001691823b156103a8576104509285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b6276adf187036108f857847f00000000000000000000000000000000000000000000000000000000000000001691823b156103a8576104509285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b90915061012086036109a257908691847f00000000000000000000000000000000000000000000000000000000000000001691823b156103a8576104509285888694604051968795869485937f9a2ac6d500000000000000000000000000000000000000000000000000000000855284019060809273ffffffffffffffffffffffffffffffffffffffff63ffffffff92168352166020820152606060408201525f60608201520190565b6064906020604051917f08c379a0000000000000000000000000000000000000000000000000000000008352820152601360248201527f496e76616c6964204f564d20636861696e4964000000000000000000000000006044820152fd5b610a0990611892565b610a1457825f61029d565b8280fd5b6040513d86823e3d90fd5b610a2c90611892565b6103a857835f610250565b6040513d87823e3d90fd5b5080fd5b823461016257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461016257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461016257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461016257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461016257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461016257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b915034610ec55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610ec557610d1961186f565b6024359073ffffffffffffffffffffffffffffffffffffffff90817f000000000000000000000000000000000000000000000000000000000000000016803b15610e8357604080517f23b872dd0000000000000000000000000000000000000000000000000000000081523387820190815230602082015291820186905290879082908190606001038183865af1908115610eba578791610ea6575b5050803b15610e83578580916024604051809481937f2e1a7d4d000000000000000000000000000000000000000000000000000000008352898b8401525af1908115610e9b578691610e87575b5050817f00000000000000000000000000000000000000000000000000000000000000001690813b15610e8357859360249260405196879586947f4faa8a2600000000000000000000000000000000000000000000000000000000865216908401525af1801561039d57610e735750f35b610e7c90611892565b6101625780f35b8580fd5b610e9090611892565b61039957845f610e02565b6040513d88823e3d90fd5b610eaf90611892565b610e8357855f610db5565b6040513d89823e3d90fd5b50fd5b823461016257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461016257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461016257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461016257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461016257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b905060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610a425761112761186f565b826024359173ffffffffffffffffffffffffffffffffffffffff90817f000000000000000000000000000000000000000000000000000000000000000016803b156103a857604080517f23b872dd0000000000000000000000000000000000000000000000000000000081523388820190815230602082015291820187905290859082908190606001038183865af1908115610a375785916112f7575b5050803b156103a8578380916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528a8c8401525af1908115610a185784916112e3575b5050817f0000000000000000000000000000000000000000000000000000000000000000169161124134866118d3565b833b1561039957849260849160405195869485937f9f3ce55a00000000000000000000000000000000000000000000000000000000855216809a840152346024840152606060448401528560648401525af1801561039d576112cf575b50506040519081527f61ed67a945fe5f4d777919629ad666c7e81d66dc5fbaf4c143edd000c15d67dd60203392a380f35b6112d890611892565b610a1457825f61129e565b6112ec90611892565b610a1457825f611211565b61130090611892565b6103a857835f6111c4565b823461016257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b82346117975760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112611797576113b261186f565b602490604435906064359460843573ffffffffffffffffffffffffffffffffffffffff93848216809203611797576040517fb473318e0000000000000000000000000000000000000000000000000000000081523a848201528187820152886044820152602081606481897f0000000000000000000000000000000000000000000000000000000000000000165afa801561178c575f9061179b575b61145b91508735906118d3565b91857f000000000000000000000000000000000000000000000000000000000000000016803b1561179757604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233878201908152306020820152918201869052905f9082908190606001038183865af1801561178c57611779575b50803b156117755788809189604051809481937f2e1a7d4d000000000000000000000000000000000000000000000000000000008352898b8401525af1801561176a57908991611756575b505060405191602083019280841067ffffffffffffffff85111761172b57899a8460409b98999a9b52878252897f0000000000000000000000000000000000000000000000000000000000000000163b156117275760409a989695949a99979951957feb6724190000000000000000000000000000000000000000000000000000000087528888169087015288358987015260e060448701528960e48701526101048601926064870152608486015261010060a48601525180915261012490818501918160051b860101999189905b828210611689575050505082809281808b8b979560c4899701520391887f0000000000000000000000000000000000000000000000000000000000000000165af1801561039d57611675575b50506040519235835216907fa3e601130860a6f97b42655ad74f631ddf0c8e5adaa98402fded9c09bc35a44060203392a380f35b61167e90611892565b6103a8578385611641565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedc878d969596030181528b855180518092528c5b828110611711575050808d0160209081018d9052601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909c018c019b939484019360019290920191016115f5565b808f6020828180958701015192010152016116bd565b8780fd5b886041877f4e487b71000000000000000000000000000000000000000000000000000000005f52525ffd5b61175f90611892565b61172757878a611526565b6040513d8b823e3d90fd5b8880fd5b611784919950611892565b5f978a6114db565b6040513d5f823e3d90fd5b5f80fd5b5060203d6020116117fc575b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f820116820182811067ffffffffffffffff82111761172b576020918391604052810103126117975761145b905161144e565b503d6117a7565b34611797575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126117975760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361179757565b67ffffffffffffffff81116118a657604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b919082018092116118e057565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffdfea26469706673582212205f7037abf5e15b3d8beb47a6151b22811d841628adba6392901c70bc78b1c89e64736f6c63430008170033" } diff --git a/deployments/mainnet/solcInputs/68cb79cd539c6a9785b32ed27fb708b7.json b/deployments/mainnet/solcInputs/68cb79cd539c6a9785b32ed27fb708b7.json new file mode 100644 index 000000000..e4692c973 --- /dev/null +++ b/deployments/mainnet/solcInputs/68cb79cd539c6a9785b32ed27fb708b7.json @@ -0,0 +1,21 @@ +{ + "language": "Solidity", + "sources": { + "contracts/AtomicWethDepositor.sol": { + "content": "// SPDX-License-Identifier: GPL-3.0-only\npragma solidity ^0.8.0;\n\ninterface Weth {\n function withdraw(uint256 _wad) external;\n\n function transferFrom(address _from, address _to, uint256 _wad) external;\n}\n\ninterface OvmL1Bridge {\n function depositETHTo(address _to, uint32 _l2Gas, bytes calldata _data) external payable;\n}\n\ninterface PolygonL1Bridge {\n function depositEtherFor(address _to) external payable;\n}\n\ninterface ZkSyncL1Bridge {\n function requestL2Transaction(\n address _contractL2,\n uint256 _l2Value,\n bytes calldata _calldata,\n uint256 _l2GasLimit,\n uint256 _l2GasPerPubdataByteLimit,\n bytes[] calldata _factoryDeps,\n address _refundRecipient\n ) external payable;\n\n function l2TransactionBaseCost(\n uint256 _gasPrice,\n uint256 _l2GasLimit,\n uint256 _l2GasPerPubdataByteLimit\n ) external pure returns (uint256);\n}\n\ninterface LineaL1MessageService {\n function sendMessage(address _to, uint256 _fee, bytes calldata _calldata) external payable;\n}\n\n/**\n * @notice Contract deployed on Ethereum helps relay bots atomically unwrap and bridge WETH over the canonical chain\n * bridges for Optimism, Base, Boba, ZkSync, Linea, and Polygon. Needed as these chains only support bridging of ETH,\n * not WETH.\n */\n\ncontract AtomicWethDepositor {\n Weth public immutable weth = Weth(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2);\n OvmL1Bridge public immutable optimismL1Bridge = OvmL1Bridge(0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1);\n OvmL1Bridge public immutable modeL1Bridge = OvmL1Bridge(0x735aDBbE72226BD52e818E7181953f42E3b0FF21);\n OvmL1Bridge public immutable bobaL1Bridge = OvmL1Bridge(0xdc1664458d2f0B6090bEa60A8793A4E66c2F1c00);\n OvmL1Bridge public immutable baseL1Bridge = OvmL1Bridge(0x3154Cf16ccdb4C6d922629664174b904d80F2C35);\n OvmL1Bridge public immutable inkL1Bridge = OvmL1Bridge(0x88FF1e5b602916615391F55854588EFcBB7663f0);\n OvmL1Bridge public immutable liskL1Bridge = OvmL1Bridge(0x2658723Bf70c7667De6B25F99fcce13A16D25d08);\n OvmL1Bridge public immutable redstoneL1Bridge = OvmL1Bridge(0xc473ca7E02af24c129c2eEf51F2aDf0411c1Df69);\n OvmL1Bridge public immutable blastL1Bridge = OvmL1Bridge(0x697402166Fbf2F22E970df8a6486Ef171dbfc524);\n OvmL1Bridge public immutable worldChainL1Bridge = OvmL1Bridge(0x470458C91978D2d929704489Ad730DC3E3001113);\n OvmL1Bridge public immutable zoraL1Bridge = OvmL1Bridge(0x3e2Ea9B92B7E48A52296fD261dc26fd995284631);\n PolygonL1Bridge public immutable polygonL1Bridge = PolygonL1Bridge(0xA0c68C638235ee32657e8f720a23ceC1bFc77C77);\n ZkSyncL1Bridge public immutable zkSyncL1Bridge = ZkSyncL1Bridge(0x32400084C286CF3E17e7B677ea9583e60a000324);\n LineaL1MessageService public immutable lineaL1MessageService =\n LineaL1MessageService(0xd19d4B5d358258f05D7B411E21A1460D11B0876F);\n\n event ZkSyncEthDepositInitiated(address indexed from, address indexed to, uint256 amount);\n event LineaEthDepositInitiated(address indexed from, address indexed to, uint256 amount);\n event OvmEthDepositInitiated(uint256 indexed chainId, address indexed from, address indexed to, uint256 amount);\n\n function bridgeWethToOvm(address to, uint256 amount, uint32 l2Gas, uint256 chainId) public {\n weth.transferFrom(msg.sender, address(this), amount);\n weth.withdraw(amount);\n\n if (chainId == 10) {\n optimismL1Bridge.depositETHTo{ value: amount }(to, l2Gas, \"\");\n } else if (chainId == 8453) {\n baseL1Bridge.depositETHTo{ value: amount }(to, l2Gas, \"\");\n } else if (chainId == 34443) {\n modeL1Bridge.depositETHTo{ value: amount }(to, l2Gas, \"\");\n } else if (chainId == 480) {\n worldChainL1Bridge.depositETHTo{ value: amount }(to, l2Gas, \"\");\n } else if (chainId == 57073) {\n inkL1Bridge.depositETHTo{ value: amount }(to, l2Gas, \"\");\n } else if (chainId == 1135) {\n liskL1Bridge.depositETHTo{ value: amount }(to, l2Gas, \"\");\n } else if (chainId == 81457) {\n blastL1Bridge.depositETHTo{ value: amount }(to, l2Gas, \"\");\n } else if (chainId == 690) {\n redstoneL1Bridge.depositETHTo{ value: amount }(to, l2Gas, \"\");\n } else if (chainId == 7777777) {\n zoraL1Bridge.depositETHTo{ value: amount }(to, l2Gas, \"\");\n } else if (chainId == 288) {\n bobaL1Bridge.depositETHTo{ value: amount }(to, l2Gas, \"\");\n } else {\n revert(\"Invalid OVM chainId\");\n }\n\n emit OvmEthDepositInitiated(chainId, msg.sender, to, amount);\n }\n\n function bridgeWethToPolygon(address to, uint256 amount) public {\n weth.transferFrom(msg.sender, address(this), amount);\n weth.withdraw(amount);\n polygonL1Bridge.depositEtherFor{ value: amount }(to);\n }\n\n function bridgeWethToLinea(address to, uint256 amount) public payable {\n weth.transferFrom(msg.sender, address(this), amount);\n weth.withdraw(amount);\n lineaL1MessageService.sendMessage{ value: amount + msg.value }(to, msg.value, \"\");\n // Emit an event that we can easily track in the Linea-related adapters/finalizers\n emit LineaEthDepositInitiated(msg.sender, to, amount);\n }\n\n function bridgeWethToZkSync(\n address to,\n uint256 amount,\n uint256 l2GasLimit,\n uint256 l2GasPerPubdataByteLimit,\n address refundRecipient\n ) public {\n // The ZkSync Mailbox contract checks that the msg.value of the transaction is enough to cover the transaction base\n // cost. The transaction base cost can be queried from the Mailbox by passing in an L1 \"executed\" gas price,\n // which is the priority fee plus base fee. This is the same as calling tx.gasprice on-chain as the Mailbox\n // contract does here:\n // https://github.com/matter-labs/era-contracts/blob/3a4506522aaef81485d8abb96f5a6394bd2ba69e/ethereum/contracts/zksync/facets/Mailbox.sol#L287\n uint256 l2TransactionBaseCost = zkSyncL1Bridge.l2TransactionBaseCost(\n tx.gasprice,\n l2GasLimit,\n l2GasPerPubdataByteLimit\n );\n uint256 valueToSubmitXChainMessage = l2TransactionBaseCost + amount;\n weth.transferFrom(msg.sender, address(this), valueToSubmitXChainMessage);\n weth.withdraw(valueToSubmitXChainMessage);\n zkSyncL1Bridge.requestL2Transaction{ value: valueToSubmitXChainMessage }(\n to,\n amount,\n \"\",\n l2GasLimit,\n l2GasPerPubdataByteLimit,\n new bytes[](0),\n refundRecipient\n );\n\n // Emit an event that we can easily track in the ZkSyncAdapter because otherwise there is no easy event to\n // track ETH deposit initiations.\n emit ZkSyncEthDepositInitiated(msg.sender, to, amount);\n }\n\n fallback() external payable {}\n\n // Included to remove a compilation warning.\n // NOTE: this should not affect behavior.\n receive() external payable {}\n}\n" + } + }, + "settings": { + "optimizer": { + "enabled": true, + "runs": 1000000 + }, + "viaIR": true, + "outputSelection": { + "*": { + "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"], + "": ["ast"] + } + } + } +} diff --git a/src/common/ContractAddresses.ts b/src/common/ContractAddresses.ts index 264c1f116..7f5f38e04 100644 --- a/src/common/ContractAddresses.ts +++ b/src/common/ContractAddresses.ts @@ -76,7 +76,7 @@ export const CONTRACT_ADDRESSES: { // OVM, ZkSync, Linea, and Polygon can't deposit WETH directly so we use an atomic depositor contract that unwraps WETH and // bridges ETH other the canonical bridge. atomicDepositor: { - address: "0xa679201903847f3723Dc88CA7530c8B665bC51a5", + address: "0xb505EB8E884cA548508bd7806631b6C1BC25C1f8", abi: ATOMIC_DEPOSITOR_ABI, }, opUSDCBridge_480: {