diff --git a/packages/contract/Makefile b/packages/contract/Makefile index a3206295f..7451cab98 100644 --- a/packages/contract/Makefile +++ b/packages/contract/Makefile @@ -12,12 +12,11 @@ full: make build test: - # $(eval BASE_MAINNET_RPC ?= $(or $(BASE_MAINNET_RPC),https://base-rpc.publicnode.com)) # Use environment variable if set, otherwise use default - # @echo Running tests with RPC: $(BASE_MAINNET_RPC) - # forge test -vvv --fork-url "$(BASE_MAINNET_RPC)" --no-match-path "test/uniswap/*" - # forge test -vvv --fork-url "$(BASE_MAINNET_RPC)" --fork-block-number 14513720 --match-path "test/uniswap/*" --no-match-path "test/uniswap/Quoter.t.sol" - # forge test -vvv --fork-url "$(BASE_MAINNET_RPC)" --fork-block-number 15950101 --match-path "test/uniswap/Quoter.t.sol" - forge test -vvv --match-path "test/DaimoPay.t.sol" + $(eval BASE_MAINNET_RPC ?= $(or $(BASE_MAINNET_RPC),https://base-rpc.publicnode.com)) # Use environment variable if set, otherwise use default + @echo Running tests with RPC: $(BASE_MAINNET_RPC) + forge test -vvv --fork-url "$(BASE_MAINNET_RPC)" --no-match-path "test/uniswap/*" + forge test -vvv --fork-url "$(BASE_MAINNET_RPC)" --fork-block-number 14513720 --match-path "test/uniswap/*" --no-match-path "test/uniswap/Quoter.t.sol" + forge test -vvv --fork-url "$(BASE_MAINNET_RPC)" --fork-block-number 15950101 --match-path "test/uniswap/Quoter.t.sol" coverage: $(eval BASE_MAINNET_RPC ?= $(or $(BASE_MAINNET_RPC),https://base-rpc.publicnode.com)) # Use environment variable if set, otherwise use default diff --git a/packages/contract/broadcast/DeployDaimoPayAxelarBridger.s.sol/8453/run-latest.json b/packages/contract/broadcast/DeployDaimoPayAxelarBridger.s.sol/8453/run-latest.json index 5acb5bb5a..bdfc93ea9 100644 --- a/packages/contract/broadcast/DeployDaimoPayAxelarBridger.s.sol/8453/run-latest.json +++ b/packages/contract/broadcast/DeployDaimoPayAxelarBridger.s.sol/8453/run-latest.json @@ -1,34 +1,34 @@ { "transactions": [ { - "hash": "0xf29db2751c1c9cae8d63b669933bf0acb55830c5e9df7513a25c21f6cede2544", + "hash": "0x9e9ed5c5213a072937deefe35751559efa587e48f45c98f33c4728e656aee249", "transactionType": "CALL", "contractName": null, "contractAddress": "0x4ce25be5611b6527ea48f7abf513d48bacb4cc44", "function": "deploy(bytes32,bytes)", "arguments": [ - "0x5073c4185035022abe6370bb7fe986ebe0013c4f1153b783027360ed07e1174e", - "0x60c0604052346106bf576123dc80380380610019816106ec565b928339810160c0828203126106bf5761003182610711565b602083015191906001600160a01b03831683036106bf5760408401516001600160a01b03811681036106bf5760608501516001600160401b0381116106bf5785019183601f840112156106bf5782519261009261008d85610725565b6106ec565b9360208086838152019160051b830101918683116106bf57602001905b8282106106dc5750505060808601516001600160401b0381116106bf5786019584601f880112156106bf578651966100e961008d89610725565b976020808a838152019160051b830101918783116106bf57602001905b8282106106c45750505060a0810151906001600160401b0382116106bf570184601f820112156106bf5780519061013f61008d83610725565b9560208088858152019360051b830101918183116106bf5760208101935b8385106105fe57505050505060018060a01b03169384156105e857600180546001600160a01b0319908116909155600080549182168717815560405196916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a360805260a052805192825184036105a6575060005b83811061021457604051611bbd90816107ff82396080518181816108f901526113cf015260a05181818161097801526112250152f35b61021e81836107af565b516001600160a01b0361023183886107af565b51169061023e83866107af565b51816000526002602052604060002083600052602052604060002090805180519060018060401b0382116104c357835490600182811c9216801561059c575b60208310146104a35781601f849311610549575b50602090601f83116001146104e4576000926104d9575b50508160011b916000199060031b1c19161782555b602081018051805191939160018301916001600160401b0382116104c3578254600181811c911680156104b9575b60208210146104a357601f811161045b575b50602090601f83116001146103d7579360019998979693836000805160206123bc83398151915297946004946103a5986000926103cc575b5050600019600383901b1c1916908c1b1790555b60408381015160028301805460a08e811b8f900393841684199283168117909355606088015160038701805491909516921682179093556080870151959094018590559451955191518181529687966103b393928801906107d9565b9086820360208801526107d9565b926040850152606084015260808301520390a3016101de565b015190503880610335565b90601f1983169184600052816000209260005b8181106104435750846004946103a5989460019e9d9c9b98948f94986000805160206123bc8339815191529c991061042a575b505050811b019055610349565b015160001960f88460031b161c1916905538808061041d565b929360206001819287860151815501950193016103ea565b836000526020600020601f840160051c81019160208510610499575b601f0160051c01905b81811061048d57506102fd565b60008155600101610480565b9091508190610477565b634e487b7160e01b600052602260045260246000fd5b90607f16906102eb565b634e487b7160e01b600052604160045260246000fd5b0151905038806102a8565b60008681528281209350601f198516905b8181106105315750908460019594939210610518575b505050811b0182556102bd565b015160001960f88460031b161c1916905538808061050b565b929360206001819287860151815501950193016104f5565b909150846000526020600020601f840160051c81019160208510610592575b90601f859493920160051c01905b8181106105835750610291565b60008155849350600101610576565b9091508190610568565b91607f169161027d565b62461bcd60e51b815260206004820181905260248201527f44504178423a2077726f6e6720627269646765526f75746573206c656e6774686044820152606490fd5b631e4fbdf760e01b600052600060045260246000fd5b84516001600160401b0381116106bf57820160a0818503601f1901126106bf576040519160a083016001600160401b038111848210176104c35760405260208201516001600160401b0381116106bf5785602061065d9285010161075f565b83526040820151926001600160401b0384116106bf5760a08361068788602080988198010161075f565b8584015261069760608201610711565b60408401526106a860808201610711565b60608401520151608082015281520194019361015d565b600080fd5b602080916106d184610711565b815201910190610106565b81518152602091820191016100af565b6040519190601f01601f191682016001600160401b038111838210176104c357604052565b51906001600160a01b03821682036106bf57565b6001600160401b0381116104c35760051b60200190565b60005b83811061074f5750506000910152565b818101518382015260200161073f565b81601f820112156106bf5780516001600160401b0381116104c35761078d601f8201601f19166020016106ec565b92818452602082840101116106bf576107ac916020808501910161073c565b90565b80518210156107c35760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b906020916107f28151809281855285808601910161073c565b601f01601f191601019056fe608080604052600436101561001357600080fd5b600090813560e01c90816314099c5814611385575080634b39060b146113145780634d9b790214611249578063545614cc146111da5780635c1da74f1461107f578063715018a614610fbb57806379ba509714610eb15780638da5cb5b14610e6057806390cd098414610718578063d65259a3146101bf578063e30c39781461016d5763f2fde38b146100a557600080fd5b3461016a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016a5760043573ffffffffffffffffffffffffffffffffffffffff8116809103610166576100fd611858565b807fffffffffffffffffffffffff0000000000000000000000000000000000000000600154161760015573ffffffffffffffffffffffffffffffffffffffff8254167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b5080fd5b80fd5b503461016a57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016a57602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b503461016a5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016a576004356101fa6113f3565b906044359167ffffffffffffffff83116107145760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc843603011261071457604051926102478461148f565b806004013567ffffffffffffffff81116107105761026b90600436918401016116c8565b8452602481013567ffffffffffffffff81116107105761029190600436918401016116c8565b93602081019485526102a56044830161141b565b90604081019182526102b96064840161141b565b916060820192835260846080830194013584526102d4611858565b8588526002602052604080892060009073ffffffffffffffffffffffffffffffffffffffff881682526020522090825180519067ffffffffffffffff82116106e357610320845461143c565b601f81116106b3575b50602090601f83116001146106145761037792918c91836104bc575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b82555b60018201885180519067ffffffffffffffff82116105e7578b61039d845461143c565b601f81116105ac575b50506020908c601f84116001146104c75773ffffffffffffffffffffffffffffffffffffffff99957fe05d94e007bd2693a07f510723b205d97e34e65b06e7901114e84233c7207d1e9b999561043a866104b69b9760049b978f978897926104bc5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b90555b511693600283018286167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055511693600382018986167fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905551948591015551985160405196879616998661163c565b0390a380f35b015190503880610345565b91907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08416858452828420935b8181106105945750957fe05d94e007bd2693a07f510723b205d97e34e65b06e7901114e84233c7207d1e9b999560018660049a9673ffffffffffffffffffffffffffffffffffffffff9e9a968f97966104b69e9a89981061055d575b505050811b01905561043d565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c19169055388080610550565b929360206001819287860151815501950193016104f4565b602082866105d6945220601f850160051c810191602086106105dd575b601f0160051c01906117f2565b8b386103a6565b90915081906105c9565b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b848c52818c2091907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe084168d5b81811061069b5750908460019594939210610664575b505050811b01825561037a565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c19169055388080610657565b92936020600181928786015181550195019301610641565b6106dd90858d5260208d20601f850160051c810191602086106105dd57601f0160051c01906117f2565b38610329565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b8580fd5b8380fd5b503461016a5760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016a576004356107536113f3565b60443573ffffffffffffffffffffffffffffffffffffffff8116808203610e5c576064359160843567ffffffffffffffff8111610cb75736602382011215610cb757806004013567ffffffffffffffff8111610e58573691016024011161071057468514610dfa578215610d9c57826107cc918661170f565b8587959295526002602052604087208388526020526040872094604051956107f38761148f565b6107fc8161151b565b875261080a6001820161151b565b916020880192835273ffffffffffffffffffffffffffffffffffffffff600283015416604089015273ffffffffffffffffffffffffffffffffffffffff6004816003850154169360608b0194855201549160808a0192835216976108b76040517f23b872dd000000000000000000000000000000000000000000000000000000006020820152336024820152306044820152866064820152606481526108b16084826114da565b8a611a25565b6040517f095ea7b3000000000000000000000000000000000000000000000000000000006020820190815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016602483018190526044808401899052835293918d91829081908e9061093f6064866114da565b828551925af161094d611aba565b81610d6d575b5080610d63575b15610d05575b5073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168351906109bb73ffffffffffffffffffffffffffffffffffffffff8851166118a7565b9173ffffffffffffffffffffffffffffffffffffffff6040519b169a8b6020820152602081526109ec6040826114da565b8951955191833b15610710578f610a51938d91610ae1610a819a610ab18b976040519d8e9c8d9b8c9a7f17a49f7c000000000000000000000000000000000000000000000000000000008c523360048d015261012060248d01526101248c01906115dd565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8b83030160448c01526115dd565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8983030160648a01526115dd565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8783030160848801526115dd565b9260a485015260c484015260e48301523361010483015203925af18015610cfa57610cc6575b5090610b2e73ffffffffffffffffffffffffffffffffffffffff8c959493519351166118a7565b906040519387602086015260208552610b486040866114da565b5193813b1561071057858094610c30610bd097610c00610ba0956040519a8b998a9889977fb541708400000000000000000000000000000000000000000000000000000000895260a060048a015260a48901906115dd565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8883030160248901526115dd565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8683030160448701526115dd565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8483030160648501526115dd565b89608483015203925af18015610cbb57610c98575b50937f7a1aaa549d494a115465b34eba936c63fadb6c733c73b1aa66b46ff791df58479360e09388889460405195338752602087015260408601526060850152608084015260a083015260c0820152a180f35b81610ca8919796959493976114da565b610cb757909192938638610c45565b8680fd5b6040513d84823e3d90fd5b8b610cee73ffffffffffffffffffffffffffffffffffffffff9d610b2e9397969594976114da565b9b509390919293610b07565b6040513d8e823e3d90fd5b610d56610d5c92604051907f095ea7b3000000000000000000000000000000000000000000000000000000006020830152876024830152604482015260448152610d506064826114da565b8d611a25565b8b611a25565b8b38610960565b508b3b151561095a565b8051801592508215610d82575b505038610953565b610d959250602080918301019101611a0d565b3880610d7a565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f44504178423a207a65726f20616d6f756e7400000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f44504178423a2073616d6520636861696e0000000000000000000000000000006044820152fd5b8780fd5b8480fd5b503461016a57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016a5773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b503461016a57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016a573373ffffffffffffffffffffffffffffffffffffffff6001541603610f8f577fffffffffffffffffffffffff0000000000000000000000000000000000000000600154166001558054337fffffffffffffffffffffffff0000000000000000000000000000000000000000821617825573ffffffffffffffffffffffffffffffffffffffff3391167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b807f118cdaa7000000000000000000000000000000000000000000000000000000006024925233600452fd5b503461016a57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016a57610ff2611858565b7fffffffffffffffffffffffff0000000000000000000000000000000000000000600154166001558073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461016a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016a576004356110ba6113f3565b906110c3611858565b80835260026020526040832073ffffffffffffffffffffffffffffffffffffffff831684526020527f1493800d4354ca316e54aa2e202705a4af3bd07040e411ec96be52ae7f35525873ffffffffffffffffffffffffffffffffffffffff60408520936104b6604051956111368761148f565b61113f8161151b565b875261114d6001820161151b565b966020810197885284600283015416916040820192835285806004816003850154169360608601948552015493608081019485528a8d52600260205260408d208d838a1690526020528c6004604082206111a681611809565b6111b260018201611809565b8260028201558260038201550155519a5194511691511691519260405196879616998661163c565b503461016a57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016a57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461016a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016a576040906112846113f3565b6004358252600260205273ffffffffffffffffffffffffffffffffffffffff83832091168252602052206112b78161151b565b6113106112c66001840161151b565b9273ffffffffffffffffffffffffffffffffffffffff60028201541690600473ffffffffffffffffffffffffffffffffffffffff600383015416910154916040519586958661163c565b0390f35b503461016a5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016a5761135b61134f6113f3565b6044359060043561170f565b6040805173ffffffffffffffffffffffffffffffffffffffff939093168352602083019190915290f35b90503461016657817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101665760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361141657565b600080fd5b359073ffffffffffffffffffffffffffffffffffffffff8216820361141657565b90600182811c92168015611485575b602083101461145657565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f169161144b565b60a0810190811067ffffffffffffffff8211176114ab57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176114ab57604052565b906040519182600082549261152f8461143c565b808452936001811690811561159d5750600114611556575b50611554925003836114da565b565b90506000929192526020600020906000915b8183106115815750509060206115549282010138611547565b6020919350806001915483858901015201910190918492611568565b602093506115549592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b82010138611547565b919082519283825260005b8481106116275750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b806020809284010151828286010152016115e8565b919373ffffffffffffffffffffffffffffffffffffffff61167d60809598979661166f839560a0885260a08801906115dd565b9086820360208801526115dd565b971660408401521660608201520152565b67ffffffffffffffff81116114ab57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b81601f82011215611416578035906116df8261168e565b926116ed60405194856114da565b8284526020838301011161141657816000926020809301838601378301015290565b9060409193929360005260026020528160002073ffffffffffffffffffffffffffffffffffffffff60009216825260205220608060405161174f8161148f565b6117588361151b565b81526117666001840161151b565b6020820152600473ffffffffffffffffffffffffffffffffffffffff6002850154169384604084015273ffffffffffffffffffffffffffffffffffffffff60038201541660608401520154918291015283018093116117c3579190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181106117fd575050565b600081556001016117f2565b611813815461143c565b908161181d575050565b81601f6000931160011461182f575055565b8183526020832061184b91601f0160051c8101906001016117f2565b8082528160208120915555565b73ffffffffffffffffffffffffffffffffffffffff60005416330361187957565b7f118cdaa7000000000000000000000000000000000000000000000000000000006000523360045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff1680604051916118cd6060846114da565b602a83526020830160403682378351156119de57603090538251600110156119de576078602184015360295b6001811161193c575061190a575090565b7fe22e27eb00000000000000000000000000000000000000000000000000000000600052600452601460245260446000fd5b90600f811660108110156119de57600085518410156119b157507f3031323334353637383961626364656600000000000000000000000000000000901a8483016020015360041c9080156117c3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016118f9565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526032600452fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90816020910312611416575180151581036114165790565b60008073ffffffffffffffffffffffffffffffffffffffff611a5c93169360208151910182865af1611a55611aba565b9083611aea565b8051908115159182611a9f575b5050611a725750565b7f5274afe70000000000000000000000000000000000000000000000000000000060005260045260246000fd5b611ab29250602080918301019101611a0d565b153880611a69565b3d15611ae5573d90611acb8261168e565b91611ad960405193846114da565b82523d6000602084013e565b606090565b90611b295750805115611aff57805190602001fd5b7f1425ea420000000000000000000000000000000000000000000000000000000060005260046000fd5b81511580611b7e575b611b3a575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b50803b15611b3256fea2646970667358221220ffd7b5d06f7e44176f4ac4e7af2340a9449f1b90b31767d9829169d4fb64fa5e64736f6c634300081a0033e05d94e007bd2693a07f510723b205d97e34e65b06e7901114e84233c7207d1e0000000000000000000000002f321372e8a9755cd2ca6114eb8da32a14f8100b000000000000000000000000e432150cce91c13a887f7d836923d5597add8e310000000000000000000000002d5d7d31f671f86c782533cc367f14109a08271200000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000038000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000004268b8f0b87b6eae5d897996e6b845ddbd99adf3000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f40521500000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f40521500000000000000000000000058ad2ea4ffe4205549450bc1c0a938bc3291246b00000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000000000762696e616e636500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000761786c555344430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f40521500000000000000000000000058ad2ea4ffe4205549450bc1c0a938bc3291246b00000000000000000000000000000000000000000000000000000000000f424000000000000000000000000000000000000000000000000000000000000000086f7074696d69736d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000761786c5553444300000000000000000000000000000000000000000000000000" + "0x70d7f9fc244b4c2cb88c77f86d5e0c0e3fa6eb7795b30806eff0cfcc7442295b", + "0x60c0604052346106bf5761241d80380380610019816106ec565b928339810160c0828203126106bf5761003182610711565b602083015191906001600160a01b03831683036106bf5760408401516001600160a01b03811681036106bf5760608501516001600160401b0381116106bf5785019183601f840112156106bf5782519261009261008d85610725565b6106ec565b9360208086838152019160051b830101918683116106bf57602001905b8282106106dc5750505060808601516001600160401b0381116106bf5786019584601f880112156106bf578651966100e961008d89610725565b976020808a838152019160051b830101918783116106bf57602001905b8282106106c45750505060a0810151906001600160401b0382116106bf570184601f820112156106bf5780519061013f61008d83610725565b9560208088858152019360051b830101918183116106bf5760208101935b8385106105fe57505050505060018060a01b03169384156105e857600180546001600160a01b0319908116909155600080549182168717815560405196916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a360805260a052805192825184036105a6575060005b83811061021457604051611bfe90816107ff8239608051818181610a8901526112c3015260a0518181816108d501526111190152f35b61021e81836107af565b516001600160a01b0361023183886107af565b51169061023e83866107af565b51816000526002602052604060002083600052602052604060002090805180519060018060401b0382116104c357835490600182811c9216801561059c575b60208310146104a35781601f849311610549575b50602090601f83116001146104e4576000926104d9575b50508160011b916000199060031b1c19161782555b602081018051805191939160018301916001600160401b0382116104c3578254600181811c911680156104b9575b60208210146104a357601f811161045b575b50602090601f83116001146103d7579360019998979693836000805160206123fd83398151915297946004946103a5986000926103cc575b5050600019600383901b1c1916908c1b1790555b60408381015160028301805460a08e811b8f900393841684199283168117909355606088015160038701805491909516921682179093556080870151959094018590559451955191518181529687966103b393928801906107d9565b9086820360208801526107d9565b926040850152606084015260808301520390a3016101de565b015190503880610335565b90601f1983169184600052816000209260005b8181106104435750846004946103a5989460019e9d9c9b98948f94986000805160206123fd8339815191529c991061042a575b505050811b019055610349565b015160001960f88460031b161c1916905538808061041d565b929360206001819287860151815501950193016103ea565b836000526020600020601f840160051c81019160208510610499575b601f0160051c01905b81811061048d57506102fd565b60008155600101610480565b9091508190610477565b634e487b7160e01b600052602260045260246000fd5b90607f16906102eb565b634e487b7160e01b600052604160045260246000fd5b0151905038806102a8565b60008681528281209350601f198516905b8181106105315750908460019594939210610518575b505050811b0182556102bd565b015160001960f88460031b161c1916905538808061050b565b929360206001819287860151815501950193016104f5565b909150846000526020600020601f840160051c81019160208510610592575b90601f859493920160051c01905b8181106105835750610291565b60008155849350600101610576565b9091508190610568565b91607f169161027d565b62461bcd60e51b815260206004820181905260248201527f44504178423a2077726f6e6720627269646765526f75746573206c656e6774686044820152606490fd5b631e4fbdf760e01b600052600060045260246000fd5b84516001600160401b0381116106bf57820160a0818503601f1901126106bf576040519160a083016001600160401b038111848210176104c35760405260208201516001600160401b0381116106bf5785602061065d9285010161075f565b83526040820151926001600160401b0384116106bf5760a08361068788602080988198010161075f565b8584015261069760608201610711565b60408401526106a860808201610711565b60608401520151608082015281520194019361015d565b600080fd5b602080916106d184610711565b815201910190610106565b81518152602091820191016100af565b6040519190601f01601f191682016001600160401b038111838210176104c357604052565b51906001600160a01b03821682036106bf57565b6001600160401b0381116104c35760051b60200190565b60005b83811061074f5750506000910152565b818101518382015260200161073f565b81601f820112156106bf5780516001600160401b0381116104c35761078d601f8201601f19166020016106ec565b92818452602082840101116106bf576107ac916020808501910161073c565b90565b80518210156107c35760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b906020916107f28151809281855285808601910161073c565b601f01601f191601019056fe608080604052600436101561001d575b50361561001b57600080fd5b005b600090813560e01c90816314099c5814611279575080634b39060b146112085780634d9b79021461113d578063545614cc146110ce5780635c1da74f14610f73578063715018a614610eaf57806379ba509714610da55780638da5cb5b14610d5457806390cd09841461071d578063d65259a3146101c4578063e30c3978146101725763f2fde38b0361000f573461016f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016f5760043573ffffffffffffffffffffffffffffffffffffffff811680910361016b5761010261174c565b807fffffffffffffffffffffffff0000000000000000000000000000000000000000600154161760015573ffffffffffffffffffffffffffffffffffffffff8254167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b5080fd5b80fd5b503461016f57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016f57602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b503461016f5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016f576004356101ff6112e7565b906044359167ffffffffffffffff83116107195760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8436030112610719576040519261024c84611383565b806004013567ffffffffffffffff81116107155761027090600436918401016115bc565b8452602481013567ffffffffffffffff81116107155761029690600436918401016115bc565b93602081019485526102aa6044830161130f565b90604081019182526102be6064840161130f565b916060820192835260846080830194013584526102d961174c565b8588526002602052604080892060009073ffffffffffffffffffffffffffffffffffffffff881682526020522090825180519067ffffffffffffffff82116106e8576103258454611330565b601f81116106b8575b50602090601f83116001146106195761037c92918c91836104c1575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b82555b60018201885180519067ffffffffffffffff82116105ec578b6103a28454611330565b601f81116105b1575b50506020908c601f84116001146104cc5773ffffffffffffffffffffffffffffffffffffffff99957fe05d94e007bd2693a07f510723b205d97e34e65b06e7901114e84233c7207d1e9b999561043f866104bb9b9760049b978f978897926104c15750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b90555b511693600283018286167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055511693600382018986167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055519485910155519851604051968796169986611530565b0390a380f35b01519050388061034a565b91907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08416858452828420935b8181106105995750957fe05d94e007bd2693a07f510723b205d97e34e65b06e7901114e84233c7207d1e9b999560018660049a9673ffffffffffffffffffffffffffffffffffffffff9e9a968f97966104bb9e9a899810610562575b505050811b019055610442565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c19169055388080610555565b929360206001819287860151815501950193016104f9565b602082866105db945220601f850160051c810191602086106105e2575b601f0160051c01906116e6565b8b386103ab565b90915081906105ce565b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b848c52818c2091907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe084168d5b8181106106a05750908460019594939210610669575b505050811b01825561037f565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c1916905538808061065c565b92936020600181928786015181550195019301610646565b6106e290858d5260208d20601f850160051c810191602086106105e257601f0160051c01906116e6565b3861032e565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b8580fd5b8380fd5b503461016f5760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016f576004356107586112e7565b60443573ffffffffffffffffffffffffffffffffffffffff8116808203610c90576064359160843567ffffffffffffffff8111610c425736602382011215610c4257806004013567ffffffffffffffff8111610d50573691016024011161071557468514610cf2578215610c9457826107d19186611603565b85879592955260026020526040872083885260205260408720604051906107f782611383565b6108008161140f565b825261080e6001820161140f565b916020810192835273ffffffffffffffffffffffffffffffffffffffff600283015416604082015273ffffffffffffffffffffffffffffffffffffffff600481600385015416936060840194855201549860808301998a5216976108bb6040517f23b872dd000000000000000000000000000000000000000000000000000000006020820152336024820152306044820152866064820152606481526108b56084826113ce565b8a611a66565b6108fe73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169151828b61179b565b8a82519161092273ffffffffffffffffffffffffffffffffffffffff8651166118e8565b9073ffffffffffffffffffffffffffffffffffffffff604051991698896020820152602081526109536040826113ce565b875190823b15610c90576109e9958d610a496109b994610a1966016bcc41e90000956040519b8c9a8b998a987f2e9b7470000000000000000000000000000000000000000000000000000000008a523060048b015260e060248b015260e48a01906114d1565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8983030160448a01526114d1565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8783030160648801526114d1565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8583030160848601526114d1565b9060a48301523260c483015203925af18015610c8557610c51575b509087610ab973ffffffffffffffffffffffffffffffffffffffff8c9594610ab08b837f000000000000000000000000000000000000000000000000000000000000000016809661179b565b519351166118e8565b906040519387602086015260208552610ad36040866113ce565b5193813b1561071557858094610bbb610b5b97610b8b610b2b956040519a8b998a9889977fb541708400000000000000000000000000000000000000000000000000000000895260a060048a015260a48901906114d1565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8883030160248901526114d1565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8683030160448701526114d1565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8483030160648501526114d1565b8c608483015203925af18015610c4657610c23575b50937f7a1aaa549d494a115465b34eba936c63fadb6c733c73b1aa66b46ff791df58479360e09388889460405195338752602087015260408601526060850152608084015260a083015260c0820152a180f35b81610c33919796959493976113ce565b610c4257909192938638610bd0565b8680fd5b6040513d84823e3d90fd5b610ab98b610c7973ffffffffffffffffffffffffffffffffffffffff9d8c94979695976113ce565b9b505092909192610a64565b6040513d8d823e3d90fd5b8480fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f44504178423a207a65726f20616d6f756e7400000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f44504178423a2073616d6520636861696e0000000000000000000000000000006044820152fd5b8780fd5b503461016f57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016f5773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b503461016f57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016f573373ffffffffffffffffffffffffffffffffffffffff6001541603610e83577fffffffffffffffffffffffff0000000000000000000000000000000000000000600154166001558054337fffffffffffffffffffffffff0000000000000000000000000000000000000000821617825573ffffffffffffffffffffffffffffffffffffffff3391167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b807f118cdaa7000000000000000000000000000000000000000000000000000000006024925233600452fd5b503461016f57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016f57610ee661174c565b7fffffffffffffffffffffffff0000000000000000000000000000000000000000600154166001558073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461016f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016f57600435610fae6112e7565b90610fb761174c565b80835260026020526040832073ffffffffffffffffffffffffffffffffffffffff831684526020527f1493800d4354ca316e54aa2e202705a4af3bd07040e411ec96be52ae7f35525873ffffffffffffffffffffffffffffffffffffffff60408520936104bb6040519561102a87611383565b6110338161140f565b87526110416001820161140f565b966020810197885284600283015416916040820192835285806004816003850154169360608601948552015493608081019485528a8d52600260205260408d208d838a1690526020528c60046040822061109a816116fd565b6110a6600182016116fd565b8260028201558260038201550155519a51945116915116915192604051968796169986611530565b503461016f57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016f57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461016f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016f576040906111786112e7565b6004358252600260205273ffffffffffffffffffffffffffffffffffffffff83832091168252602052206111ab8161140f565b6112046111ba6001840161140f565b9273ffffffffffffffffffffffffffffffffffffffff60028201541690600473ffffffffffffffffffffffffffffffffffffffff6003830154169101549160405195869586611530565b0390f35b503461016f5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016f5761124f6112436112e7565b60443590600435611603565b6040805173ffffffffffffffffffffffffffffffffffffffff939093168352602083019190915290f35b90503461016b57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016b5760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361130a57565b600080fd5b359073ffffffffffffffffffffffffffffffffffffffff8216820361130a57565b90600182811c92168015611379575b602083101461134a57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f169161133f565b60a0810190811067ffffffffffffffff82111761139f57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761139f57604052565b906040519182600082549261142384611330565b8084529360018116908115611491575060011461144a575b50611448925003836113ce565b565b90506000929192526020600020906000915b818310611475575050906020611448928201013861143b565b602091935080600191548385890101520191019091849261145c565b602093506114489592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201013861143b565b919082519283825260005b84811061151b5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b806020809284010151828286010152016114dc565b919373ffffffffffffffffffffffffffffffffffffffff611571608095989796611563839560a0885260a08801906114d1565b9086820360208801526114d1565b971660408401521660608201520152565b67ffffffffffffffff811161139f57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b81601f8201121561130a578035906115d382611582565b926115e160405194856113ce565b8284526020838301011161130a57816000926020809301838601378301015290565b9060409193929360005260026020528160002073ffffffffffffffffffffffffffffffffffffffff60009216825260205220608060405161164381611383565b61164c8361140f565b815261165a6001840161140f565b6020820152600473ffffffffffffffffffffffffffffffffffffffff6002850154169384604084015273ffffffffffffffffffffffffffffffffffffffff60038201541660608401520154918291015283018093116116b7579190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181106116f1575050565b600081556001016116e6565b6117078154611330565b9081611711575050565b81601f60009311600114611723575055565b8183526020832061173f91601f0160051c8101906001016116e6565b8082528160208120915555565b73ffffffffffffffffffffffffffffffffffffffff60005416330361176d57565b7f118cdaa7000000000000000000000000000000000000000000000000000000006000523360045260246000fd5b6040517f095ea7b3000000000000000000000000000000000000000000000000000000006020820190815273ffffffffffffffffffffffffffffffffffffffff8416602483015260448083019590955293815291926117fb6064846113ce565b60008073ffffffffffffffffffffffffffffffffffffffff84169285519082855af190611826611afb565b826118b6575b50816118ab575b501561183e57505050565b6118a66114489373ffffffffffffffffffffffffffffffffffffffff604051917f095ea7b300000000000000000000000000000000000000000000000000000000602084015216602482015260006044820152604481526118a06064826113ce565b82611a66565b611a66565b90503b151538611833565b805191925081159182156118ce575b5050903861182c565b6118e19250602080918301019101611a4e565b38806118c5565b73ffffffffffffffffffffffffffffffffffffffff16806040519161190e6060846113ce565b602a8352602083016040368237835115611a1f5760309053825160011015611a1f576078602184015360295b6001811161197d575061194b575090565b7fe22e27eb00000000000000000000000000000000000000000000000000000000600052600452601460245260446000fd5b90600f81166010811015611a1f57600085518410156119f257507f3031323334353637383961626364656600000000000000000000000000000000901a8483016020015360041c9080156116b7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161193a565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526032600452fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9081602091031261130a5751801515810361130a5790565b60008073ffffffffffffffffffffffffffffffffffffffff611a9d93169360208151910182865af1611a96611afb565b9083611b2b565b8051908115159182611ae0575b5050611ab35750565b7f5274afe70000000000000000000000000000000000000000000000000000000060005260045260246000fd5b611af39250602080918301019101611a4e565b153880611aaa565b3d15611b26573d90611b0c82611582565b91611b1a60405193846113ce565b82523d6000602084013e565b606090565b90611b6a5750805115611b4057805190602001fd5b7f1425ea420000000000000000000000000000000000000000000000000000000060005260046000fd5b81511580611bbf575b611b7b575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b50803b15611b7356fea26469706673582212203ed107f418492d68c16ea1b19f6b07b775a2977ead16c19dea6c57ae345f335864736f6c634300081a0033e05d94e007bd2693a07f510723b205d97e34e65b06e7901114e84233c7207d1e0000000000000000000000002f321372e8a9755cd2ca6114eb8da32a14f8100b000000000000000000000000e432150cce91c13a887f7d836923d5597add8e310000000000000000000000002d5d7d31f671f86c782533cc367f14109a08271200000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000038000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000004268b8f0b87b6eae5d897996e6b845ddbd99adf3000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f40521500000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f40521500000000000000000000000058ad2ea4ffe4205549450bc1c0a938bc3291246b00000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000000000762696e616e636500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000761786c555344430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f40521500000000000000000000000058ad2ea4ffe4205549450bc1c0a938bc3291246b00000000000000000000000000000000000000000000000000000000000f424000000000000000000000000000000000000000000000000000000000000000086f7074696d69736d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000761786c5553444300000000000000000000000000000000000000000000000000" ], "transaction": { "from": "0x2f321372e8a9755cd2ca6114eb8da32a14f8100b", "to": "0x4ce25be5611b6527ea48f7abf513d48bacb4cc44", - "gas": "0x287ebe", + "gas": "0x28ca72", "value": "0x0", - "input": "0xcdcb760a5073c4185035022abe6370bb7fe986ebe0013c4f1153b783027360ed07e1174e000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000027fc60c0604052346106bf576123dc80380380610019816106ec565b928339810160c0828203126106bf5761003182610711565b602083015191906001600160a01b03831683036106bf5760408401516001600160a01b03811681036106bf5760608501516001600160401b0381116106bf5785019183601f840112156106bf5782519261009261008d85610725565b6106ec565b9360208086838152019160051b830101918683116106bf57602001905b8282106106dc5750505060808601516001600160401b0381116106bf5786019584601f880112156106bf578651966100e961008d89610725565b976020808a838152019160051b830101918783116106bf57602001905b8282106106c45750505060a0810151906001600160401b0382116106bf570184601f820112156106bf5780519061013f61008d83610725565b9560208088858152019360051b830101918183116106bf5760208101935b8385106105fe57505050505060018060a01b03169384156105e857600180546001600160a01b0319908116909155600080549182168717815560405196916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a360805260a052805192825184036105a6575060005b83811061021457604051611bbd90816107ff82396080518181816108f901526113cf015260a05181818161097801526112250152f35b61021e81836107af565b516001600160a01b0361023183886107af565b51169061023e83866107af565b51816000526002602052604060002083600052602052604060002090805180519060018060401b0382116104c357835490600182811c9216801561059c575b60208310146104a35781601f849311610549575b50602090601f83116001146104e4576000926104d9575b50508160011b916000199060031b1c19161782555b602081018051805191939160018301916001600160401b0382116104c3578254600181811c911680156104b9575b60208210146104a357601f811161045b575b50602090601f83116001146103d7579360019998979693836000805160206123bc83398151915297946004946103a5986000926103cc575b5050600019600383901b1c1916908c1b1790555b60408381015160028301805460a08e811b8f900393841684199283168117909355606088015160038701805491909516921682179093556080870151959094018590559451955191518181529687966103b393928801906107d9565b9086820360208801526107d9565b926040850152606084015260808301520390a3016101de565b015190503880610335565b90601f1983169184600052816000209260005b8181106104435750846004946103a5989460019e9d9c9b98948f94986000805160206123bc8339815191529c991061042a575b505050811b019055610349565b015160001960f88460031b161c1916905538808061041d565b929360206001819287860151815501950193016103ea565b836000526020600020601f840160051c81019160208510610499575b601f0160051c01905b81811061048d57506102fd565b60008155600101610480565b9091508190610477565b634e487b7160e01b600052602260045260246000fd5b90607f16906102eb565b634e487b7160e01b600052604160045260246000fd5b0151905038806102a8565b60008681528281209350601f198516905b8181106105315750908460019594939210610518575b505050811b0182556102bd565b015160001960f88460031b161c1916905538808061050b565b929360206001819287860151815501950193016104f5565b909150846000526020600020601f840160051c81019160208510610592575b90601f859493920160051c01905b8181106105835750610291565b60008155849350600101610576565b9091508190610568565b91607f169161027d565b62461bcd60e51b815260206004820181905260248201527f44504178423a2077726f6e6720627269646765526f75746573206c656e6774686044820152606490fd5b631e4fbdf760e01b600052600060045260246000fd5b84516001600160401b0381116106bf57820160a0818503601f1901126106bf576040519160a083016001600160401b038111848210176104c35760405260208201516001600160401b0381116106bf5785602061065d9285010161075f565b83526040820151926001600160401b0384116106bf5760a08361068788602080988198010161075f565b8584015261069760608201610711565b60408401526106a860808201610711565b60608401520151608082015281520194019361015d565b600080fd5b602080916106d184610711565b815201910190610106565b81518152602091820191016100af565b6040519190601f01601f191682016001600160401b038111838210176104c357604052565b51906001600160a01b03821682036106bf57565b6001600160401b0381116104c35760051b60200190565b60005b83811061074f5750506000910152565b818101518382015260200161073f565b81601f820112156106bf5780516001600160401b0381116104c35761078d601f8201601f19166020016106ec565b92818452602082840101116106bf576107ac916020808501910161073c565b90565b80518210156107c35760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b906020916107f28151809281855285808601910161073c565b601f01601f191601019056fe608080604052600436101561001357600080fd5b600090813560e01c90816314099c5814611385575080634b39060b146113145780634d9b790214611249578063545614cc146111da5780635c1da74f1461107f578063715018a614610fbb57806379ba509714610eb15780638da5cb5b14610e6057806390cd098414610718578063d65259a3146101bf578063e30c39781461016d5763f2fde38b146100a557600080fd5b3461016a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016a5760043573ffffffffffffffffffffffffffffffffffffffff8116809103610166576100fd611858565b807fffffffffffffffffffffffff0000000000000000000000000000000000000000600154161760015573ffffffffffffffffffffffffffffffffffffffff8254167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b5080fd5b80fd5b503461016a57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016a57602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b503461016a5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016a576004356101fa6113f3565b906044359167ffffffffffffffff83116107145760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc843603011261071457604051926102478461148f565b806004013567ffffffffffffffff81116107105761026b90600436918401016116c8565b8452602481013567ffffffffffffffff81116107105761029190600436918401016116c8565b93602081019485526102a56044830161141b565b90604081019182526102b96064840161141b565b916060820192835260846080830194013584526102d4611858565b8588526002602052604080892060009073ffffffffffffffffffffffffffffffffffffffff881682526020522090825180519067ffffffffffffffff82116106e357610320845461143c565b601f81116106b3575b50602090601f83116001146106145761037792918c91836104bc575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b82555b60018201885180519067ffffffffffffffff82116105e7578b61039d845461143c565b601f81116105ac575b50506020908c601f84116001146104c75773ffffffffffffffffffffffffffffffffffffffff99957fe05d94e007bd2693a07f510723b205d97e34e65b06e7901114e84233c7207d1e9b999561043a866104b69b9760049b978f978897926104bc5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b90555b511693600283018286167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055511693600382018986167fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905551948591015551985160405196879616998661163c565b0390a380f35b015190503880610345565b91907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08416858452828420935b8181106105945750957fe05d94e007bd2693a07f510723b205d97e34e65b06e7901114e84233c7207d1e9b999560018660049a9673ffffffffffffffffffffffffffffffffffffffff9e9a968f97966104b69e9a89981061055d575b505050811b01905561043d565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c19169055388080610550565b929360206001819287860151815501950193016104f4565b602082866105d6945220601f850160051c810191602086106105dd575b601f0160051c01906117f2565b8b386103a6565b90915081906105c9565b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b848c52818c2091907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe084168d5b81811061069b5750908460019594939210610664575b505050811b01825561037a565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c19169055388080610657565b92936020600181928786015181550195019301610641565b6106dd90858d5260208d20601f850160051c810191602086106105dd57601f0160051c01906117f2565b38610329565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b8580fd5b8380fd5b503461016a5760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016a576004356107536113f3565b60443573ffffffffffffffffffffffffffffffffffffffff8116808203610e5c576064359160843567ffffffffffffffff8111610cb75736602382011215610cb757806004013567ffffffffffffffff8111610e58573691016024011161071057468514610dfa578215610d9c57826107cc918661170f565b8587959295526002602052604087208388526020526040872094604051956107f38761148f565b6107fc8161151b565b875261080a6001820161151b565b916020880192835273ffffffffffffffffffffffffffffffffffffffff600283015416604089015273ffffffffffffffffffffffffffffffffffffffff6004816003850154169360608b0194855201549160808a0192835216976108b76040517f23b872dd000000000000000000000000000000000000000000000000000000006020820152336024820152306044820152866064820152606481526108b16084826114da565b8a611a25565b6040517f095ea7b3000000000000000000000000000000000000000000000000000000006020820190815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016602483018190526044808401899052835293918d91829081908e9061093f6064866114da565b828551925af161094d611aba565b81610d6d575b5080610d63575b15610d05575b5073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168351906109bb73ffffffffffffffffffffffffffffffffffffffff8851166118a7565b9173ffffffffffffffffffffffffffffffffffffffff6040519b169a8b6020820152602081526109ec6040826114da565b8951955191833b15610710578f610a51938d91610ae1610a819a610ab18b976040519d8e9c8d9b8c9a7f17a49f7c000000000000000000000000000000000000000000000000000000008c523360048d015261012060248d01526101248c01906115dd565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8b83030160448c01526115dd565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8983030160648a01526115dd565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8783030160848801526115dd565b9260a485015260c484015260e48301523361010483015203925af18015610cfa57610cc6575b5090610b2e73ffffffffffffffffffffffffffffffffffffffff8c959493519351166118a7565b906040519387602086015260208552610b486040866114da565b5193813b1561071057858094610c30610bd097610c00610ba0956040519a8b998a9889977fb541708400000000000000000000000000000000000000000000000000000000895260a060048a015260a48901906115dd565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8883030160248901526115dd565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8683030160448701526115dd565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8483030160648501526115dd565b89608483015203925af18015610cbb57610c98575b50937f7a1aaa549d494a115465b34eba936c63fadb6c733c73b1aa66b46ff791df58479360e09388889460405195338752602087015260408601526060850152608084015260a083015260c0820152a180f35b81610ca8919796959493976114da565b610cb757909192938638610c45565b8680fd5b6040513d84823e3d90fd5b8b610cee73ffffffffffffffffffffffffffffffffffffffff9d610b2e9397969594976114da565b9b509390919293610b07565b6040513d8e823e3d90fd5b610d56610d5c92604051907f095ea7b3000000000000000000000000000000000000000000000000000000006020830152876024830152604482015260448152610d506064826114da565b8d611a25565b8b611a25565b8b38610960565b508b3b151561095a565b8051801592508215610d82575b505038610953565b610d959250602080918301019101611a0d565b3880610d7a565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f44504178423a207a65726f20616d6f756e7400000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f44504178423a2073616d6520636861696e0000000000000000000000000000006044820152fd5b8780fd5b8480fd5b503461016a57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016a5773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b503461016a57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016a573373ffffffffffffffffffffffffffffffffffffffff6001541603610f8f577fffffffffffffffffffffffff0000000000000000000000000000000000000000600154166001558054337fffffffffffffffffffffffff0000000000000000000000000000000000000000821617825573ffffffffffffffffffffffffffffffffffffffff3391167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b807f118cdaa7000000000000000000000000000000000000000000000000000000006024925233600452fd5b503461016a57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016a57610ff2611858565b7fffffffffffffffffffffffff0000000000000000000000000000000000000000600154166001558073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461016a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016a576004356110ba6113f3565b906110c3611858565b80835260026020526040832073ffffffffffffffffffffffffffffffffffffffff831684526020527f1493800d4354ca316e54aa2e202705a4af3bd07040e411ec96be52ae7f35525873ffffffffffffffffffffffffffffffffffffffff60408520936104b6604051956111368761148f565b61113f8161151b565b875261114d6001820161151b565b966020810197885284600283015416916040820192835285806004816003850154169360608601948552015493608081019485528a8d52600260205260408d208d838a1690526020528c6004604082206111a681611809565b6111b260018201611809565b8260028201558260038201550155519a5194511691511691519260405196879616998661163c565b503461016a57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016a57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461016a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016a576040906112846113f3565b6004358252600260205273ffffffffffffffffffffffffffffffffffffffff83832091168252602052206112b78161151b565b6113106112c66001840161151b565b9273ffffffffffffffffffffffffffffffffffffffff60028201541690600473ffffffffffffffffffffffffffffffffffffffff600383015416910154916040519586958661163c565b0390f35b503461016a5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016a5761135b61134f6113f3565b6044359060043561170f565b6040805173ffffffffffffffffffffffffffffffffffffffff939093168352602083019190915290f35b90503461016657817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101665760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361141657565b600080fd5b359073ffffffffffffffffffffffffffffffffffffffff8216820361141657565b90600182811c92168015611485575b602083101461145657565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f169161144b565b60a0810190811067ffffffffffffffff8211176114ab57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176114ab57604052565b906040519182600082549261152f8461143c565b808452936001811690811561159d5750600114611556575b50611554925003836114da565b565b90506000929192526020600020906000915b8183106115815750509060206115549282010138611547565b6020919350806001915483858901015201910190918492611568565b602093506115549592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b82010138611547565b919082519283825260005b8481106116275750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b806020809284010151828286010152016115e8565b919373ffffffffffffffffffffffffffffffffffffffff61167d60809598979661166f839560a0885260a08801906115dd565b9086820360208801526115dd565b971660408401521660608201520152565b67ffffffffffffffff81116114ab57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b81601f82011215611416578035906116df8261168e565b926116ed60405194856114da565b8284526020838301011161141657816000926020809301838601378301015290565b9060409193929360005260026020528160002073ffffffffffffffffffffffffffffffffffffffff60009216825260205220608060405161174f8161148f565b6117588361151b565b81526117666001840161151b565b6020820152600473ffffffffffffffffffffffffffffffffffffffff6002850154169384604084015273ffffffffffffffffffffffffffffffffffffffff60038201541660608401520154918291015283018093116117c3579190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181106117fd575050565b600081556001016117f2565b611813815461143c565b908161181d575050565b81601f6000931160011461182f575055565b8183526020832061184b91601f0160051c8101906001016117f2565b8082528160208120915555565b73ffffffffffffffffffffffffffffffffffffffff60005416330361187957565b7f118cdaa7000000000000000000000000000000000000000000000000000000006000523360045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff1680604051916118cd6060846114da565b602a83526020830160403682378351156119de57603090538251600110156119de576078602184015360295b6001811161193c575061190a575090565b7fe22e27eb00000000000000000000000000000000000000000000000000000000600052600452601460245260446000fd5b90600f811660108110156119de57600085518410156119b157507f3031323334353637383961626364656600000000000000000000000000000000901a8483016020015360041c9080156117c3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016118f9565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526032600452fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90816020910312611416575180151581036114165790565b60008073ffffffffffffffffffffffffffffffffffffffff611a5c93169360208151910182865af1611a55611aba565b9083611aea565b8051908115159182611a9f575b5050611a725750565b7f5274afe70000000000000000000000000000000000000000000000000000000060005260045260246000fd5b611ab29250602080918301019101611a0d565b153880611a69565b3d15611ae5573d90611acb8261168e565b91611ad960405193846114da565b82523d6000602084013e565b606090565b90611b295750805115611aff57805190602001fd5b7f1425ea420000000000000000000000000000000000000000000000000000000060005260046000fd5b81511580611b7e575b611b3a575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b50803b15611b3256fea2646970667358221220ffd7b5d06f7e44176f4ac4e7af2340a9449f1b90b31767d9829169d4fb64fa5e64736f6c634300081a0033e05d94e007bd2693a07f510723b205d97e34e65b06e7901114e84233c7207d1e0000000000000000000000002f321372e8a9755cd2ca6114eb8da32a14f8100b000000000000000000000000e432150cce91c13a887f7d836923d5597add8e310000000000000000000000002d5d7d31f671f86c782533cc367f14109a08271200000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000038000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000004268b8f0b87b6eae5d897996e6b845ddbd99adf3000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f40521500000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f40521500000000000000000000000058ad2ea4ffe4205549450bc1c0a938bc3291246b00000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000000000762696e616e636500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000761786c555344430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f40521500000000000000000000000058ad2ea4ffe4205549450bc1c0a938bc3291246b00000000000000000000000000000000000000000000000000000000000f424000000000000000000000000000000000000000000000000000000000000000086f7074696d69736d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000761786c555344430000000000000000000000000000000000000000000000000000000000", - "nonce": "0xefc", + "input": "0xcdcb760a70d7f9fc244b4c2cb88c77f86d5e0c0e3fa6eb7795b30806eff0cfcc7442295b0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000283d60c0604052346106bf5761241d80380380610019816106ec565b928339810160c0828203126106bf5761003182610711565b602083015191906001600160a01b03831683036106bf5760408401516001600160a01b03811681036106bf5760608501516001600160401b0381116106bf5785019183601f840112156106bf5782519261009261008d85610725565b6106ec565b9360208086838152019160051b830101918683116106bf57602001905b8282106106dc5750505060808601516001600160401b0381116106bf5786019584601f880112156106bf578651966100e961008d89610725565b976020808a838152019160051b830101918783116106bf57602001905b8282106106c45750505060a0810151906001600160401b0382116106bf570184601f820112156106bf5780519061013f61008d83610725565b9560208088858152019360051b830101918183116106bf5760208101935b8385106105fe57505050505060018060a01b03169384156105e857600180546001600160a01b0319908116909155600080549182168717815560405196916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a360805260a052805192825184036105a6575060005b83811061021457604051611bfe90816107ff8239608051818181610a8901526112c3015260a0518181816108d501526111190152f35b61021e81836107af565b516001600160a01b0361023183886107af565b51169061023e83866107af565b51816000526002602052604060002083600052602052604060002090805180519060018060401b0382116104c357835490600182811c9216801561059c575b60208310146104a35781601f849311610549575b50602090601f83116001146104e4576000926104d9575b50508160011b916000199060031b1c19161782555b602081018051805191939160018301916001600160401b0382116104c3578254600181811c911680156104b9575b60208210146104a357601f811161045b575b50602090601f83116001146103d7579360019998979693836000805160206123fd83398151915297946004946103a5986000926103cc575b5050600019600383901b1c1916908c1b1790555b60408381015160028301805460a08e811b8f900393841684199283168117909355606088015160038701805491909516921682179093556080870151959094018590559451955191518181529687966103b393928801906107d9565b9086820360208801526107d9565b926040850152606084015260808301520390a3016101de565b015190503880610335565b90601f1983169184600052816000209260005b8181106104435750846004946103a5989460019e9d9c9b98948f94986000805160206123fd8339815191529c991061042a575b505050811b019055610349565b015160001960f88460031b161c1916905538808061041d565b929360206001819287860151815501950193016103ea565b836000526020600020601f840160051c81019160208510610499575b601f0160051c01905b81811061048d57506102fd565b60008155600101610480565b9091508190610477565b634e487b7160e01b600052602260045260246000fd5b90607f16906102eb565b634e487b7160e01b600052604160045260246000fd5b0151905038806102a8565b60008681528281209350601f198516905b8181106105315750908460019594939210610518575b505050811b0182556102bd565b015160001960f88460031b161c1916905538808061050b565b929360206001819287860151815501950193016104f5565b909150846000526020600020601f840160051c81019160208510610592575b90601f859493920160051c01905b8181106105835750610291565b60008155849350600101610576565b9091508190610568565b91607f169161027d565b62461bcd60e51b815260206004820181905260248201527f44504178423a2077726f6e6720627269646765526f75746573206c656e6774686044820152606490fd5b631e4fbdf760e01b600052600060045260246000fd5b84516001600160401b0381116106bf57820160a0818503601f1901126106bf576040519160a083016001600160401b038111848210176104c35760405260208201516001600160401b0381116106bf5785602061065d9285010161075f565b83526040820151926001600160401b0384116106bf5760a08361068788602080988198010161075f565b8584015261069760608201610711565b60408401526106a860808201610711565b60608401520151608082015281520194019361015d565b600080fd5b602080916106d184610711565b815201910190610106565b81518152602091820191016100af565b6040519190601f01601f191682016001600160401b038111838210176104c357604052565b51906001600160a01b03821682036106bf57565b6001600160401b0381116104c35760051b60200190565b60005b83811061074f5750506000910152565b818101518382015260200161073f565b81601f820112156106bf5780516001600160401b0381116104c35761078d601f8201601f19166020016106ec565b92818452602082840101116106bf576107ac916020808501910161073c565b90565b80518210156107c35760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b906020916107f28151809281855285808601910161073c565b601f01601f191601019056fe608080604052600436101561001d575b50361561001b57600080fd5b005b600090813560e01c90816314099c5814611279575080634b39060b146112085780634d9b79021461113d578063545614cc146110ce5780635c1da74f14610f73578063715018a614610eaf57806379ba509714610da55780638da5cb5b14610d5457806390cd09841461071d578063d65259a3146101c4578063e30c3978146101725763f2fde38b0361000f573461016f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016f5760043573ffffffffffffffffffffffffffffffffffffffff811680910361016b5761010261174c565b807fffffffffffffffffffffffff0000000000000000000000000000000000000000600154161760015573ffffffffffffffffffffffffffffffffffffffff8254167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b5080fd5b80fd5b503461016f57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016f57602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b503461016f5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016f576004356101ff6112e7565b906044359167ffffffffffffffff83116107195760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8436030112610719576040519261024c84611383565b806004013567ffffffffffffffff81116107155761027090600436918401016115bc565b8452602481013567ffffffffffffffff81116107155761029690600436918401016115bc565b93602081019485526102aa6044830161130f565b90604081019182526102be6064840161130f565b916060820192835260846080830194013584526102d961174c565b8588526002602052604080892060009073ffffffffffffffffffffffffffffffffffffffff881682526020522090825180519067ffffffffffffffff82116106e8576103258454611330565b601f81116106b8575b50602090601f83116001146106195761037c92918c91836104c1575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b82555b60018201885180519067ffffffffffffffff82116105ec578b6103a28454611330565b601f81116105b1575b50506020908c601f84116001146104cc5773ffffffffffffffffffffffffffffffffffffffff99957fe05d94e007bd2693a07f510723b205d97e34e65b06e7901114e84233c7207d1e9b999561043f866104bb9b9760049b978f978897926104c15750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b90555b511693600283018286167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055511693600382018986167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055519485910155519851604051968796169986611530565b0390a380f35b01519050388061034a565b91907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08416858452828420935b8181106105995750957fe05d94e007bd2693a07f510723b205d97e34e65b06e7901114e84233c7207d1e9b999560018660049a9673ffffffffffffffffffffffffffffffffffffffff9e9a968f97966104bb9e9a899810610562575b505050811b019055610442565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c19169055388080610555565b929360206001819287860151815501950193016104f9565b602082866105db945220601f850160051c810191602086106105e2575b601f0160051c01906116e6565b8b386103ab565b90915081906105ce565b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b848c52818c2091907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe084168d5b8181106106a05750908460019594939210610669575b505050811b01825561037f565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c1916905538808061065c565b92936020600181928786015181550195019301610646565b6106e290858d5260208d20601f850160051c810191602086106105e257601f0160051c01906116e6565b3861032e565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b8580fd5b8380fd5b503461016f5760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016f576004356107586112e7565b60443573ffffffffffffffffffffffffffffffffffffffff8116808203610c90576064359160843567ffffffffffffffff8111610c425736602382011215610c4257806004013567ffffffffffffffff8111610d50573691016024011161071557468514610cf2578215610c9457826107d19186611603565b85879592955260026020526040872083885260205260408720604051906107f782611383565b6108008161140f565b825261080e6001820161140f565b916020810192835273ffffffffffffffffffffffffffffffffffffffff600283015416604082015273ffffffffffffffffffffffffffffffffffffffff600481600385015416936060840194855201549860808301998a5216976108bb6040517f23b872dd000000000000000000000000000000000000000000000000000000006020820152336024820152306044820152866064820152606481526108b56084826113ce565b8a611a66565b6108fe73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169151828b61179b565b8a82519161092273ffffffffffffffffffffffffffffffffffffffff8651166118e8565b9073ffffffffffffffffffffffffffffffffffffffff604051991698896020820152602081526109536040826113ce565b875190823b15610c90576109e9958d610a496109b994610a1966016bcc41e90000956040519b8c9a8b998a987f2e9b7470000000000000000000000000000000000000000000000000000000008a523060048b015260e060248b015260e48a01906114d1565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8983030160448a01526114d1565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8783030160648801526114d1565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8583030160848601526114d1565b9060a48301523260c483015203925af18015610c8557610c51575b509087610ab973ffffffffffffffffffffffffffffffffffffffff8c9594610ab08b837f000000000000000000000000000000000000000000000000000000000000000016809661179b565b519351166118e8565b906040519387602086015260208552610ad36040866113ce565b5193813b1561071557858094610bbb610b5b97610b8b610b2b956040519a8b998a9889977fb541708400000000000000000000000000000000000000000000000000000000895260a060048a015260a48901906114d1565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8883030160248901526114d1565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8683030160448701526114d1565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8483030160648501526114d1565b8c608483015203925af18015610c4657610c23575b50937f7a1aaa549d494a115465b34eba936c63fadb6c733c73b1aa66b46ff791df58479360e09388889460405195338752602087015260408601526060850152608084015260a083015260c0820152a180f35b81610c33919796959493976113ce565b610c4257909192938638610bd0565b8680fd5b6040513d84823e3d90fd5b610ab98b610c7973ffffffffffffffffffffffffffffffffffffffff9d8c94979695976113ce565b9b505092909192610a64565b6040513d8d823e3d90fd5b8480fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f44504178423a207a65726f20616d6f756e7400000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f44504178423a2073616d6520636861696e0000000000000000000000000000006044820152fd5b8780fd5b503461016f57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016f5773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b503461016f57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016f573373ffffffffffffffffffffffffffffffffffffffff6001541603610e83577fffffffffffffffffffffffff0000000000000000000000000000000000000000600154166001558054337fffffffffffffffffffffffff0000000000000000000000000000000000000000821617825573ffffffffffffffffffffffffffffffffffffffff3391167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b807f118cdaa7000000000000000000000000000000000000000000000000000000006024925233600452fd5b503461016f57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016f57610ee661174c565b7fffffffffffffffffffffffff0000000000000000000000000000000000000000600154166001558073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461016f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016f57600435610fae6112e7565b90610fb761174c565b80835260026020526040832073ffffffffffffffffffffffffffffffffffffffff831684526020527f1493800d4354ca316e54aa2e202705a4af3bd07040e411ec96be52ae7f35525873ffffffffffffffffffffffffffffffffffffffff60408520936104bb6040519561102a87611383565b6110338161140f565b87526110416001820161140f565b966020810197885284600283015416916040820192835285806004816003850154169360608601948552015493608081019485528a8d52600260205260408d208d838a1690526020528c60046040822061109a816116fd565b6110a6600182016116fd565b8260028201558260038201550155519a51945116915116915192604051968796169986611530565b503461016f57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016f57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461016f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016f576040906111786112e7565b6004358252600260205273ffffffffffffffffffffffffffffffffffffffff83832091168252602052206111ab8161140f565b6112046111ba6001840161140f565b9273ffffffffffffffffffffffffffffffffffffffff60028201541690600473ffffffffffffffffffffffffffffffffffffffff6003830154169101549160405195869586611530565b0390f35b503461016f5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016f5761124f6112436112e7565b60443590600435611603565b6040805173ffffffffffffffffffffffffffffffffffffffff939093168352602083019190915290f35b90503461016b57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016b5760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361130a57565b600080fd5b359073ffffffffffffffffffffffffffffffffffffffff8216820361130a57565b90600182811c92168015611379575b602083101461134a57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f169161133f565b60a0810190811067ffffffffffffffff82111761139f57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761139f57604052565b906040519182600082549261142384611330565b8084529360018116908115611491575060011461144a575b50611448925003836113ce565b565b90506000929192526020600020906000915b818310611475575050906020611448928201013861143b565b602091935080600191548385890101520191019091849261145c565b602093506114489592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201013861143b565b919082519283825260005b84811061151b5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b806020809284010151828286010152016114dc565b919373ffffffffffffffffffffffffffffffffffffffff611571608095989796611563839560a0885260a08801906114d1565b9086820360208801526114d1565b971660408401521660608201520152565b67ffffffffffffffff811161139f57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b81601f8201121561130a578035906115d382611582565b926115e160405194856113ce565b8284526020838301011161130a57816000926020809301838601378301015290565b9060409193929360005260026020528160002073ffffffffffffffffffffffffffffffffffffffff60009216825260205220608060405161164381611383565b61164c8361140f565b815261165a6001840161140f565b6020820152600473ffffffffffffffffffffffffffffffffffffffff6002850154169384604084015273ffffffffffffffffffffffffffffffffffffffff60038201541660608401520154918291015283018093116116b7579190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181106116f1575050565b600081556001016116e6565b6117078154611330565b9081611711575050565b81601f60009311600114611723575055565b8183526020832061173f91601f0160051c8101906001016116e6565b8082528160208120915555565b73ffffffffffffffffffffffffffffffffffffffff60005416330361176d57565b7f118cdaa7000000000000000000000000000000000000000000000000000000006000523360045260246000fd5b6040517f095ea7b3000000000000000000000000000000000000000000000000000000006020820190815273ffffffffffffffffffffffffffffffffffffffff8416602483015260448083019590955293815291926117fb6064846113ce565b60008073ffffffffffffffffffffffffffffffffffffffff84169285519082855af190611826611afb565b826118b6575b50816118ab575b501561183e57505050565b6118a66114489373ffffffffffffffffffffffffffffffffffffffff604051917f095ea7b300000000000000000000000000000000000000000000000000000000602084015216602482015260006044820152604481526118a06064826113ce565b82611a66565b611a66565b90503b151538611833565b805191925081159182156118ce575b5050903861182c565b6118e19250602080918301019101611a4e565b38806118c5565b73ffffffffffffffffffffffffffffffffffffffff16806040519161190e6060846113ce565b602a8352602083016040368237835115611a1f5760309053825160011015611a1f576078602184015360295b6001811161197d575061194b575090565b7fe22e27eb00000000000000000000000000000000000000000000000000000000600052600452601460245260446000fd5b90600f81166010811015611a1f57600085518410156119f257507f3031323334353637383961626364656600000000000000000000000000000000901a8483016020015360041c9080156116b7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161193a565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526032600452fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9081602091031261130a5751801515810361130a5790565b60008073ffffffffffffffffffffffffffffffffffffffff611a9d93169360208151910182865af1611a96611afb565b9083611b2b565b8051908115159182611ae0575b5050611ab35750565b7f5274afe70000000000000000000000000000000000000000000000000000000060005260045260246000fd5b611af39250602080918301019101611a4e565b153880611aaa565b3d15611b26573d90611b0c82611582565b91611b1a60405193846113ce565b82523d6000602084013e565b606090565b90611b6a5750805115611b4057805190602001fd5b7f1425ea420000000000000000000000000000000000000000000000000000000060005260046000fd5b81511580611bbf575b611b7b575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b50803b15611b7356fea26469706673582212203ed107f418492d68c16ea1b19f6b07b775a2977ead16c19dea6c57ae345f335864736f6c634300081a0033e05d94e007bd2693a07f510723b205d97e34e65b06e7901114e84233c7207d1e0000000000000000000000002f321372e8a9755cd2ca6114eb8da32a14f8100b000000000000000000000000e432150cce91c13a887f7d836923d5597add8e310000000000000000000000002d5d7d31f671f86c782533cc367f14109a08271200000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000038000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000004268b8f0b87b6eae5d897996e6b845ddbd99adf3000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f40521500000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f40521500000000000000000000000058ad2ea4ffe4205549450bc1c0a938bc3291246b00000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000000000762696e616e636500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000761786c555344430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f40521500000000000000000000000058ad2ea4ffe4205549450bc1c0a938bc3291246b00000000000000000000000000000000000000000000000000000000000f424000000000000000000000000000000000000000000000000000000000000000086f7074696d69736d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000761786c5553444300000000000000000000000000000000000000000000000000000000", + "nonce": "0xf0f", "chainId": "0x2105" }, "additionalContracts": [ { "transactionType": "CREATE2", - "address": "0x3c64fa3d562c25d31a53ddd410cfb369732f28f8", + "address": "0x0bfcde2d46d91ce1204205c9a09db0b6965a8401", "initCode": "0x67363d3d37363d34f03d5260086018f3" }, { "transactionType": "CREATE", - "address": "0x41697dd4ead744aac478cab436789a7e8859da54", - "initCode": "0x60c0604052346106bf576123dc80380380610019816106ec565b928339810160c0828203126106bf5761003182610711565b602083015191906001600160a01b03831683036106bf5760408401516001600160a01b03811681036106bf5760608501516001600160401b0381116106bf5785019183601f840112156106bf5782519261009261008d85610725565b6106ec565b9360208086838152019160051b830101918683116106bf57602001905b8282106106dc5750505060808601516001600160401b0381116106bf5786019584601f880112156106bf578651966100e961008d89610725565b976020808a838152019160051b830101918783116106bf57602001905b8282106106c45750505060a0810151906001600160401b0382116106bf570184601f820112156106bf5780519061013f61008d83610725565b9560208088858152019360051b830101918183116106bf5760208101935b8385106105fe57505050505060018060a01b03169384156105e857600180546001600160a01b0319908116909155600080549182168717815560405196916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a360805260a052805192825184036105a6575060005b83811061021457604051611bbd90816107ff82396080518181816108f901526113cf015260a05181818161097801526112250152f35b61021e81836107af565b516001600160a01b0361023183886107af565b51169061023e83866107af565b51816000526002602052604060002083600052602052604060002090805180519060018060401b0382116104c357835490600182811c9216801561059c575b60208310146104a35781601f849311610549575b50602090601f83116001146104e4576000926104d9575b50508160011b916000199060031b1c19161782555b602081018051805191939160018301916001600160401b0382116104c3578254600181811c911680156104b9575b60208210146104a357601f811161045b575b50602090601f83116001146103d7579360019998979693836000805160206123bc83398151915297946004946103a5986000926103cc575b5050600019600383901b1c1916908c1b1790555b60408381015160028301805460a08e811b8f900393841684199283168117909355606088015160038701805491909516921682179093556080870151959094018590559451955191518181529687966103b393928801906107d9565b9086820360208801526107d9565b926040850152606084015260808301520390a3016101de565b015190503880610335565b90601f1983169184600052816000209260005b8181106104435750846004946103a5989460019e9d9c9b98948f94986000805160206123bc8339815191529c991061042a575b505050811b019055610349565b015160001960f88460031b161c1916905538808061041d565b929360206001819287860151815501950193016103ea565b836000526020600020601f840160051c81019160208510610499575b601f0160051c01905b81811061048d57506102fd565b60008155600101610480565b9091508190610477565b634e487b7160e01b600052602260045260246000fd5b90607f16906102eb565b634e487b7160e01b600052604160045260246000fd5b0151905038806102a8565b60008681528281209350601f198516905b8181106105315750908460019594939210610518575b505050811b0182556102bd565b015160001960f88460031b161c1916905538808061050b565b929360206001819287860151815501950193016104f5565b909150846000526020600020601f840160051c81019160208510610592575b90601f859493920160051c01905b8181106105835750610291565b60008155849350600101610576565b9091508190610568565b91607f169161027d565b62461bcd60e51b815260206004820181905260248201527f44504178423a2077726f6e6720627269646765526f75746573206c656e6774686044820152606490fd5b631e4fbdf760e01b600052600060045260246000fd5b84516001600160401b0381116106bf57820160a0818503601f1901126106bf576040519160a083016001600160401b038111848210176104c35760405260208201516001600160401b0381116106bf5785602061065d9285010161075f565b83526040820151926001600160401b0384116106bf5760a08361068788602080988198010161075f565b8584015261069760608201610711565b60408401526106a860808201610711565b60608401520151608082015281520194019361015d565b600080fd5b602080916106d184610711565b815201910190610106565b81518152602091820191016100af565b6040519190601f01601f191682016001600160401b038111838210176104c357604052565b51906001600160a01b03821682036106bf57565b6001600160401b0381116104c35760051b60200190565b60005b83811061074f5750506000910152565b818101518382015260200161073f565b81601f820112156106bf5780516001600160401b0381116104c35761078d601f8201601f19166020016106ec565b92818452602082840101116106bf576107ac916020808501910161073c565b90565b80518210156107c35760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b906020916107f28151809281855285808601910161073c565b601f01601f191601019056fe608080604052600436101561001357600080fd5b600090813560e01c90816314099c5814611385575080634b39060b146113145780634d9b790214611249578063545614cc146111da5780635c1da74f1461107f578063715018a614610fbb57806379ba509714610eb15780638da5cb5b14610e6057806390cd098414610718578063d65259a3146101bf578063e30c39781461016d5763f2fde38b146100a557600080fd5b3461016a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016a5760043573ffffffffffffffffffffffffffffffffffffffff8116809103610166576100fd611858565b807fffffffffffffffffffffffff0000000000000000000000000000000000000000600154161760015573ffffffffffffffffffffffffffffffffffffffff8254167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b5080fd5b80fd5b503461016a57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016a57602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b503461016a5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016a576004356101fa6113f3565b906044359167ffffffffffffffff83116107145760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc843603011261071457604051926102478461148f565b806004013567ffffffffffffffff81116107105761026b90600436918401016116c8565b8452602481013567ffffffffffffffff81116107105761029190600436918401016116c8565b93602081019485526102a56044830161141b565b90604081019182526102b96064840161141b565b916060820192835260846080830194013584526102d4611858565b8588526002602052604080892060009073ffffffffffffffffffffffffffffffffffffffff881682526020522090825180519067ffffffffffffffff82116106e357610320845461143c565b601f81116106b3575b50602090601f83116001146106145761037792918c91836104bc575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b82555b60018201885180519067ffffffffffffffff82116105e7578b61039d845461143c565b601f81116105ac575b50506020908c601f84116001146104c75773ffffffffffffffffffffffffffffffffffffffff99957fe05d94e007bd2693a07f510723b205d97e34e65b06e7901114e84233c7207d1e9b999561043a866104b69b9760049b978f978897926104bc5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b90555b511693600283018286167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055511693600382018986167fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905551948591015551985160405196879616998661163c565b0390a380f35b015190503880610345565b91907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08416858452828420935b8181106105945750957fe05d94e007bd2693a07f510723b205d97e34e65b06e7901114e84233c7207d1e9b999560018660049a9673ffffffffffffffffffffffffffffffffffffffff9e9a968f97966104b69e9a89981061055d575b505050811b01905561043d565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c19169055388080610550565b929360206001819287860151815501950193016104f4565b602082866105d6945220601f850160051c810191602086106105dd575b601f0160051c01906117f2565b8b386103a6565b90915081906105c9565b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b848c52818c2091907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe084168d5b81811061069b5750908460019594939210610664575b505050811b01825561037a565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c19169055388080610657565b92936020600181928786015181550195019301610641565b6106dd90858d5260208d20601f850160051c810191602086106105dd57601f0160051c01906117f2565b38610329565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b8580fd5b8380fd5b503461016a5760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016a576004356107536113f3565b60443573ffffffffffffffffffffffffffffffffffffffff8116808203610e5c576064359160843567ffffffffffffffff8111610cb75736602382011215610cb757806004013567ffffffffffffffff8111610e58573691016024011161071057468514610dfa578215610d9c57826107cc918661170f565b8587959295526002602052604087208388526020526040872094604051956107f38761148f565b6107fc8161151b565b875261080a6001820161151b565b916020880192835273ffffffffffffffffffffffffffffffffffffffff600283015416604089015273ffffffffffffffffffffffffffffffffffffffff6004816003850154169360608b0194855201549160808a0192835216976108b76040517f23b872dd000000000000000000000000000000000000000000000000000000006020820152336024820152306044820152866064820152606481526108b16084826114da565b8a611a25565b6040517f095ea7b3000000000000000000000000000000000000000000000000000000006020820190815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016602483018190526044808401899052835293918d91829081908e9061093f6064866114da565b828551925af161094d611aba565b81610d6d575b5080610d63575b15610d05575b5073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168351906109bb73ffffffffffffffffffffffffffffffffffffffff8851166118a7565b9173ffffffffffffffffffffffffffffffffffffffff6040519b169a8b6020820152602081526109ec6040826114da565b8951955191833b15610710578f610a51938d91610ae1610a819a610ab18b976040519d8e9c8d9b8c9a7f17a49f7c000000000000000000000000000000000000000000000000000000008c523360048d015261012060248d01526101248c01906115dd565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8b83030160448c01526115dd565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8983030160648a01526115dd565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8783030160848801526115dd565b9260a485015260c484015260e48301523361010483015203925af18015610cfa57610cc6575b5090610b2e73ffffffffffffffffffffffffffffffffffffffff8c959493519351166118a7565b906040519387602086015260208552610b486040866114da565b5193813b1561071057858094610c30610bd097610c00610ba0956040519a8b998a9889977fb541708400000000000000000000000000000000000000000000000000000000895260a060048a015260a48901906115dd565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8883030160248901526115dd565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8683030160448701526115dd565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8483030160648501526115dd565b89608483015203925af18015610cbb57610c98575b50937f7a1aaa549d494a115465b34eba936c63fadb6c733c73b1aa66b46ff791df58479360e09388889460405195338752602087015260408601526060850152608084015260a083015260c0820152a180f35b81610ca8919796959493976114da565b610cb757909192938638610c45565b8680fd5b6040513d84823e3d90fd5b8b610cee73ffffffffffffffffffffffffffffffffffffffff9d610b2e9397969594976114da565b9b509390919293610b07565b6040513d8e823e3d90fd5b610d56610d5c92604051907f095ea7b3000000000000000000000000000000000000000000000000000000006020830152876024830152604482015260448152610d506064826114da565b8d611a25565b8b611a25565b8b38610960565b508b3b151561095a565b8051801592508215610d82575b505038610953565b610d959250602080918301019101611a0d565b3880610d7a565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f44504178423a207a65726f20616d6f756e7400000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f44504178423a2073616d6520636861696e0000000000000000000000000000006044820152fd5b8780fd5b8480fd5b503461016a57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016a5773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b503461016a57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016a573373ffffffffffffffffffffffffffffffffffffffff6001541603610f8f577fffffffffffffffffffffffff0000000000000000000000000000000000000000600154166001558054337fffffffffffffffffffffffff0000000000000000000000000000000000000000821617825573ffffffffffffffffffffffffffffffffffffffff3391167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b807f118cdaa7000000000000000000000000000000000000000000000000000000006024925233600452fd5b503461016a57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016a57610ff2611858565b7fffffffffffffffffffffffff0000000000000000000000000000000000000000600154166001558073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461016a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016a576004356110ba6113f3565b906110c3611858565b80835260026020526040832073ffffffffffffffffffffffffffffffffffffffff831684526020527f1493800d4354ca316e54aa2e202705a4af3bd07040e411ec96be52ae7f35525873ffffffffffffffffffffffffffffffffffffffff60408520936104b6604051956111368761148f565b61113f8161151b565b875261114d6001820161151b565b966020810197885284600283015416916040820192835285806004816003850154169360608601948552015493608081019485528a8d52600260205260408d208d838a1690526020528c6004604082206111a681611809565b6111b260018201611809565b8260028201558260038201550155519a5194511691511691519260405196879616998661163c565b503461016a57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016a57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461016a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016a576040906112846113f3565b6004358252600260205273ffffffffffffffffffffffffffffffffffffffff83832091168252602052206112b78161151b565b6113106112c66001840161151b565b9273ffffffffffffffffffffffffffffffffffffffff60028201541690600473ffffffffffffffffffffffffffffffffffffffff600383015416910154916040519586958661163c565b0390f35b503461016a5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016a5761135b61134f6113f3565b6044359060043561170f565b6040805173ffffffffffffffffffffffffffffffffffffffff939093168352602083019190915290f35b90503461016657817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101665760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361141657565b600080fd5b359073ffffffffffffffffffffffffffffffffffffffff8216820361141657565b90600182811c92168015611485575b602083101461145657565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f169161144b565b60a0810190811067ffffffffffffffff8211176114ab57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176114ab57604052565b906040519182600082549261152f8461143c565b808452936001811690811561159d5750600114611556575b50611554925003836114da565b565b90506000929192526020600020906000915b8183106115815750509060206115549282010138611547565b6020919350806001915483858901015201910190918492611568565b602093506115549592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b82010138611547565b919082519283825260005b8481106116275750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b806020809284010151828286010152016115e8565b919373ffffffffffffffffffffffffffffffffffffffff61167d60809598979661166f839560a0885260a08801906115dd565b9086820360208801526115dd565b971660408401521660608201520152565b67ffffffffffffffff81116114ab57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b81601f82011215611416578035906116df8261168e565b926116ed60405194856114da565b8284526020838301011161141657816000926020809301838601378301015290565b9060409193929360005260026020528160002073ffffffffffffffffffffffffffffffffffffffff60009216825260205220608060405161174f8161148f565b6117588361151b565b81526117666001840161151b565b6020820152600473ffffffffffffffffffffffffffffffffffffffff6002850154169384604084015273ffffffffffffffffffffffffffffffffffffffff60038201541660608401520154918291015283018093116117c3579190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181106117fd575050565b600081556001016117f2565b611813815461143c565b908161181d575050565b81601f6000931160011461182f575055565b8183526020832061184b91601f0160051c8101906001016117f2565b8082528160208120915555565b73ffffffffffffffffffffffffffffffffffffffff60005416330361187957565b7f118cdaa7000000000000000000000000000000000000000000000000000000006000523360045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff1680604051916118cd6060846114da565b602a83526020830160403682378351156119de57603090538251600110156119de576078602184015360295b6001811161193c575061190a575090565b7fe22e27eb00000000000000000000000000000000000000000000000000000000600052600452601460245260446000fd5b90600f811660108110156119de57600085518410156119b157507f3031323334353637383961626364656600000000000000000000000000000000901a8483016020015360041c9080156117c3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016118f9565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526032600452fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90816020910312611416575180151581036114165790565b60008073ffffffffffffffffffffffffffffffffffffffff611a5c93169360208151910182865af1611a55611aba565b9083611aea565b8051908115159182611a9f575b5050611a725750565b7f5274afe70000000000000000000000000000000000000000000000000000000060005260045260246000fd5b611ab29250602080918301019101611a0d565b153880611a69565b3d15611ae5573d90611acb8261168e565b91611ad960405193846114da565b82523d6000602084013e565b606090565b90611b295750805115611aff57805190602001fd5b7f1425ea420000000000000000000000000000000000000000000000000000000060005260046000fd5b81511580611b7e575b611b3a575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b50803b15611b3256fea2646970667358221220ffd7b5d06f7e44176f4ac4e7af2340a9449f1b90b31767d9829169d4fb64fa5e64736f6c634300081a0033e05d94e007bd2693a07f510723b205d97e34e65b06e7901114e84233c7207d1e0000000000000000000000002f321372e8a9755cd2ca6114eb8da32a14f8100b000000000000000000000000e432150cce91c13a887f7d836923d5597add8e310000000000000000000000002d5d7d31f671f86c782533cc367f14109a08271200000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000038000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000004268b8f0b87b6eae5d897996e6b845ddbd99adf3000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f40521500000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f40521500000000000000000000000058ad2ea4ffe4205549450bc1c0a938bc3291246b00000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000000000762696e616e636500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000761786c555344430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f40521500000000000000000000000058ad2ea4ffe4205549450bc1c0a938bc3291246b00000000000000000000000000000000000000000000000000000000000f424000000000000000000000000000000000000000000000000000000000000000086f7074696d69736d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000761786c5553444300000000000000000000000000000000000000000000000000" + "address": "0x412052da24c0f5adeeaee078954d393eaa524eee", + "initCode": "0x60c0604052346106bf5761241d80380380610019816106ec565b928339810160c0828203126106bf5761003182610711565b602083015191906001600160a01b03831683036106bf5760408401516001600160a01b03811681036106bf5760608501516001600160401b0381116106bf5785019183601f840112156106bf5782519261009261008d85610725565b6106ec565b9360208086838152019160051b830101918683116106bf57602001905b8282106106dc5750505060808601516001600160401b0381116106bf5786019584601f880112156106bf578651966100e961008d89610725565b976020808a838152019160051b830101918783116106bf57602001905b8282106106c45750505060a0810151906001600160401b0382116106bf570184601f820112156106bf5780519061013f61008d83610725565b9560208088858152019360051b830101918183116106bf5760208101935b8385106105fe57505050505060018060a01b03169384156105e857600180546001600160a01b0319908116909155600080549182168717815560405196916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a360805260a052805192825184036105a6575060005b83811061021457604051611bfe90816107ff8239608051818181610a8901526112c3015260a0518181816108d501526111190152f35b61021e81836107af565b516001600160a01b0361023183886107af565b51169061023e83866107af565b51816000526002602052604060002083600052602052604060002090805180519060018060401b0382116104c357835490600182811c9216801561059c575b60208310146104a35781601f849311610549575b50602090601f83116001146104e4576000926104d9575b50508160011b916000199060031b1c19161782555b602081018051805191939160018301916001600160401b0382116104c3578254600181811c911680156104b9575b60208210146104a357601f811161045b575b50602090601f83116001146103d7579360019998979693836000805160206123fd83398151915297946004946103a5986000926103cc575b5050600019600383901b1c1916908c1b1790555b60408381015160028301805460a08e811b8f900393841684199283168117909355606088015160038701805491909516921682179093556080870151959094018590559451955191518181529687966103b393928801906107d9565b9086820360208801526107d9565b926040850152606084015260808301520390a3016101de565b015190503880610335565b90601f1983169184600052816000209260005b8181106104435750846004946103a5989460019e9d9c9b98948f94986000805160206123fd8339815191529c991061042a575b505050811b019055610349565b015160001960f88460031b161c1916905538808061041d565b929360206001819287860151815501950193016103ea565b836000526020600020601f840160051c81019160208510610499575b601f0160051c01905b81811061048d57506102fd565b60008155600101610480565b9091508190610477565b634e487b7160e01b600052602260045260246000fd5b90607f16906102eb565b634e487b7160e01b600052604160045260246000fd5b0151905038806102a8565b60008681528281209350601f198516905b8181106105315750908460019594939210610518575b505050811b0182556102bd565b015160001960f88460031b161c1916905538808061050b565b929360206001819287860151815501950193016104f5565b909150846000526020600020601f840160051c81019160208510610592575b90601f859493920160051c01905b8181106105835750610291565b60008155849350600101610576565b9091508190610568565b91607f169161027d565b62461bcd60e51b815260206004820181905260248201527f44504178423a2077726f6e6720627269646765526f75746573206c656e6774686044820152606490fd5b631e4fbdf760e01b600052600060045260246000fd5b84516001600160401b0381116106bf57820160a0818503601f1901126106bf576040519160a083016001600160401b038111848210176104c35760405260208201516001600160401b0381116106bf5785602061065d9285010161075f565b83526040820151926001600160401b0384116106bf5760a08361068788602080988198010161075f565b8584015261069760608201610711565b60408401526106a860808201610711565b60608401520151608082015281520194019361015d565b600080fd5b602080916106d184610711565b815201910190610106565b81518152602091820191016100af565b6040519190601f01601f191682016001600160401b038111838210176104c357604052565b51906001600160a01b03821682036106bf57565b6001600160401b0381116104c35760051b60200190565b60005b83811061074f5750506000910152565b818101518382015260200161073f565b81601f820112156106bf5780516001600160401b0381116104c35761078d601f8201601f19166020016106ec565b92818452602082840101116106bf576107ac916020808501910161073c565b90565b80518210156107c35760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b906020916107f28151809281855285808601910161073c565b601f01601f191601019056fe608080604052600436101561001d575b50361561001b57600080fd5b005b600090813560e01c90816314099c5814611279575080634b39060b146112085780634d9b79021461113d578063545614cc146110ce5780635c1da74f14610f73578063715018a614610eaf57806379ba509714610da55780638da5cb5b14610d5457806390cd09841461071d578063d65259a3146101c4578063e30c3978146101725763f2fde38b0361000f573461016f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016f5760043573ffffffffffffffffffffffffffffffffffffffff811680910361016b5761010261174c565b807fffffffffffffffffffffffff0000000000000000000000000000000000000000600154161760015573ffffffffffffffffffffffffffffffffffffffff8254167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b5080fd5b80fd5b503461016f57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016f57602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b503461016f5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016f576004356101ff6112e7565b906044359167ffffffffffffffff83116107195760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8436030112610719576040519261024c84611383565b806004013567ffffffffffffffff81116107155761027090600436918401016115bc565b8452602481013567ffffffffffffffff81116107155761029690600436918401016115bc565b93602081019485526102aa6044830161130f565b90604081019182526102be6064840161130f565b916060820192835260846080830194013584526102d961174c565b8588526002602052604080892060009073ffffffffffffffffffffffffffffffffffffffff881682526020522090825180519067ffffffffffffffff82116106e8576103258454611330565b601f81116106b8575b50602090601f83116001146106195761037c92918c91836104c1575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b82555b60018201885180519067ffffffffffffffff82116105ec578b6103a28454611330565b601f81116105b1575b50506020908c601f84116001146104cc5773ffffffffffffffffffffffffffffffffffffffff99957fe05d94e007bd2693a07f510723b205d97e34e65b06e7901114e84233c7207d1e9b999561043f866104bb9b9760049b978f978897926104c15750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790565b90555b511693600283018286167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055511693600382018986167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055519485910155519851604051968796169986611530565b0390a380f35b01519050388061034a565b91907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08416858452828420935b8181106105995750957fe05d94e007bd2693a07f510723b205d97e34e65b06e7901114e84233c7207d1e9b999560018660049a9673ffffffffffffffffffffffffffffffffffffffff9e9a968f97966104bb9e9a899810610562575b505050811b019055610442565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c19169055388080610555565b929360206001819287860151815501950193016104f9565b602082866105db945220601f850160051c810191602086106105e2575b601f0160051c01906116e6565b8b386103ab565b90915081906105ce565b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b848c52818c2091907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe084168d5b8181106106a05750908460019594939210610669575b505050811b01825561037f565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c1916905538808061065c565b92936020600181928786015181550195019301610646565b6106e290858d5260208d20601f850160051c810191602086106105e257601f0160051c01906116e6565b3861032e565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b8580fd5b8380fd5b503461016f5760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016f576004356107586112e7565b60443573ffffffffffffffffffffffffffffffffffffffff8116808203610c90576064359160843567ffffffffffffffff8111610c425736602382011215610c4257806004013567ffffffffffffffff8111610d50573691016024011161071557468514610cf2578215610c9457826107d19186611603565b85879592955260026020526040872083885260205260408720604051906107f782611383565b6108008161140f565b825261080e6001820161140f565b916020810192835273ffffffffffffffffffffffffffffffffffffffff600283015416604082015273ffffffffffffffffffffffffffffffffffffffff600481600385015416936060840194855201549860808301998a5216976108bb6040517f23b872dd000000000000000000000000000000000000000000000000000000006020820152336024820152306044820152866064820152606481526108b56084826113ce565b8a611a66565b6108fe73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169151828b61179b565b8a82519161092273ffffffffffffffffffffffffffffffffffffffff8651166118e8565b9073ffffffffffffffffffffffffffffffffffffffff604051991698896020820152602081526109536040826113ce565b875190823b15610c90576109e9958d610a496109b994610a1966016bcc41e90000956040519b8c9a8b998a987f2e9b7470000000000000000000000000000000000000000000000000000000008a523060048b015260e060248b015260e48a01906114d1565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8983030160448a01526114d1565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8783030160648801526114d1565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8583030160848601526114d1565b9060a48301523260c483015203925af18015610c8557610c51575b509087610ab973ffffffffffffffffffffffffffffffffffffffff8c9594610ab08b837f000000000000000000000000000000000000000000000000000000000000000016809661179b565b519351166118e8565b906040519387602086015260208552610ad36040866113ce565b5193813b1561071557858094610bbb610b5b97610b8b610b2b956040519a8b998a9889977fb541708400000000000000000000000000000000000000000000000000000000895260a060048a015260a48901906114d1565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8883030160248901526114d1565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8683030160448701526114d1565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8483030160648501526114d1565b8c608483015203925af18015610c4657610c23575b50937f7a1aaa549d494a115465b34eba936c63fadb6c733c73b1aa66b46ff791df58479360e09388889460405195338752602087015260408601526060850152608084015260a083015260c0820152a180f35b81610c33919796959493976113ce565b610c4257909192938638610bd0565b8680fd5b6040513d84823e3d90fd5b610ab98b610c7973ffffffffffffffffffffffffffffffffffffffff9d8c94979695976113ce565b9b505092909192610a64565b6040513d8d823e3d90fd5b8480fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f44504178423a207a65726f20616d6f756e7400000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f44504178423a2073616d6520636861696e0000000000000000000000000000006044820152fd5b8780fd5b503461016f57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016f5773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b503461016f57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016f573373ffffffffffffffffffffffffffffffffffffffff6001541603610e83577fffffffffffffffffffffffff0000000000000000000000000000000000000000600154166001558054337fffffffffffffffffffffffff0000000000000000000000000000000000000000821617825573ffffffffffffffffffffffffffffffffffffffff3391167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b807f118cdaa7000000000000000000000000000000000000000000000000000000006024925233600452fd5b503461016f57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016f57610ee661174c565b7fffffffffffffffffffffffff0000000000000000000000000000000000000000600154166001558073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461016f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016f57600435610fae6112e7565b90610fb761174c565b80835260026020526040832073ffffffffffffffffffffffffffffffffffffffff831684526020527f1493800d4354ca316e54aa2e202705a4af3bd07040e411ec96be52ae7f35525873ffffffffffffffffffffffffffffffffffffffff60408520936104bb6040519561102a87611383565b6110338161140f565b87526110416001820161140f565b966020810197885284600283015416916040820192835285806004816003850154169360608601948552015493608081019485528a8d52600260205260408d208d838a1690526020528c60046040822061109a816116fd565b6110a6600182016116fd565b8260028201558260038201550155519a51945116915116915192604051968796169986611530565b503461016f57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016f57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461016f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016f576040906111786112e7565b6004358252600260205273ffffffffffffffffffffffffffffffffffffffff83832091168252602052206111ab8161140f565b6112046111ba6001840161140f565b9273ffffffffffffffffffffffffffffffffffffffff60028201541690600473ffffffffffffffffffffffffffffffffffffffff6003830154169101549160405195869586611530565b0390f35b503461016f5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016f5761124f6112436112e7565b60443590600435611603565b6040805173ffffffffffffffffffffffffffffffffffffffff939093168352602083019190915290f35b90503461016b57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016b5760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361130a57565b600080fd5b359073ffffffffffffffffffffffffffffffffffffffff8216820361130a57565b90600182811c92168015611379575b602083101461134a57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f169161133f565b60a0810190811067ffffffffffffffff82111761139f57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761139f57604052565b906040519182600082549261142384611330565b8084529360018116908115611491575060011461144a575b50611448925003836113ce565b565b90506000929192526020600020906000915b818310611475575050906020611448928201013861143b565b602091935080600191548385890101520191019091849261145c565b602093506114489592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201013861143b565b919082519283825260005b84811061151b5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b806020809284010151828286010152016114dc565b919373ffffffffffffffffffffffffffffffffffffffff611571608095989796611563839560a0885260a08801906114d1565b9086820360208801526114d1565b971660408401521660608201520152565b67ffffffffffffffff811161139f57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b81601f8201121561130a578035906115d382611582565b926115e160405194856113ce565b8284526020838301011161130a57816000926020809301838601378301015290565b9060409193929360005260026020528160002073ffffffffffffffffffffffffffffffffffffffff60009216825260205220608060405161164381611383565b61164c8361140f565b815261165a6001840161140f565b6020820152600473ffffffffffffffffffffffffffffffffffffffff6002850154169384604084015273ffffffffffffffffffffffffffffffffffffffff60038201541660608401520154918291015283018093116116b7579190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8181106116f1575050565b600081556001016116e6565b6117078154611330565b9081611711575050565b81601f60009311600114611723575055565b8183526020832061173f91601f0160051c8101906001016116e6565b8082528160208120915555565b73ffffffffffffffffffffffffffffffffffffffff60005416330361176d57565b7f118cdaa7000000000000000000000000000000000000000000000000000000006000523360045260246000fd5b6040517f095ea7b3000000000000000000000000000000000000000000000000000000006020820190815273ffffffffffffffffffffffffffffffffffffffff8416602483015260448083019590955293815291926117fb6064846113ce565b60008073ffffffffffffffffffffffffffffffffffffffff84169285519082855af190611826611afb565b826118b6575b50816118ab575b501561183e57505050565b6118a66114489373ffffffffffffffffffffffffffffffffffffffff604051917f095ea7b300000000000000000000000000000000000000000000000000000000602084015216602482015260006044820152604481526118a06064826113ce565b82611a66565b611a66565b90503b151538611833565b805191925081159182156118ce575b5050903861182c565b6118e19250602080918301019101611a4e565b38806118c5565b73ffffffffffffffffffffffffffffffffffffffff16806040519161190e6060846113ce565b602a8352602083016040368237835115611a1f5760309053825160011015611a1f576078602184015360295b6001811161197d575061194b575090565b7fe22e27eb00000000000000000000000000000000000000000000000000000000600052600452601460245260446000fd5b90600f81166010811015611a1f57600085518410156119f257507f3031323334353637383961626364656600000000000000000000000000000000901a8483016020015360041c9080156116b7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161193a565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526032600452fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9081602091031261130a5751801515810361130a5790565b60008073ffffffffffffffffffffffffffffffffffffffff611a9d93169360208151910182865af1611a96611afb565b9083611b2b565b8051908115159182611ae0575b5050611ab35750565b7f5274afe70000000000000000000000000000000000000000000000000000000060005260045260246000fd5b611af39250602080918301019101611a4e565b153880611aaa565b3d15611b26573d90611b0c82611582565b91611b1a60405193846113ce565b82523d6000602084013e565b606090565b90611b6a5750805115611b4057805190602001fd5b7f1425ea420000000000000000000000000000000000000000000000000000000060005260046000fd5b81511580611bbf575b611b7b575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b50803b15611b7356fea26469706673582212203ed107f418492d68c16ea1b19f6b07b775a2977ead16c19dea6c57ae345f335864736f6c634300081a0033e05d94e007bd2693a07f510723b205d97e34e65b06e7901114e84233c7207d1e0000000000000000000000002f321372e8a9755cd2ca6114eb8da32a14f8100b000000000000000000000000e432150cce91c13a887f7d836923d5597add8e310000000000000000000000002d5d7d31f671f86c782533cc367f14109a08271200000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000038000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000004268b8f0b87b6eae5d897996e6b845ddbd99adf3000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f40521500000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f40521500000000000000000000000058ad2ea4ffe4205549450bc1c0a938bc3291246b00000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000000000762696e616e636500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000761786c555344430000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f40521500000000000000000000000058ad2ea4ffe4205549450bc1c0a938bc3291246b00000000000000000000000000000000000000000000000000000000000f424000000000000000000000000000000000000000000000000000000000000000086f7074696d69736d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000761786c5553444300000000000000000000000000000000000000000000000000" } ], "isFixedGasLimit": false @@ -37,77 +37,77 @@ "receipts": [ { "status": "0x1", - "cumulativeGasUsed": "0x12ae3f9", + "cumulativeGasUsed": "0x1e3a88d", "logs": [ { - "address": "0x41697dd4ead744aac478cab436789a7e8859da54", + "address": "0x412052da24c0f5adeeaee078954d393eaa524eee", "topics": [ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000002f321372e8a9755cd2ca6114eb8da32a14f8100b" ], "data": "0x", - "blockHash": "0xed682244ead21f323ca9c7c89ae5588697b6794a82f2ff9fd7caf0decff42701", - "blockNumber": "0x14bce52", - "transactionHash": "0xf29db2751c1c9cae8d63b669933bf0acb55830c5e9df7513a25c21f6cede2544", - "transactionIndex": "0x6c", - "logIndex": "0xbe", + "blockHash": "0x626e0e42b61d79e6ba0e311e535988d8b37a7fb58a9b469bd82e1c82af3823f5", + "blockNumber": "0x14bddc9", + "transactionHash": "0x9e9ed5c5213a072937deefe35751559efa587e48f45c98f33c4728e656aee249", + "transactionIndex": "0x57", + "logIndex": "0x2f2", "removed": false }, { - "address": "0x41697dd4ead744aac478cab436789a7e8859da54", + "address": "0x412052da24c0f5adeeaee078954d393eaa524eee", "topics": [ "0xe05d94e007bd2693a07f510723b205d97e34e65b06e7901114e84233c7207d1e", "0x0000000000000000000000000000000000000000000000000000000000000038", "0x0000000000000000000000004268b8f0b87b6eae5d897996e6b845ddbd99adf3" ], "data": "0x00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f40521500000000000000000000000058ad2ea4ffe4205549450bc1c0a938bc3291246b00000000000000000000000000000000000000000000000000000000000f4240000000000000000000000000000000000000000000000000000000000000000762696e616e636500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000761786c5553444300000000000000000000000000000000000000000000000000", - "blockHash": "0xed682244ead21f323ca9c7c89ae5588697b6794a82f2ff9fd7caf0decff42701", - "blockNumber": "0x14bce52", - "transactionHash": "0xf29db2751c1c9cae8d63b669933bf0acb55830c5e9df7513a25c21f6cede2544", - "transactionIndex": "0x6c", - "logIndex": "0xbf", + "blockHash": "0x626e0e42b61d79e6ba0e311e535988d8b37a7fb58a9b469bd82e1c82af3823f5", + "blockNumber": "0x14bddc9", + "transactionHash": "0x9e9ed5c5213a072937deefe35751559efa587e48f45c98f33c4728e656aee249", + "transactionIndex": "0x57", + "logIndex": "0x2f3", "removed": false }, { - "address": "0x41697dd4ead744aac478cab436789a7e8859da54", + "address": "0x412052da24c0f5adeeaee078954d393eaa524eee", "topics": [ "0xe05d94e007bd2693a07f510723b205d97e34e65b06e7901114e84233c7207d1e", "0x000000000000000000000000000000000000000000000000000000000000000a", "0x000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f405215" ], "data": "0x00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000eb466342c4d449bc9f53a865d5cb90586f40521500000000000000000000000058ad2ea4ffe4205549450bc1c0a938bc3291246b00000000000000000000000000000000000000000000000000000000000f424000000000000000000000000000000000000000000000000000000000000000086f7074696d69736d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000761786c5553444300000000000000000000000000000000000000000000000000", - "blockHash": "0xed682244ead21f323ca9c7c89ae5588697b6794a82f2ff9fd7caf0decff42701", - "blockNumber": "0x14bce52", - "transactionHash": "0xf29db2751c1c9cae8d63b669933bf0acb55830c5e9df7513a25c21f6cede2544", - "transactionIndex": "0x6c", - "logIndex": "0xc0", + "blockHash": "0x626e0e42b61d79e6ba0e311e535988d8b37a7fb58a9b469bd82e1c82af3823f5", + "blockNumber": "0x14bddc9", + "transactionHash": "0x9e9ed5c5213a072937deefe35751559efa587e48f45c98f33c4728e656aee249", + "transactionIndex": "0x57", + "logIndex": "0x2f4", "removed": false } ], - "logsBloom": "0x00000000000100000000000000000000000000000000000000900000000000000000000000000000000020000004000100080000040000000020000000000000000000000800000000000000000000000001000000000000000400000000000000000000020000000000000000000800000000082000000000000000000000400000000000000000010000000000000000000000000000000000000000004000000000001002000000000000000000000000000000000000000000000000000000000000000000000020400000001000000000000000000000000000000020000000000000000000000000000000000000000000000000000200000100000000", + "logsBloom": "0x00000000000100000000000000000000000000000000000000900000000000000000000000000000000020000004000100080000040000000020000000000000000000000800000000000000000000000001000000000000000400000000000000000000020000000000000000000800000000082000000000000000000000400000000000000000010000000000000000000000000000000000000000004000000000001002000000000000000200000000000000000000000000000000000000000000008000000000400000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000200000000000000", "type": "0x2", - "transactionHash": "0xf29db2751c1c9cae8d63b669933bf0acb55830c5e9df7513a25c21f6cede2544", - "transactionIndex": "0x6c", - "blockHash": "0xed682244ead21f323ca9c7c89ae5588697b6794a82f2ff9fd7caf0decff42701", - "blockNumber": "0x14bce52", - "gasUsed": "0x1d53d8", - "effectiveGasPrice": "0x7b2882", + "transactionHash": "0x9e9ed5c5213a072937deefe35751559efa587e48f45c98f33c4728e656aee249", + "transactionIndex": "0x57", + "blockHash": "0x626e0e42b61d79e6ba0e311e535988d8b37a7fb58a9b469bd82e1c82af3823f5", + "blockNumber": "0x14bddc9", + "gasUsed": "0x1d8aab", + "effectiveGasPrice": "0x57d778", "from": "0x2f321372e8a9755cd2ca6114eb8da32a14f8100b", "to": "0x4ce25be5611b6527ea48f7abf513d48bacb4cc44", "contractAddress": null, "l1BaseFeeScalar": "0x8dd", - "l1BlobBaseFee": "0x556caec2", + "l1BlobBaseFee": "0x88d56729", "l1BlobBaseFeeScalar": "0x101c12", - "l1Fee": "0x7d708f9e80a", - "l1GasPrice": "0x20f46b8ef", - "l1GasUsed": "0x125b8" + "l1Fee": "0xbc755ed11cb", + "l1GasPrice": "0x2052a9065", + "l1GasUsed": "0x1278c" } ], "libraries": [], "pending": [], "returns": {}, - "timestamp": 1730279836, + "timestamp": 1730287737, "chain": 8453, - "commit": "5c1ece47" + "commit": "7a4272f0" } \ No newline at end of file diff --git a/packages/contract/broadcast/DeployDaimoPayAxelarReceiver.s.sol/10/run-latest.json b/packages/contract/broadcast/DeployDaimoPayAxelarReceiver.s.sol/10/run-latest.json deleted file mode 100644 index 694e44ac0..000000000 --- a/packages/contract/broadcast/DeployDaimoPayAxelarReceiver.s.sol/10/run-latest.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "transactions": [ - { - "hash": "0xd97c673f79e4465f0e19dbe24e7965273d0e1d30f9e0c128efae6f56b1f5c946", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0x4ce25be5611b6527ea48f7abf513d48bacb4cc44", - "function": "deploy(bytes32,bytes)", - "arguments": [ - "0xe5cca5d58c976773db9c4d9ada13f8dc841f9f44c03c4847af7c562483cd4bba", - "0x60a034609757601f6115e238819003918201601f19168301916001600160401b03831184841017609c57808492602094604052833981010312609757516001600160a01b0381168082036097571560865760805260405161152f90816100b3823960805181818160970152818161069f0152818161088101528181610a030152610e570152f35b63e6c4247b60e01b60005260046000fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe608080604052600436101561001357600080fd5b60003560e01c908163116191b614610e0e575080631a98b2e0146109d557806349160658146107c25780636565763614610646578063868a166d1461059c578063c7e6a3cc146104f95763e4a974cc1461006c57600080fd5b61007536610ea9565b9873ffffffffffffffffffffffffffffffffffffffff989196929897939495977f000000000000000000000000000000000000000000000000000000000000000016976040517fd26ff2100000000000000000000000000000000000000000000000000000000081528260048201526020816024818d5afa908115610418576000916104ca575b506104a0576101439060208b604051809481927f935b13f60000000000000000000000000000000000000000000000000000000083528460048401528d60248401916110f9565b03818d5afa948515610418578c948a948a8a8f9660009a610453575b50918389827f5844b8bbe3fd2b0354e73f27bfde28d2e6d991f14139c382876ec4360391a47b886101c09e9f6101b88e8e6101a08f9e9d9b859d36916110aa565b602081519101209e8f90604051968796339c88611138565b0390a46111d6565b9173ffffffffffffffffffffffffffffffffffffffff8354166104295761024d849260209433905573ffffffffffffffffffffffffffffffffffffffff604051917f23b872dd00000000000000000000000000000000000000000000000000000000878401523360248401523060448401528b606484015260648352610247608484611000565b16611301565b8101031261042457359273ffffffffffffffffffffffffffffffffffffffff8416809403610424576102b8926020926040518095819482937f935b13f600000000000000000000000000000000000000000000000000000000845287600485015260248401916110f9565b03915afa80156104185761038c9261034b61037773ffffffffffffffffffffffffffffffffffffffff60009594869586916103e9575b50169660405192839160208301957fa9059cbb000000000000000000000000000000000000000000000000000000008752602484016020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282611000565b519082865af16103856112d1565b908361145c565b80519081151591826103ce575b50506103a157005b7f5274afe70000000000000000000000000000000000000000000000000000000060005260045260246000fd5b6103e192506020809183010191016110e1565b153880610399565b61040b915060203d602011610411575b6104038183611000565b81019061117b565b386102ee565b503d6103f9565b6040513d6000823e3d90fd5b600080fd5b7f725f13f10000000000000000000000000000000000000000000000000000000060005260046000fd5b879a509389848294888c9f8098968c9b9a60203d602011610499575b6104798183611000565b81016104849161117b565b9f509650505094969750949c50999a5061015f565b503d61046f565b7f0dc101970000000000000000000000000000000000000000000000000000000060005260046000fd5b6104ec915060203d6020116104f2575b6104e48183611000565b8101906110e1565b386100fc565b503d6104da565b346104245760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104245760243567ffffffffffffffff811161042457610548903690600401610e7b565b906044359067ffffffffffffffff82116104245760209261057061057d933690600401610e7b565b91606435936004356113a8565b5473ffffffffffffffffffffffffffffffffffffffff60405191168152f35b346104245760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104245760243567ffffffffffffffff8111610424576105eb903690600401610e7b565b60443567ffffffffffffffff81116104245761060b903690600401610e7b565b608435929167ffffffffffffffff84116104245760209461063361057d953690600401610e7b565b93909260a43595606435936004356111d6565b61064f36610f68565b959390946040939293517fd26ff21000000000000000000000000000000000000000000000000000000000815285600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610418576000916107a3575b506104a0576106f961073f9673ffffffffffffffffffffffffffffffffffffffff9836916110aa565b6020815191012094604051817f6e18757e81c44a367109cbaa499add16f2ae7168aab9715c3cdc36b0f7ccce923392806107378b8b8b8b8b866111a7565b0390a36113a8565b54166104295760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f44504178523a205f65786563757465206e6f7420737570706f727465640000006044820152fd5b6107bc915060203d6020116104f2576104e48183611000565b886106d0565b34610424576107df6107d336610f68565b969194929636916110aa565b60208151910120946040517f5f6970c3000000000000000000000000000000000000000000000000000000008152856004820152608060248201526020818061086061082f6084830189896110f9565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc83820301604484015289876110f9565b8a60648301520381600073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af1908115610418576000916109b6575b501561098c5773ffffffffffffffffffffffffffffffffffffffff6108db87868487878b6113a8565b80549081610982575b5016958615610924577f8fe61b2d4701a29265508750790e322b2c214399abdf98472158b8908b660d419461091f92604051958695866111a7565b0390a3005b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f44504178523a205f65786563757465206e6f7420737570706f727465640000006044820152fd5b60009055886108e4565b7f500c44b40000000000000000000000000000000000000000000000000000000060005260046000fd5b6109cf915060203d6020116104f2576104e48183611000565b876108b2565b34610424576109e336610ea9565b97909498929398969196366109f990868c6110aa565b80519060200120907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16978a898b604051809381927f1876eed90000000000000000000000000000000000000000000000000000000083528b60048401526024830160c090528d60c48401610a84908d8d6110f9565b8481037ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc016044860152610ab9908a8a6110f9565b908a60648601528482037ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc016084860152610af3926110f9565b9060a483015203815a602094600091f190811561041857600091610def575b501561098c57610b298b898c8686868b8b8e6111d6565b9b8c549c8d610de5575b5073ffffffffffffffffffffffffffffffffffffffff8d16978815610c87575050938a93610b96898c610bd59d9b99967fdb3db9dfc9262f4fe09dbadef104f799d8181ec565e09275d80ed3355aab68d39660209e9c9a60405197889788611138565b0390a46040518095819482937f935b13f600000000000000000000000000000000000000000000000000000000845287600485015260248401916110f9565b03915afa801561041857610c609373ffffffffffffffffffffffffffffffffffffffff92600092610c62575b506040517fa9059cbb00000000000000000000000000000000000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff919091166024820152604480820194909452928352610247606484611000565b005b610247919250610c809060203d602011610411576104038183611000565b9190610c01565b95509798999a9b5050505050602092508380925001031261042457359273ffffffffffffffffffffffffffffffffffffffff841680940361042457610d05926020926040518095819482937f935b13f600000000000000000000000000000000000000000000000000000000845287600485015260248401916110f9565b03915afa801561041857610d979261034b61037773ffffffffffffffffffffffffffffffffffffffff6000959486958691610dc65750169660405192839160208301957fa9059cbb000000000000000000000000000000000000000000000000000000008752602484016020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b8051908115159182610dab5750506103a157005b610dbe92506020809183010191016110e1565b158280610399565b610ddf915060203d602011610411576104038183611000565b896102ee565b600090558d610b33565b610e08915060203d6020116104f2576104e48183611000565b8d610b12565b346104245760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104245760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b9181601f840112156104245782359167ffffffffffffffff8311610424576020838186019501011161042457565b9060c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc830112610424576004359160243567ffffffffffffffff81116104245781610ef791600401610e7b565b9290929160443567ffffffffffffffff81116104245781610f1a91600401610e7b565b9290929160643567ffffffffffffffff81116104245781610f3d91600401610e7b565b929092916084359067ffffffffffffffff821161042457610f6091600401610e7b565b909160a43590565b9060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc830112610424576004359160243567ffffffffffffffff81116104245781610fb691600401610e7b565b9290929160443567ffffffffffffffff81116104245781610fd991600401610e7b565b929092916064359067ffffffffffffffff821161042457610ffc91600401610e7b565b9091565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761104157604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b67ffffffffffffffff811161104157601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9291926110b682611070565b916110c46040519384611000565b829481845281830111610424578281602093846000960137010152565b90816020910312610424575180151581036104245790565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b92909361115761117898969795611165946080875260808701916110f9565b9184830360208601526110f9565b93604082015260608185039101526110f9565b90565b90816020910312610424575173ffffffffffffffffffffffffffffffffffffffff811681036104245790565b9594936111c3604094926111d19460608a5260608a01916110f9565b9187830360208901526110f9565b930152565b9794929096919593604051978897602089019a7febf4535caee8019297b7be3ed867db0d00b69fedcdda98c5e2c41ea6e41a98d58c5260408a01526060890160e09052610100890190611228926110f9565b908782037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001608089015261125c926110f9565b9160a08601528482037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00160c0860152611295926110f9565b9060e0830152037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810182526112cb9082611000565b51902090565b3d156112fc573d906112e282611070565b916112f06040519384611000565b82523d6000602084013e565b606090565b600073ffffffffffffffffffffffffffffffffffffffff8192169260208151910182855af161132e6112d1565b81611379575b501590811561136f575b5061134557565b7f045c4b020000000000000000000000000000000000000000000000000000000060005260046000fd5b90503b153861133e565b805180159250821561138e575b505038611334565b6113a192506020809183010191016110e1565b3880611386565b9490936112cb9361142a916113fa604051978896602088019a7f2a41fec9a0df4e0996b975f71622c7164b0f652ea69d9dbcd6b24e81b20ab5e58c52604089015260a0606089015260c08801916110f9565b917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08684030160808701526110f9565b9060a0830152037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282611000565b9061149b575080511561147157805190602001fd5b7f1425ea420000000000000000000000000000000000000000000000000000000060005260046000fd5b815115806114f0575b6114ac575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b50803b156114a456fea26469706673582212209851a387b3aa49360883a37af97bf95bfb6137055c698df9f13d13a6a42119f664736f6c634300081a0033000000000000000000000000e432150cce91c13a887f7d836923d5597add8e31" - ], - "transaction": { - "from": "0x2f321372e8a9755cd2ca6114eb8da32a14f8100b", - "to": "0x4ce25be5611b6527ea48f7abf513d48bacb4cc44", - "gas": "0x1a81b5", - "value": "0x0", - "input": "0xcdcb760ae5cca5d58c976773db9c4d9ada13f8dc841f9f44c03c4847af7c562483cd4bba0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000160260a034609757601f6115e238819003918201601f19168301916001600160401b03831184841017609c57808492602094604052833981010312609757516001600160a01b0381168082036097571560865760805260405161152f90816100b3823960805181818160970152818161069f0152818161088101528181610a030152610e570152f35b63e6c4247b60e01b60005260046000fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe608080604052600436101561001357600080fd5b60003560e01c908163116191b614610e0e575080631a98b2e0146109d557806349160658146107c25780636565763614610646578063868a166d1461059c578063c7e6a3cc146104f95763e4a974cc1461006c57600080fd5b61007536610ea9565b9873ffffffffffffffffffffffffffffffffffffffff989196929897939495977f000000000000000000000000000000000000000000000000000000000000000016976040517fd26ff2100000000000000000000000000000000000000000000000000000000081528260048201526020816024818d5afa908115610418576000916104ca575b506104a0576101439060208b604051809481927f935b13f60000000000000000000000000000000000000000000000000000000083528460048401528d60248401916110f9565b03818d5afa948515610418578c948a948a8a8f9660009a610453575b50918389827f5844b8bbe3fd2b0354e73f27bfde28d2e6d991f14139c382876ec4360391a47b886101c09e9f6101b88e8e6101a08f9e9d9b859d36916110aa565b602081519101209e8f90604051968796339c88611138565b0390a46111d6565b9173ffffffffffffffffffffffffffffffffffffffff8354166104295761024d849260209433905573ffffffffffffffffffffffffffffffffffffffff604051917f23b872dd00000000000000000000000000000000000000000000000000000000878401523360248401523060448401528b606484015260648352610247608484611000565b16611301565b8101031261042457359273ffffffffffffffffffffffffffffffffffffffff8416809403610424576102b8926020926040518095819482937f935b13f600000000000000000000000000000000000000000000000000000000845287600485015260248401916110f9565b03915afa80156104185761038c9261034b61037773ffffffffffffffffffffffffffffffffffffffff60009594869586916103e9575b50169660405192839160208301957fa9059cbb000000000000000000000000000000000000000000000000000000008752602484016020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282611000565b519082865af16103856112d1565b908361145c565b80519081151591826103ce575b50506103a157005b7f5274afe70000000000000000000000000000000000000000000000000000000060005260045260246000fd5b6103e192506020809183010191016110e1565b153880610399565b61040b915060203d602011610411575b6104038183611000565b81019061117b565b386102ee565b503d6103f9565b6040513d6000823e3d90fd5b600080fd5b7f725f13f10000000000000000000000000000000000000000000000000000000060005260046000fd5b879a509389848294888c9f8098968c9b9a60203d602011610499575b6104798183611000565b81016104849161117b565b9f509650505094969750949c50999a5061015f565b503d61046f565b7f0dc101970000000000000000000000000000000000000000000000000000000060005260046000fd5b6104ec915060203d6020116104f2575b6104e48183611000565b8101906110e1565b386100fc565b503d6104da565b346104245760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104245760243567ffffffffffffffff811161042457610548903690600401610e7b565b906044359067ffffffffffffffff82116104245760209261057061057d933690600401610e7b565b91606435936004356113a8565b5473ffffffffffffffffffffffffffffffffffffffff60405191168152f35b346104245760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104245760243567ffffffffffffffff8111610424576105eb903690600401610e7b565b60443567ffffffffffffffff81116104245761060b903690600401610e7b565b608435929167ffffffffffffffff84116104245760209461063361057d953690600401610e7b565b93909260a43595606435936004356111d6565b61064f36610f68565b959390946040939293517fd26ff21000000000000000000000000000000000000000000000000000000000815285600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610418576000916107a3575b506104a0576106f961073f9673ffffffffffffffffffffffffffffffffffffffff9836916110aa565b6020815191012094604051817f6e18757e81c44a367109cbaa499add16f2ae7168aab9715c3cdc36b0f7ccce923392806107378b8b8b8b8b866111a7565b0390a36113a8565b54166104295760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f44504178523a205f65786563757465206e6f7420737570706f727465640000006044820152fd5b6107bc915060203d6020116104f2576104e48183611000565b886106d0565b34610424576107df6107d336610f68565b969194929636916110aa565b60208151910120946040517f5f6970c3000000000000000000000000000000000000000000000000000000008152856004820152608060248201526020818061086061082f6084830189896110f9565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc83820301604484015289876110f9565b8a60648301520381600073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af1908115610418576000916109b6575b501561098c5773ffffffffffffffffffffffffffffffffffffffff6108db87868487878b6113a8565b80549081610982575b5016958615610924577f8fe61b2d4701a29265508750790e322b2c214399abdf98472158b8908b660d419461091f92604051958695866111a7565b0390a3005b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f44504178523a205f65786563757465206e6f7420737570706f727465640000006044820152fd5b60009055886108e4565b7f500c44b40000000000000000000000000000000000000000000000000000000060005260046000fd5b6109cf915060203d6020116104f2576104e48183611000565b876108b2565b34610424576109e336610ea9565b97909498929398969196366109f990868c6110aa565b80519060200120907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16978a898b604051809381927f1876eed90000000000000000000000000000000000000000000000000000000083528b60048401526024830160c090528d60c48401610a84908d8d6110f9565b8481037ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc016044860152610ab9908a8a6110f9565b908a60648601528482037ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc016084860152610af3926110f9565b9060a483015203815a602094600091f190811561041857600091610def575b501561098c57610b298b898c8686868b8b8e6111d6565b9b8c549c8d610de5575b5073ffffffffffffffffffffffffffffffffffffffff8d16978815610c87575050938a93610b96898c610bd59d9b99967fdb3db9dfc9262f4fe09dbadef104f799d8181ec565e09275d80ed3355aab68d39660209e9c9a60405197889788611138565b0390a46040518095819482937f935b13f600000000000000000000000000000000000000000000000000000000845287600485015260248401916110f9565b03915afa801561041857610c609373ffffffffffffffffffffffffffffffffffffffff92600092610c62575b506040517fa9059cbb00000000000000000000000000000000000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff919091166024820152604480820194909452928352610247606484611000565b005b610247919250610c809060203d602011610411576104038183611000565b9190610c01565b95509798999a9b5050505050602092508380925001031261042457359273ffffffffffffffffffffffffffffffffffffffff841680940361042457610d05926020926040518095819482937f935b13f600000000000000000000000000000000000000000000000000000000845287600485015260248401916110f9565b03915afa801561041857610d979261034b61037773ffffffffffffffffffffffffffffffffffffffff6000959486958691610dc65750169660405192839160208301957fa9059cbb000000000000000000000000000000000000000000000000000000008752602484016020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b8051908115159182610dab5750506103a157005b610dbe92506020809183010191016110e1565b158280610399565b610ddf915060203d602011610411576104038183611000565b896102ee565b600090558d610b33565b610e08915060203d6020116104f2576104e48183611000565b8d610b12565b346104245760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104245760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b9181601f840112156104245782359167ffffffffffffffff8311610424576020838186019501011161042457565b9060c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc830112610424576004359160243567ffffffffffffffff81116104245781610ef791600401610e7b565b9290929160443567ffffffffffffffff81116104245781610f1a91600401610e7b565b9290929160643567ffffffffffffffff81116104245781610f3d91600401610e7b565b929092916084359067ffffffffffffffff821161042457610f6091600401610e7b565b909160a43590565b9060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc830112610424576004359160243567ffffffffffffffff81116104245781610fb691600401610e7b565b9290929160443567ffffffffffffffff81116104245781610fd991600401610e7b565b929092916064359067ffffffffffffffff821161042457610ffc91600401610e7b565b9091565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761104157604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b67ffffffffffffffff811161104157601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9291926110b682611070565b916110c46040519384611000565b829481845281830111610424578281602093846000960137010152565b90816020910312610424575180151581036104245790565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b92909361115761117898969795611165946080875260808701916110f9565b9184830360208601526110f9565b93604082015260608185039101526110f9565b90565b90816020910312610424575173ffffffffffffffffffffffffffffffffffffffff811681036104245790565b9594936111c3604094926111d19460608a5260608a01916110f9565b9187830360208901526110f9565b930152565b9794929096919593604051978897602089019a7febf4535caee8019297b7be3ed867db0d00b69fedcdda98c5e2c41ea6e41a98d58c5260408a01526060890160e09052610100890190611228926110f9565b908782037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001608089015261125c926110f9565b9160a08601528482037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00160c0860152611295926110f9565b9060e0830152037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810182526112cb9082611000565b51902090565b3d156112fc573d906112e282611070565b916112f06040519384611000565b82523d6000602084013e565b606090565b600073ffffffffffffffffffffffffffffffffffffffff8192169260208151910182855af161132e6112d1565b81611379575b501590811561136f575b5061134557565b7f045c4b020000000000000000000000000000000000000000000000000000000060005260046000fd5b90503b153861133e565b805180159250821561138e575b505038611334565b6113a192506020809183010191016110e1565b3880611386565b9490936112cb9361142a916113fa604051978896602088019a7f2a41fec9a0df4e0996b975f71622c7164b0f652ea69d9dbcd6b24e81b20ab5e58c52604089015260a0606089015260c08801916110f9565b917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08684030160808701526110f9565b9060a0830152037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282611000565b9061149b575080511561147157805190602001fd5b7f1425ea420000000000000000000000000000000000000000000000000000000060005260046000fd5b815115806114f0575b6114ac575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b50803b156114a456fea26469706673582212209851a387b3aa49360883a37af97bf95bfb6137055c698df9f13d13a6a42119f664736f6c634300081a0033000000000000000000000000e432150cce91c13a887f7d836923d5597add8e31000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x15f", - "chainId": "0xa" - }, - "additionalContracts": [ - { - "transactionType": "CREATE2", - "address": "0xb6545ec54e2e80d5e20d716d06428c41db919318", - "initCode": "0x67363d3d37363d34f03d5260086018f3" - }, - { - "transactionType": "CREATE", - "address": "0x58ad2ea4ffe4205549450bc1c0a938bc3291246b", - "initCode": "0x60a034609757601f6115e238819003918201601f19168301916001600160401b03831184841017609c57808492602094604052833981010312609757516001600160a01b0381168082036097571560865760805260405161152f90816100b3823960805181818160970152818161069f0152818161088101528181610a030152610e570152f35b63e6c4247b60e01b60005260046000fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe608080604052600436101561001357600080fd5b60003560e01c908163116191b614610e0e575080631a98b2e0146109d557806349160658146107c25780636565763614610646578063868a166d1461059c578063c7e6a3cc146104f95763e4a974cc1461006c57600080fd5b61007536610ea9565b9873ffffffffffffffffffffffffffffffffffffffff989196929897939495977f000000000000000000000000000000000000000000000000000000000000000016976040517fd26ff2100000000000000000000000000000000000000000000000000000000081528260048201526020816024818d5afa908115610418576000916104ca575b506104a0576101439060208b604051809481927f935b13f60000000000000000000000000000000000000000000000000000000083528460048401528d60248401916110f9565b03818d5afa948515610418578c948a948a8a8f9660009a610453575b50918389827f5844b8bbe3fd2b0354e73f27bfde28d2e6d991f14139c382876ec4360391a47b886101c09e9f6101b88e8e6101a08f9e9d9b859d36916110aa565b602081519101209e8f90604051968796339c88611138565b0390a46111d6565b9173ffffffffffffffffffffffffffffffffffffffff8354166104295761024d849260209433905573ffffffffffffffffffffffffffffffffffffffff604051917f23b872dd00000000000000000000000000000000000000000000000000000000878401523360248401523060448401528b606484015260648352610247608484611000565b16611301565b8101031261042457359273ffffffffffffffffffffffffffffffffffffffff8416809403610424576102b8926020926040518095819482937f935b13f600000000000000000000000000000000000000000000000000000000845287600485015260248401916110f9565b03915afa80156104185761038c9261034b61037773ffffffffffffffffffffffffffffffffffffffff60009594869586916103e9575b50169660405192839160208301957fa9059cbb000000000000000000000000000000000000000000000000000000008752602484016020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282611000565b519082865af16103856112d1565b908361145c565b80519081151591826103ce575b50506103a157005b7f5274afe70000000000000000000000000000000000000000000000000000000060005260045260246000fd5b6103e192506020809183010191016110e1565b153880610399565b61040b915060203d602011610411575b6104038183611000565b81019061117b565b386102ee565b503d6103f9565b6040513d6000823e3d90fd5b600080fd5b7f725f13f10000000000000000000000000000000000000000000000000000000060005260046000fd5b879a509389848294888c9f8098968c9b9a60203d602011610499575b6104798183611000565b81016104849161117b565b9f509650505094969750949c50999a5061015f565b503d61046f565b7f0dc101970000000000000000000000000000000000000000000000000000000060005260046000fd5b6104ec915060203d6020116104f2575b6104e48183611000565b8101906110e1565b386100fc565b503d6104da565b346104245760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104245760243567ffffffffffffffff811161042457610548903690600401610e7b565b906044359067ffffffffffffffff82116104245760209261057061057d933690600401610e7b565b91606435936004356113a8565b5473ffffffffffffffffffffffffffffffffffffffff60405191168152f35b346104245760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104245760243567ffffffffffffffff8111610424576105eb903690600401610e7b565b60443567ffffffffffffffff81116104245761060b903690600401610e7b565b608435929167ffffffffffffffff84116104245760209461063361057d953690600401610e7b565b93909260a43595606435936004356111d6565b61064f36610f68565b959390946040939293517fd26ff21000000000000000000000000000000000000000000000000000000000815285600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610418576000916107a3575b506104a0576106f961073f9673ffffffffffffffffffffffffffffffffffffffff9836916110aa565b6020815191012094604051817f6e18757e81c44a367109cbaa499add16f2ae7168aab9715c3cdc36b0f7ccce923392806107378b8b8b8b8b866111a7565b0390a36113a8565b54166104295760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f44504178523a205f65786563757465206e6f7420737570706f727465640000006044820152fd5b6107bc915060203d6020116104f2576104e48183611000565b886106d0565b34610424576107df6107d336610f68565b969194929636916110aa565b60208151910120946040517f5f6970c3000000000000000000000000000000000000000000000000000000008152856004820152608060248201526020818061086061082f6084830189896110f9565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc83820301604484015289876110f9565b8a60648301520381600073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af1908115610418576000916109b6575b501561098c5773ffffffffffffffffffffffffffffffffffffffff6108db87868487878b6113a8565b80549081610982575b5016958615610924577f8fe61b2d4701a29265508750790e322b2c214399abdf98472158b8908b660d419461091f92604051958695866111a7565b0390a3005b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f44504178523a205f65786563757465206e6f7420737570706f727465640000006044820152fd5b60009055886108e4565b7f500c44b40000000000000000000000000000000000000000000000000000000060005260046000fd5b6109cf915060203d6020116104f2576104e48183611000565b876108b2565b34610424576109e336610ea9565b97909498929398969196366109f990868c6110aa565b80519060200120907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16978a898b604051809381927f1876eed90000000000000000000000000000000000000000000000000000000083528b60048401526024830160c090528d60c48401610a84908d8d6110f9565b8481037ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc016044860152610ab9908a8a6110f9565b908a60648601528482037ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc016084860152610af3926110f9565b9060a483015203815a602094600091f190811561041857600091610def575b501561098c57610b298b898c8686868b8b8e6111d6565b9b8c549c8d610de5575b5073ffffffffffffffffffffffffffffffffffffffff8d16978815610c87575050938a93610b96898c610bd59d9b99967fdb3db9dfc9262f4fe09dbadef104f799d8181ec565e09275d80ed3355aab68d39660209e9c9a60405197889788611138565b0390a46040518095819482937f935b13f600000000000000000000000000000000000000000000000000000000845287600485015260248401916110f9565b03915afa801561041857610c609373ffffffffffffffffffffffffffffffffffffffff92600092610c62575b506040517fa9059cbb00000000000000000000000000000000000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff919091166024820152604480820194909452928352610247606484611000565b005b610247919250610c809060203d602011610411576104038183611000565b9190610c01565b95509798999a9b5050505050602092508380925001031261042457359273ffffffffffffffffffffffffffffffffffffffff841680940361042457610d05926020926040518095819482937f935b13f600000000000000000000000000000000000000000000000000000000845287600485015260248401916110f9565b03915afa801561041857610d979261034b61037773ffffffffffffffffffffffffffffffffffffffff6000959486958691610dc65750169660405192839160208301957fa9059cbb000000000000000000000000000000000000000000000000000000008752602484016020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b8051908115159182610dab5750506103a157005b610dbe92506020809183010191016110e1565b158280610399565b610ddf915060203d602011610411576104038183611000565b896102ee565b600090558d610b33565b610e08915060203d6020116104f2576104e48183611000565b8d610b12565b346104245760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104245760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b9181601f840112156104245782359167ffffffffffffffff8311610424576020838186019501011161042457565b9060c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc830112610424576004359160243567ffffffffffffffff81116104245781610ef791600401610e7b565b9290929160443567ffffffffffffffff81116104245781610f1a91600401610e7b565b9290929160643567ffffffffffffffff81116104245781610f3d91600401610e7b565b929092916084359067ffffffffffffffff821161042457610f6091600401610e7b565b909160a43590565b9060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc830112610424576004359160243567ffffffffffffffff81116104245781610fb691600401610e7b565b9290929160443567ffffffffffffffff81116104245781610fd991600401610e7b565b929092916064359067ffffffffffffffff821161042457610ffc91600401610e7b565b9091565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761104157604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b67ffffffffffffffff811161104157601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9291926110b682611070565b916110c46040519384611000565b829481845281830111610424578281602093846000960137010152565b90816020910312610424575180151581036104245790565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b92909361115761117898969795611165946080875260808701916110f9565b9184830360208601526110f9565b93604082015260608185039101526110f9565b90565b90816020910312610424575173ffffffffffffffffffffffffffffffffffffffff811681036104245790565b9594936111c3604094926111d19460608a5260608a01916110f9565b9187830360208901526110f9565b930152565b9794929096919593604051978897602089019a7febf4535caee8019297b7be3ed867db0d00b69fedcdda98c5e2c41ea6e41a98d58c5260408a01526060890160e09052610100890190611228926110f9565b908782037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001608089015261125c926110f9565b9160a08601528482037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00160c0860152611295926110f9565b9060e0830152037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810182526112cb9082611000565b51902090565b3d156112fc573d906112e282611070565b916112f06040519384611000565b82523d6000602084013e565b606090565b600073ffffffffffffffffffffffffffffffffffffffff8192169260208151910182855af161132e6112d1565b81611379575b501590811561136f575b5061134557565b7f045c4b020000000000000000000000000000000000000000000000000000000060005260046000fd5b90503b153861133e565b805180159250821561138e575b505038611334565b6113a192506020809183010191016110e1565b3880611386565b9490936112cb9361142a916113fa604051978896602088019a7f2a41fec9a0df4e0996b975f71622c7164b0f652ea69d9dbcd6b24e81b20ab5e58c52604089015260a0606089015260c08801916110f9565b917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08684030160808701526110f9565b9060a0830152037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282611000565b9061149b575080511561147157805190602001fd5b7f1425ea420000000000000000000000000000000000000000000000000000000060005260046000fd5b815115806114f0575b6114ac575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b50803b156114a456fea26469706673582212209851a387b3aa49360883a37af97bf95bfb6137055c698df9f13d13a6a42119f664736f6c634300081a0033000000000000000000000000e432150cce91c13a887f7d836923d5597add8e31" - } - ], - "isFixedGasLimit": false - } - ], - "receipts": [ - { - "status": "0x1", - "cumulativeGasUsed": "0x414abc", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xd97c673f79e4465f0e19dbe24e7965273d0e1d30f9e0c128efae6f56b1f5c946", - "transactionIndex": "0xf", - "blockHash": "0xe96fbd00ee2350aba6717c6dfd14f0d1abb07f80a8a78980959d975255db3709", - "blockNumber": "0x79710c3", - "gasUsed": "0x133220", - "effectiveGasPrice": "0x1e2c", - "from": "0x2f321372e8a9755cd2ca6114eb8da32a14f8100b", - "to": "0x4ce25be5611b6527ea48f7abf513d48bacb4cc44", - "contractAddress": null, - "l1BaseFeeScalar": "0x146b", - "l1BlobBaseFee": "0x4ef9325c", - "l1BlobBaseFeeScalar": "0xf79c5", - "l1Fee": "0x51dc59f482e", - "l1GasPrice": "0x228c2d92a", - "l1GasUsed": "0xa5e4" - } - ], - "libraries": [], - "pending": [], - "returns": {}, - "timestamp": 1730280277, - "chain": 10, - "commit": "5c1ece47" -} \ No newline at end of file diff --git a/packages/contract/broadcast/DeployDaimoPayAxelarReceiver.s.sol/8453/run-latest.json b/packages/contract/broadcast/DeployDaimoPayAxelarReceiver.s.sol/8453/run-latest.json deleted file mode 100644 index c5ffc7ff6..000000000 --- a/packages/contract/broadcast/DeployDaimoPayAxelarReceiver.s.sol/8453/run-latest.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "transactions": [ - { - "hash": "0x9d3a031663a7d61ff59c4764a9fb0454aa5fd54d38be97e0bb4f89880dffadd7", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0x4ce25be5611b6527ea48f7abf513d48bacb4cc44", - "function": "deploy(bytes32,bytes)", - "arguments": [ - "0x2e74635d58a34eb98fed9061ce4d771a08836169a410d0d271f5ac9380e1c70d", - "0x60a034608a57601f61099f38819003918201601f19168301916001600160401b03831184841017608f57808492602094604052833981010312608a57516001600160a01b038116808203608a57156079576080526040516108f990816100a682396080518181816101820152818161036d015261069c0152f35b63e6c4247b60e01b60005260046000fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe608080604052600436101561001357600080fd5b60003560e01c908163116191b614610653575080631a98b2e0146102815763491606581461004057600080fd5b3461027c5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261027c5760243567ffffffffffffffff811161027c5761008f9036906004016106c0565b60443567ffffffffffffffff811161027c576100af9036906004016106c0565b9290916064359367ffffffffffffffff851161027c576101616020946100e66100df6101319836906004016106c0565b3691610798565b8681519101209260405197889687967f5f6970c300000000000000000000000000000000000000000000000000000000885260043560048901526080602489015260848801916107e7565b917ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8684030160448701526107e7565b9060648301520381600073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af190811561027057600091610241575b50156102175760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f44504178523a205f65786563757465206e6f7420737570706f727465640000006044820152fd5b7f500c44b40000000000000000000000000000000000000000000000000000000060005260046000fd5b610263915060203d602011610269575b61025b81836106ee565b8101906107cf565b386101b3565b503d610251565b6040513d6000823e3d90fd5b600080fd5b3461027c5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261027c5760243567ffffffffffffffff811161027c576102d09036906004016106c0565b60443567ffffffffffffffff811161027c576102f09036906004016106c0565b909260643567ffffffffffffffff811161027c576103129036906004016106c0565b60843567ffffffffffffffff811161027c5760206103376103d29236906004016106c0565b95909761043960a4359a61040261034f36898b610798565b8681519101209173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169b60405198899788977f1876eed900000000000000000000000000000000000000000000000000000000895260043560048a015260c060248a015260c48901916107e7565b917ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8784030160448801526107e7565b9060648401527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc838203016084840152888b6107e7565b8a60a483015203816000895af190811561027057600091610634575b501561021757816020918101031261027c57359273ffffffffffffffffffffffffffffffffffffffff841680940361027c576104ca926020926040518095819482937f935b13f600000000000000000000000000000000000000000000000000000000845287600485015260248401916107e7565b03915afa908115610270576000916105dd575b5060006105789273ffffffffffffffffffffffffffffffffffffffff829316946040519060208201927fa9059cbb00000000000000000000000000000000000000000000000000000000845260248301526044820152604481526105426064826106ee565b519082865af13d156105d5573d906105598261075e565b9161056760405193846106ee565b82523d6000602084013e5b83610826565b80519081151591826105ba575b505061058d57005b7f5274afe70000000000000000000000000000000000000000000000000000000060005260045260246000fd5b6105cd92506020809183010191016107cf565b158280610585565b606090610572565b6020813d60201161062c575b816105f6602093836106ee565b8101031261062857519073ffffffffffffffffffffffffffffffffffffffff82168203610625575060006104dd565b80fd5b5080fd5b3d91506105e9565b61064d915060203d6020116102695761025b81836106ee565b87610455565b3461027c5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261027c5760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b9181601f8401121561027c5782359167ffffffffffffffff831161027c576020838186019501011161027c57565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761072f57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b67ffffffffffffffff811161072f57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9291926107a48261075e565b916107b260405193846106ee565b82948184528183011161027c578281602093846000960137010152565b9081602091031261027c5751801515810361027c5790565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b90610865575080511561083b57805190602001fd5b7f1425ea420000000000000000000000000000000000000000000000000000000060005260046000fd5b815115806108ba575b610876575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b50803b1561086e56fea264697066735822122027382542febb9974b242276d30529e129e3c63d0d29e5ad397fabc30cfe77f7164736f6c634300081a0033000000000000000000000000e432150cce91c13a887f7d836923d5597add8e31" - ], - "transaction": { - "from": "0x2f321372e8a9755cd2ca6114eb8da32a14f8100b", - "to": "0x4ce25be5611b6527ea48f7abf513d48bacb4cc44", - "gas": "0xd100f", - "value": "0x0", - "input": "0xcdcb760a2e74635d58a34eb98fed9061ce4d771a08836169a410d0d271f5ac9380e1c70d000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000009bf60a034608a57601f61099f38819003918201601f19168301916001600160401b03831184841017608f57808492602094604052833981010312608a57516001600160a01b038116808203608a57156079576080526040516108f990816100a682396080518181816101820152818161036d015261069c0152f35b63e6c4247b60e01b60005260046000fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe608080604052600436101561001357600080fd5b60003560e01c908163116191b614610653575080631a98b2e0146102815763491606581461004057600080fd5b3461027c5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261027c5760243567ffffffffffffffff811161027c5761008f9036906004016106c0565b60443567ffffffffffffffff811161027c576100af9036906004016106c0565b9290916064359367ffffffffffffffff851161027c576101616020946100e66100df6101319836906004016106c0565b3691610798565b8681519101209260405197889687967f5f6970c300000000000000000000000000000000000000000000000000000000885260043560048901526080602489015260848801916107e7565b917ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8684030160448701526107e7565b9060648301520381600073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af190811561027057600091610241575b50156102175760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f44504178523a205f65786563757465206e6f7420737570706f727465640000006044820152fd5b7f500c44b40000000000000000000000000000000000000000000000000000000060005260046000fd5b610263915060203d602011610269575b61025b81836106ee565b8101906107cf565b386101b3565b503d610251565b6040513d6000823e3d90fd5b600080fd5b3461027c5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261027c5760243567ffffffffffffffff811161027c576102d09036906004016106c0565b60443567ffffffffffffffff811161027c576102f09036906004016106c0565b909260643567ffffffffffffffff811161027c576103129036906004016106c0565b60843567ffffffffffffffff811161027c5760206103376103d29236906004016106c0565b95909761043960a4359a61040261034f36898b610798565b8681519101209173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169b60405198899788977f1876eed900000000000000000000000000000000000000000000000000000000895260043560048a015260c060248a015260c48901916107e7565b917ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8784030160448801526107e7565b9060648401527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc838203016084840152888b6107e7565b8a60a483015203816000895af190811561027057600091610634575b501561021757816020918101031261027c57359273ffffffffffffffffffffffffffffffffffffffff841680940361027c576104ca926020926040518095819482937f935b13f600000000000000000000000000000000000000000000000000000000845287600485015260248401916107e7565b03915afa908115610270576000916105dd575b5060006105789273ffffffffffffffffffffffffffffffffffffffff829316946040519060208201927fa9059cbb00000000000000000000000000000000000000000000000000000000845260248301526044820152604481526105426064826106ee565b519082865af13d156105d5573d906105598261075e565b9161056760405193846106ee565b82523d6000602084013e5b83610826565b80519081151591826105ba575b505061058d57005b7f5274afe70000000000000000000000000000000000000000000000000000000060005260045260246000fd5b6105cd92506020809183010191016107cf565b158280610585565b606090610572565b6020813d60201161062c575b816105f6602093836106ee565b8101031261062857519073ffffffffffffffffffffffffffffffffffffffff82168203610625575060006104dd565b80fd5b5080fd5b3d91506105e9565b61064d915060203d6020116102695761025b81836106ee565b87610455565b3461027c5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261027c5760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b9181601f8401121561027c5782359167ffffffffffffffff831161027c576020838186019501011161027c57565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761072f57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b67ffffffffffffffff811161072f57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9291926107a48261075e565b916107b260405193846106ee565b82948184528183011161027c578281602093846000960137010152565b9081602091031261027c5751801515810361027c5790565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b90610865575080511561083b57805190602001fd5b7f1425ea420000000000000000000000000000000000000000000000000000000060005260046000fd5b815115806108ba575b610876575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b50803b1561086e56fea264697066735822122027382542febb9974b242276d30529e129e3c63d0d29e5ad397fabc30cfe77f7164736f6c634300081a0033000000000000000000000000e432150cce91c13a887f7d836923d5597add8e3100", - "nonce": "0xef5", - "chainId": "0x2105" - }, - "additionalContracts": [ - { - "transactionType": "CREATE2", - "address": "0xb2c9859b289636c61712e8a56cd7b5dfa8478453", - "initCode": "0x67363d3d37363d34f03d5260086018f3" - }, - { - "transactionType": "CREATE", - "address": "0xd7b7b9adca3e5b1e2a7b0b1730be75c78d55c1fb", - "initCode": "0x60a034608a57601f61099f38819003918201601f19168301916001600160401b03831184841017608f57808492602094604052833981010312608a57516001600160a01b038116808203608a57156079576080526040516108f990816100a682396080518181816101820152818161036d015261069c0152f35b63e6c4247b60e01b60005260046000fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe608080604052600436101561001357600080fd5b60003560e01c908163116191b614610653575080631a98b2e0146102815763491606581461004057600080fd5b3461027c5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261027c5760243567ffffffffffffffff811161027c5761008f9036906004016106c0565b60443567ffffffffffffffff811161027c576100af9036906004016106c0565b9290916064359367ffffffffffffffff851161027c576101616020946100e66100df6101319836906004016106c0565b3691610798565b8681519101209260405197889687967f5f6970c300000000000000000000000000000000000000000000000000000000885260043560048901526080602489015260848801916107e7565b917ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8684030160448701526107e7565b9060648301520381600073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af190811561027057600091610241575b50156102175760646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f44504178523a205f65786563757465206e6f7420737570706f727465640000006044820152fd5b7f500c44b40000000000000000000000000000000000000000000000000000000060005260046000fd5b610263915060203d602011610269575b61025b81836106ee565b8101906107cf565b386101b3565b503d610251565b6040513d6000823e3d90fd5b600080fd5b3461027c5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261027c5760243567ffffffffffffffff811161027c576102d09036906004016106c0565b60443567ffffffffffffffff811161027c576102f09036906004016106c0565b909260643567ffffffffffffffff811161027c576103129036906004016106c0565b60843567ffffffffffffffff811161027c5760206103376103d29236906004016106c0565b95909761043960a4359a61040261034f36898b610798565b8681519101209173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169b60405198899788977f1876eed900000000000000000000000000000000000000000000000000000000895260043560048a015260c060248a015260c48901916107e7565b917ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8784030160448801526107e7565b9060648401527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc838203016084840152888b6107e7565b8a60a483015203816000895af190811561027057600091610634575b501561021757816020918101031261027c57359273ffffffffffffffffffffffffffffffffffffffff841680940361027c576104ca926020926040518095819482937f935b13f600000000000000000000000000000000000000000000000000000000845287600485015260248401916107e7565b03915afa908115610270576000916105dd575b5060006105789273ffffffffffffffffffffffffffffffffffffffff829316946040519060208201927fa9059cbb00000000000000000000000000000000000000000000000000000000845260248301526044820152604481526105426064826106ee565b519082865af13d156105d5573d906105598261075e565b9161056760405193846106ee565b82523d6000602084013e5b83610826565b80519081151591826105ba575b505061058d57005b7f5274afe70000000000000000000000000000000000000000000000000000000060005260045260246000fd5b6105cd92506020809183010191016107cf565b158280610585565b606090610572565b6020813d60201161062c575b816105f6602093836106ee565b8101031261062857519073ffffffffffffffffffffffffffffffffffffffff82168203610625575060006104dd565b80fd5b5080fd5b3d91506105e9565b61064d915060203d6020116102695761025b81836106ee565b87610455565b3461027c5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261027c5760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b9181601f8401121561027c5782359167ffffffffffffffff831161027c576020838186019501011161027c57565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761072f57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b67ffffffffffffffff811161072f57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9291926107a48261075e565b916107b260405193846106ee565b82948184528183011161027c578281602093846000960137010152565b9081602091031261027c5751801515810361027c5790565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b90610865575080511561083b57805190602001fd5b7f1425ea420000000000000000000000000000000000000000000000000000000060005260046000fd5b815115806108ba575b610876575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b50803b1561086e56fea264697066735822122027382542febb9974b242276d30529e129e3c63d0d29e5ad397fabc30cfe77f7164736f6c634300081a0033000000000000000000000000e432150cce91c13a887f7d836923d5597add8e31" - } - ], - "isFixedGasLimit": false - } - ], - "receipts": [ - { - "status": "0x1", - "cumulativeGasUsed": "0xfb057c", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x9d3a031663a7d61ff59c4764a9fb0454aa5fd54d38be97e0bb4f89880dffadd7", - "transactionIndex": "0x77", - "blockHash": "0x5e34a667ca72eb88e4cf9a30c6d71d06dc48181adc3716328554c6b0bf4bed73", - "blockNumber": "0x14bc0d5", - "gasUsed": "0x8ef28", - "effectiveGasPrice": "0x6cb249", - "from": "0x2f321372e8a9755cd2ca6114eb8da32a14f8100b", - "to": "0x4ce25be5611b6527ea48f7abf513d48bacb4cc44", - "contractAddress": null, - "l1BaseFeeScalar": "0x8dd", - "l1BlobBaseFee": "0x12339d1", - "l1BlobBaseFeeScalar": "0x101c12", - "l1Fee": "0x6cc3b73876", - "l1GasPrice": "0x21f2b1e18", - "l1GasUsed": "0x532f" - } - ], - "libraries": [], - "pending": [], - "returns": {}, - "timestamp": 1730272931, - "chain": 8453, - "commit": "f4174575" -} \ No newline at end of file diff --git a/packages/contract/script/deployV2.sh b/packages/contract/script/deployV2.sh index 77e73b447..d1e6df4be 100755 --- a/packages/contract/script/deployV2.sh +++ b/packages/contract/script/deployV2.sh @@ -18,7 +18,7 @@ SCRIPTS=( # "script/pay/DeployDaimoPayAcrossBridger.s.sol" # "script/pay/DeployDaimoPayCCTPBridger.s.sol" # "script/pay/DeployDaimoPayAxelarBridger.s.sol" - "script/pay/DeployDaimoPayAxelarReceiver.s.sol" + # "script/pay/DeployDaimoPayAxelarReceiver.s.sol" # "script/pay/DeployDaimoPayBridger.s.sol" # "script/pay/DeployPayIntentFactory.s.sol" # "script/pay/DeployDaimoPay.s.sol" @@ -35,7 +35,7 @@ SCRIPTS=( ) CHAINS=( # MAINNETS - "$ETHERSCAN_API_KEY_BASE,https://base-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY" + # "$ETHERSCAN_API_KEY_BASE,https://base-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY" # "$ETHERSCAN_API_KEY_OP,https://opt-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY" # "$ETHERSCAN_API_KEY_ARB,https://arb-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY" # "$ETHERSCAN_API_KEY_POLYGON,https://polygon-mainnet.g.alchemy.com/v2/$ALCHEMY_API_KEY" diff --git a/packages/contract/script/pay/DeployDaimoPayAxelarBridger.s.sol b/packages/contract/script/pay/DeployDaimoPayAxelarBridger.s.sol index fb3c4737d..e57ce8102 100644 --- a/packages/contract/script/pay/DeployDaimoPayAxelarBridger.s.sol +++ b/packages/contract/script/pay/DeployDaimoPayAxelarBridger.s.sol @@ -5,7 +5,6 @@ import "forge-std/Script.sol"; import "openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol"; import "../../src/pay/DaimoPayAxelarBridger.sol"; -import "../../src/pay/DaimoPayAxelarReceiver.sol"; import "../Constants.s.sol"; contract DeployDaimoPayAxelarBridger is Script { @@ -24,7 +23,7 @@ contract DeployDaimoPayAxelarBridger is Script { address initOwner = msg.sender; address bridger = CREATE3.deploy( - keccak256("DaimoPayAxelarBridger-test3"), + keccak256("DaimoPayAxelarBridger-warmup5"), abi.encodePacked( type(DaimoPayAxelarBridger).creationCode, abi.encode( @@ -54,7 +53,7 @@ contract DeployDaimoPayAxelarBridger is Script { { address axelarReceiver = CREATE3.getDeployed( msg.sender, - keccak256("DaimoPayAxelarReceiver-test3") + keccak256("DaimoPayAxelarBridger-warmup5") ); bool testnet = _isTestnet(block.chainid); diff --git a/packages/contract/script/pay/DeployDaimoPayAxelarReceiver.s.sol b/packages/contract/script/pay/DeployDaimoPayAxelarReceiver.s.sol deleted file mode 100644 index 45b1b2bb2..000000000 --- a/packages/contract/script/pay/DeployDaimoPayAxelarReceiver.s.sol +++ /dev/null @@ -1,31 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0-or-later -pragma solidity ^0.8.13; - -import "forge-std/Script.sol"; -import "openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol"; - -import "../../src/pay/DaimoPayAxelarReceiver.sol"; -import "../Constants.s.sol"; - -contract DeployDaimoPayAxelarReceiver is Script { - function run() public { - address axelarGateway = _getAxelarGatewayAddress(block.chainid); - - vm.startBroadcast(); - - address receiver = CREATE3.deploy( - keccak256("DaimoPayAxelarReceiver-test3"), - abi.encodePacked( - type(DaimoPayAxelarReceiver).creationCode, - abi.encode(axelarGateway) - ) - ); - - console.log("Axelar receiver deployed at address:", address(receiver)); - - vm.stopBroadcast(); - } - - // Exclude from forge coverage - function test() public {} -} diff --git a/packages/contract/src/pay/DaimoPayAxelarBridger.sol b/packages/contract/src/pay/DaimoPayAxelarBridger.sol index b1c2c4ff7..fe46a67b7 100644 --- a/packages/contract/src/pay/DaimoPayAxelarBridger.sol +++ b/packages/contract/src/pay/DaimoPayAxelarBridger.sol @@ -1,6 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later pragma solidity ^0.8.12; +import {AxelarExpressExecutableWithToken} from "@axelar-network/contracts/express/AxelarExpressExecutableWithToken.sol"; import {IAxelarGatewayWithToken} from "@axelar-network/contracts/interfaces/IAxelarGatewayWithToken.sol"; import {IAxelarGasService} from "@axelar-network/contracts/interfaces/IAxelarGasService.sol"; import "@openzeppelin/contracts/utils/Strings.sol"; @@ -17,7 +18,11 @@ import "../interfaces/IDaimoPayBridger.sol"; /// @dev Bridges assets from to a destination chain using Axelar Protocol. Makes /// the assumption that the local token is an ERC20 token and has a 1 to 1 price /// with the corresponding destination token. -contract DaimoPayAxelarBridger is IDaimoPayBridger, Ownable2Step { +contract DaimoPayAxelarBridger is + IDaimoPayBridger, + AxelarExpressExecutableWithToken, + Ownable2Step +{ using SafeERC20 for IERC20; using Strings for address; @@ -26,6 +31,7 @@ contract DaimoPayAxelarBridger is IDaimoPayBridger, Ownable2Step { string tokenSymbol; address localTokenAddr; address receiverContract; + // Fee to be paid in native token for Axelar's bridging gas fee uint256 fee; } @@ -66,7 +72,10 @@ contract DaimoPayAxelarBridger is IDaimoPayBridger, Ownable2Step { uint256[] memory _toChainIds, address[] memory _toTokens, AxelarBridgeRoute[] memory _bridgeRoutes - ) Ownable(_owner) { + ) + Ownable(_owner) + AxelarExpressExecutableWithToken(address(_axelarGateway)) + { axelarGateway = _axelarGateway; axelarGasService = _axelarGasService; @@ -135,11 +144,40 @@ contract DaimoPayAxelarBridger is IDaimoPayBridger, Ownable2Step { }); } + // ----- AXELAR EXECUTABLE FUNCTIONS ----- + + /// Part of the AxelarExpressExecutableWithToken interface. Used to make + /// a contract call on the destination chain without tokens. Not supported + /// by this implementation because we will always be bridging tokens. + function _execute( + bytes32 /* commandId */, + string calldata /* sourceChain */, + string calldata /* sourceAddress */, + bytes calldata /* payload */ + ) internal pure override { + revert("DPAxB: _execute not supported"); + } + + /// Part of the AxelarExpressExecutableWithToken interface. Used to make + /// a contract call on the destination chain with tokens. Will always be + /// used to transfer tokens to the intent address on the destination chain. + function _executeWithToken( + bytes32 /* commandId */, + string calldata /* sourceChain */, + string calldata /* sourceAddress */, + bytes calldata payload, + string calldata tokenSymbol, + uint256 amount + ) internal override { + address recipient = abi.decode(payload, (address)); + address tokenAddress = axelarGateway.tokenAddresses(tokenSymbol); + + IERC20(tokenAddress).safeTransfer(recipient, amount); + } + // ----- BRIDGING FUNCTIONS ----- - /// Get the local token that corresponds to the destination token. Get the - /// minimum input amount for a given output amount. The input amount must - /// cover the max of the percentage fee and the flat fee. + /// Get the local token that corresponds to the destination token. function getInputTokenAmount( uint256 toChainId, address toToken, @@ -148,20 +186,22 @@ contract DaimoPayAxelarBridger is IDaimoPayBridger, Ownable2Step { AxelarBridgeRoute memory bridgeRoute = bridgeRouteMapping[toChainId][ toToken ]; - return (bridgeRoute.localTokenAddr, toAmount + bridgeRoute.fee); + return (bridgeRoute.localTokenAddr, toAmount); } - /// Initiate a bridge to a destination chain using Across Protocol. + /// Initiate a bridge to a destination chain using Axelar Protocol. function sendToChain( uint256 toChainId, address toAddress, address toToken, uint256 toAmount, - bytes calldata /* extraData */ + bytes calldata extraData ) public { require(toChainId != block.chainid, "DPAxB: same chain"); require(toAmount > 0, "DPAxB: zero amount"); + address refundAddress = abi.decode(extraData, (address)); + // Get the local token that corresponds to the destination token. (address inputToken, uint256 inputAmount) = getInputTokenAmount({ toChainId: toChainId, @@ -173,36 +213,40 @@ contract DaimoPayAxelarBridger is IDaimoPayBridger, Ownable2Step { toToken ]; - // Move input token from caller to this contract and approve the - // AxelarGateway contract. + // Move input token from caller to this contract IERC20(inputToken).safeTransferFrom({ from: msg.sender, to: address(this), value: inputAmount }); - IERC20(inputToken).forceApprove({ - spender: address(axelarGateway), - value: inputAmount - }); - axelarGasService.payGasForExpressCallWithToken( - msg.sender, + // Pay for Axelar's bridging gas fee. + axelarGasService.payNativeGasForContractCallWithToken{ + value: bridgeRoute.fee + }( + address(this), bridgeRoute.destChainName, bridgeRoute.receiverContract.toHexString(), abi.encode(toAddress), bridgeRoute.tokenSymbol, - inputAmount, - inputToken, - bridgeRoute.fee, - msg.sender + toAmount, + refundAddress ); + // Approve the AxelarGateway contract and initiate the bridge. Send the + // tokens to the DaimoPayAxelarBridger on the destination chain. The + // _executeWithToken function will be called on the destination chain + // to transfer the tokens to the toAddress. + IERC20(inputToken).forceApprove({ + spender: address(axelarGateway), + value: toAmount + }); axelarGateway.callContractWithToken( bridgeRoute.destChainName, bridgeRoute.receiverContract.toHexString(), abi.encode(toAddress), bridgeRoute.tokenSymbol, - inputAmount + toAmount ); emit BridgeInitiated({ @@ -215,4 +259,6 @@ contract DaimoPayAxelarBridger is IDaimoPayBridger, Ownable2Step { toAmount: toAmount }); } + + receive() external payable {} } diff --git a/packages/contract/src/pay/DaimoPayAxelarReceiver.sol b/packages/contract/src/pay/DaimoPayAxelarReceiver.sol deleted file mode 100644 index 4c6c5a590..000000000 --- a/packages/contract/src/pay/DaimoPayAxelarReceiver.sol +++ /dev/null @@ -1,47 +0,0 @@ -// SPDX-License-Identifier: GPL-3.0-or-later -pragma solidity ^0.8.12; - -import {AxelarExpressExecutableWithToken} from "@axelar-network/contracts/express/AxelarExpressExecutableWithToken.sol"; -import "openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol"; - -/// @title Receiver contract for Axelar Protocol -/// @author The Daimo team -/// @custom:security-contact security@daimo.com -/// -/// @dev Receives assets on the destination chain and transfers them to the -/// intended recipient. Axelar's -contract DaimoPayAxelarReceiver is AxelarExpressExecutableWithToken { - using SafeERC20 for IERC20; - - constructor(address _gateway) AxelarExpressExecutableWithToken(_gateway) {} - - function _execute( - bytes32 /* commandId */, - string calldata /* sourceChain */, - string calldata /* sourceAddress */, - bytes calldata /* payload */ - ) internal pure override { - revert("DPAxR: _execute not supported"); - } - - /** - * @notice logic to be executed on dest chain - * @dev this is triggered automatically by relayer - * @param payload encoded gmp message sent from src chain - * @param tokenSymbol symbol of token sent from src chain - * @param amount amount of tokens sent from src chain - */ - function _executeWithToken( - bytes32 /* commandId */, - string calldata /* sourceChain */, - string calldata /* sourceAddress */, - bytes calldata payload, - string calldata tokenSymbol, - uint256 amount - ) internal override { - address recipient = abi.decode(payload, (address)); - address tokenAddress = gatewayWithToken().tokenAddresses(tokenSymbol); - - IERC20(tokenAddress).safeTransfer(recipient, amount); - } -} diff --git a/packages/contract/src/pay/DaimoPayRelayer.sol b/packages/contract/src/pay/DaimoPayRelayer.sol index e3a410f8f..5f469659a 100644 --- a/packages/contract/src/pay/DaimoPayRelayer.sol +++ b/packages/contract/src/pay/DaimoPayRelayer.sol @@ -117,6 +117,26 @@ contract DaimoPayRelayer is Ownable2Step { ); } + function startIntent( + DaimoPay dp, + PayIntent calldata intent, + Call[] calldata calls, + bytes calldata bridgeExtraData, + uint256 bridgeGasFee + ) public onlyOwner { + // We use Axelar when bridging to BSC. Axelar requries a native token + // payment for the gas fee. + if (intent.toChainId == 56) { + DaimoPayBridger bridger = dp.bridger(); + IDaimoPayBridger axelarBridger = bridger.chainIdToBridger(56); + (bool success, ) = address(axelarBridger).call{value: bridgeGasFee}( + "" + ); + require(success, "DPR: axelar fee transfer failed"); + } + dp.startIntent(intent, calls, bridgeExtraData); + } + function fastFinish( DaimoPay dp, PayIntent calldata intent, diff --git a/packages/contract/test/DaimoPay.t.sol b/packages/contract/test/DaimoPay.t.sol index ea67cd218..86af8e4bb 100644 --- a/packages/contract/test/DaimoPay.t.sol +++ b/packages/contract/test/DaimoPay.t.sol @@ -2,6 +2,7 @@ pragma solidity ^0.8.13; import "forge-std/Test.sol"; +import {GasInfo} from "@axelar-network/contracts/interfaces/IAxelarGasService.sol"; import "account-abstraction/interfaces/IEntryPoint.sol"; import "account-abstraction/core/EntryPoint.sol"; @@ -10,12 +11,11 @@ import "../src/pay/DaimoPayBridger.sol"; import "../src/pay/DaimoPayCCTPBridger.sol"; import "../src/pay/DaimoPayAcrossBridger.sol"; import "../src/pay/DaimoPayAxelarBridger.sol"; -import "../src/pay/DaimoPayAxelarReceiver.sol"; import "./dummy/DaimoDummyUSDC.sol"; -address constant BASE_INTENT_ADDR = 0xd880D93c97dBc39424c8199F85C63EFCBcc2727D; -address constant LINEA_INTENT_ADDR = 0xD7d57FF9931D6AB74A4b05a1ed2A2368D485860b; -address constant BNB_INTENT_ADDR = 0xAB83a49FE9F96C45E6F5EB1fAa2755987522ac38; +address constant BASE_INTENT_ADDR = 0xB87c250C2A5697A29BF705c2B785D57E5316F569; +address constant LINEA_INTENT_ADDR = 0x018D75D202dF6aD5783C6fcef15AbCC93113530b; +address constant BSC_INTENT_ADDR = 0xdc20CA67e52107Bb77631A6e5F1A7c9b9B20bB81; contract DaimoPayTest is Test { // Daimo Pay contracts @@ -27,7 +27,6 @@ contract DaimoPayTest is Test { DaimoPayCCTPBridger public cctpBridger; DaimoPayAcrossBridger public acrossBridger; DaimoPayAxelarBridger public axelarBridger; - DaimoPayAxelarReceiver public axelarReceiver; // CCTP dummy contracts DummyTokenMinter public tokenMinter; @@ -37,7 +36,8 @@ contract DaimoPayTest is Test { DummySpokePool public spokePool; // Axelar dummy contracts - // DummyAxelarGateway public axelarGateway; + DummyAxelarGatewayWithToken public axelarGateway; + DummyAxelarGasService public axelarGasService; // Account addresses address immutable _alice = 0xaAaAaAaaAaAaAaaAaAAAAAAAAaaaAaAaAaaAaaAa; @@ -58,7 +58,7 @@ contract DaimoPayTest is Test { uint256 immutable _baseChainId = 8453; // Base uint32 immutable _baseDomain = 6; // Base uint256 immutable _lineaChainId = 59144; // Linea - uint256 immutable _bnbChainId = 56; // BNB Chain + uint256 immutable _bscChainId = 56; // BNB Chain // Intent data uint256 immutable _toAmount = 100; @@ -107,32 +107,37 @@ contract DaimoPayTest is Test { }); // Initialize Axelar bridger - // axelarGateway = new DummyAxelarGateway(); - // axelarReceiver = new DaimoPayAxelarReceiver(address(axelarGateway)); - // axelarBridger = new DaimoPayAxelarBridger({ - // _owner: address(this), - // _axelarGateway: axelarGateway, - // _toChainIds: new uint256[](0), - // _toTokens: new address[](0), - // _bridgeRoutes: new DaimoPayAxelarBridger.AxelarBridgeRoute[](0) - // }); - // axelarBridger.addBridgeRoute({ - // toChainId: _bnbChainId, - // toToken: address(_toToken), - // bridgeRoute: DaimoPayAxelarBridger.AxelarBridgeRoute({ - // destChainName: "binance", - // tokenSymbol: "axlUSDC", - // localTokenAddr: address(_fromToken), - // fee: 10 // (= $0.00001) - // }) - // }); + axelarGateway = new DummyAxelarGatewayWithToken(); + axelarGasService = new DummyAxelarGasService( + _toAmount, + address(_alice) + ); + axelarBridger = new DaimoPayAxelarBridger({ + _owner: address(this), + _axelarGateway: axelarGateway, + _axelarGasService: axelarGasService, + _toChainIds: new uint256[](0), + _toTokens: new address[](0), + _bridgeRoutes: new DaimoPayAxelarBridger.AxelarBridgeRoute[](0) + }); + axelarBridger.addBridgeRoute({ + toChainId: _bscChainId, + toToken: address(_toToken), + bridgeRoute: DaimoPayAxelarBridger.AxelarBridgeRoute({ + destChainName: "binance", + tokenSymbol: "axlUSDC", + localTokenAddr: address(_fromToken), + receiverContract: address(0xdead), + fee: 10 + }) + }); // Map _baseChainId to cctpBridger, _lineaChainId to acrossBridger, - // and _bnbChainId to axelarBridger + // and _bscChainId to axelarBridger uint256[] memory chainIds = new uint256[](3); chainIds[0] = _baseChainId; chainIds[1] = _lineaChainId; - chainIds[2] = _bnbChainId; + chainIds[2] = _bscChainId; IDaimoPayBridger[] memory bridgers = new IDaimoPayBridger[](3); bridgers[0] = cctpBridger; bridgers[1] = acrossBridger; @@ -193,7 +198,7 @@ contract DaimoPayTest is Test { // Get the intent address for the BNB chain PayIntent memory bnbIntent = PayIntent({ - toChainId: _bnbChainId, + toChainId: _bscChainId, bridgeTokenOut: TokenAmount({token: _toToken, amount: _toAmount}), finalCallToken: TokenAmount({token: _toToken, amount: _toAmount}), finalCall: Call({to: _bob, value: 0, data: ""}), @@ -206,7 +211,7 @@ contract DaimoPayTest is Test { assertEq(actualBaseIntentAddr, BASE_INTENT_ADDR); assertEq(actualLineaIntentAddr, LINEA_INTENT_ADDR); - assertEq(actualBnbIntentAddr, BNB_INTENT_ADDR); + assertEq(actualBnbIntentAddr, BSC_INTENT_ADDR); } // Test that startIntent reverts when the intent is on the same chain. @@ -317,11 +322,11 @@ contract DaimoPayTest is Test { "incorrect Across amount received" ); // Check that the Axelar bridger didn't receive tokens - // assertEq( - // axelarGateway.totalInputAmount(), - // 0, - // "incorrect Axelar amount received" - // ); + assertEq( + axelarGateway.totalAmount(), + 0, + "incorrect Axelar amount received" + ); } // Test a simple startIntent call that bridges using Across. @@ -406,14 +411,14 @@ contract DaimoPayTest is Test { expectedInputAmount, "incorrect Across amount received" ); - // Check that the CCTP messenger didn't burned tokens + // Check that the CCTP messenger didn't burn tokens assertEq(messenger.amountBurned(), 0, "incorrect CCTP amount burned"); // Check that the Axelar bridger didn't receive tokens - // assertEq( - // axelarGateway.totalInputAmount(), - // 0, - // "incorrect Axelar amount received" - // ); + assertEq( + axelarGateway.totalAmount(), + 0, + "incorrect Axelar amount received" + ); // Check that the extra tokens were refunded to the caller assertEq(_fromToken.balanceOf(_alice), 555 - 120 + 10); @@ -431,7 +436,7 @@ contract DaimoPayTest is Test { vm.startPrank(_alice); PayIntent memory intent = PayIntent({ - toChainId: _bnbChainId, + toChainId: _bscChainId, bridgeTokenOut: TokenAmount({token: _toToken, amount: _toAmount}), finalCallToken: TokenAmount({token: _toToken, amount: _toAmount}), finalCall: Call({to: _bob, value: 0, data: ""}), @@ -440,18 +445,19 @@ contract DaimoPayTest is Test { nonce: _nonce }); - // Alice sends some coins to the intent address, enough to cover the - // 10 USDC flat fee. - uint256 inputAmount = _toAmount + 10; + // Alice sends some coins to the intent address address intentAddr = intentFactory.getIntentAddress(intent); - _fromToken.transfer(intentAddr, inputAmount); + _fromToken.transfer(intentAddr, _toAmount); + + // Give the DaimoPayAxelarBridger some native token to pay for gas + vm.deal(address(axelarBridger), 10); vm.expectEmit(address(axelarBridger)); emit IDaimoPayBridger.BridgeInitiated({ fromAddress: address(bridger), fromToken: address(_fromToken), - fromAmount: inputAmount, - toChainId: _bnbChainId, + fromAmount: _toAmount, + toChainId: _bscChainId, toAddress: intentAddr, toToken: address(_toToken), toAmount: _toAmount @@ -460,11 +466,14 @@ contract DaimoPayTest is Test { vm.expectEmit(address(dp)); emit DaimoPay.Start(intentAddr, intent); + // Encode the refund address in the bridgeExtraData + bytes memory bridgeExtraData = abi.encode(address(_alice)); + uint256 gasBefore = gasleft(); dp.startIntent({ intent: intent, calls: new Call[](0), - bridgeExtraData: "" + bridgeExtraData: bridgeExtraData }); uint256 gasAfter = gasleft(); @@ -473,13 +482,19 @@ contract DaimoPayTest is Test { vm.stopPrank(); assertEq(dp.intentSent(intentAddr), true, "intent not sent"); + // Check that the gas service received the correct amount + assertEq( + address(axelarGasService).balance, + 10, + "incorrect gas service balance" + ); // Check that the Axelar bridger received tokens - // assertEq( - // axelarGateway.totalInputAmount(), - // inputAmount, - // "incorrect Axelar amount received" - // ); - // Check that the CCTP messenger didn't burned tokens + assertEq( + axelarGateway.totalAmount(), + _toAmount, + "incorrect Axelar amount received" + ); + // Check that the CCTP messenger didn't burn tokens assertEq(messenger.amountBurned(), 0, "incorrect CCTP amount burned"); // Check that the Across bridger didn't receive tokens assertEq( @@ -925,183 +940,353 @@ contract DummySpokePool is V3SpokePoolInterface, Test { ) external {} } -// contract DummyAxelarGateway is IAxelarGateway, Test { -// uint256 public totalInputAmount; - -// /********************\ -// |* Public Functions *| -// \********************/ - -// function sendToken( -// string calldata destinationChain, -// string calldata destinationAddress, -// string calldata symbol, -// uint256 amount -// ) external { -// assertEq(destinationChain, "binance", "incorrect destination chain"); -// assertEq( -// destinationAddress, -// Strings.toHexString(BNB_INTENT_ADDR), -// "incorrect destination address" -// ); -// assertEq(symbol, "axlUSDC", "incorrect symbol"); -// totalInputAmount += amount; -// } - -// function callContract( -// string calldata /* destinationChain */, -// string calldata /* contractAddress */, -// bytes calldata /* payload */ -// ) external pure { -// revert("not implemented"); -// } - -// function callContractWithToken( -// string calldata /* destinationChain */, -// string calldata /* contractAddress */, -// bytes calldata /* payload */, -// string calldata /* symbol */, -// uint256 /* amount */ -// ) external pure { -// revert("not implemented"); -// } - -// function isContractCallApproved( -// bytes32 /* commandId */, -// string calldata /* sourceChain */, -// string calldata /* sourceAddress */, -// address /* contractAddress */, -// bytes32 /* payloadHash */ -// ) external pure returns (bool) { -// revert("not implemented"); -// } - -// function isContractCallAndMintApproved( -// bytes32 /* commandId */, -// string calldata /* sourceChain */, -// string calldata /* sourceAddress */, -// address /* contractAddress */, -// bytes32 /* payloadHash */, -// string calldata /* symbol */, -// uint256 /* amount */ -// ) external pure returns (bool) { -// revert("not implemented"); -// } - -// function validateContractCall( -// bytes32 /* commandId */, -// string calldata /* sourceChain */, -// string calldata /* sourceAddress */, -// bytes32 /* payloadHash */ -// ) external pure returns (bool) { -// revert("not implemented"); -// } - -// function validateContractCallAndMint( -// bytes32 /* commandId */, -// string calldata /* sourceChain */, -// string calldata /* sourceAddress */, -// bytes32 /* payloadHash */, -// string calldata /* symbol */, -// uint256 /* amount */ -// ) external pure returns (bool) { -// revert("not implemented"); -// } - -// /***********\ -// |* Getters *| -// \***********/ - -// function authModule() external pure returns (address) { -// revert("not implemented"); -// } - -// function tokenDeployer() external pure returns (address) { -// revert("not implemented"); -// } - -// function tokenMintLimit( -// string memory /* symbol */ -// ) external pure returns (uint256) { -// revert("not implemented"); -// } - -// function tokenMintAmount( -// string memory /* symbol */ -// ) external pure returns (uint256) { -// revert("not implemented"); -// } - -// function allTokensFrozen() external pure returns (bool) { -// revert("not implemented"); -// } - -// function implementation() external pure returns (address) { -// revert("not implemented"); -// } - -// function tokenAddresses( -// string memory /* symbol */ -// ) external pure returns (address) { -// revert("not implemented"); -// } - -// function tokenFrozen( -// string memory /* symbol */ -// ) external pure returns (bool) { -// revert("not implemented"); -// } - -// function isCommandExecuted( -// bytes32 /* commandId */ -// ) external pure returns (bool) { -// revert("not implemented"); -// } - -// function adminEpoch() external pure returns (uint256) { -// revert("not implemented"); -// } - -// function adminThreshold( -// uint256 /* epoch */ -// ) external pure returns (uint256) { -// revert("not implemented"); -// } - -// function admins( -// uint256 /* epoch */ -// ) external pure returns (address[] memory) { -// revert("not implemented"); -// } - -// /*******************\ -// |* Admin Functions *| -// \*******************/ - -// function setTokenMintLimits( -// string[] calldata /* symbols */, -// uint256[] calldata /* limits */ -// ) external pure { -// revert("not implemented"); -// } - -// function upgrade( -// address /* newImplementation */, -// bytes32 /* newImplementationCodeHash */, -// bytes calldata /* setupParams */ -// ) external pure { -// revert("not implemented"); -// } - -// /**********************\ -// |* External Functions *| -// \**********************/ - -// function setup(bytes calldata /* params */) external pure { -// revert("not implemented"); -// } - -// function execute(bytes calldata /* input */) external pure { -// revert("not implemented"); -// } -// } +contract DummyAxelarGatewayWithToken is IAxelarGatewayWithToken, Test { + uint256 public totalAmount; + + constructor() { + totalAmount = 0; + } + + function callContractWithToken( + string calldata destinationChain, + string calldata contractAddress, + bytes calldata payload, + string calldata symbol, + uint256 amount + ) external { + assertEq(destinationChain, "binance", "incorrect destination chain"); + assertEq( + contractAddress, + Strings.toHexString(address(0xdead)), + "incorrect contract address" + ); + assertEq(payload, abi.encode(BSC_INTENT_ADDR), "incorrect payload"); + assertEq(symbol, "axlUSDC", "incorrect symbol"); + + totalAmount += amount; + } + + function callContract( + string calldata /* destinationChain */, + string calldata /* destinationContractAddress */, + bytes calldata /* payload */ + ) external pure { + revert("not implemented"); + } + + function isContractCallApproved( + bytes32 /* commandId */, + string calldata /* sourceChain */, + string calldata /* sourceAddress */, + address /* contractAddress */, + bytes32 /* payloadHash */ + ) external pure returns (bool) { + revert("not implemented"); + } + + function validateContractCall( + bytes32 /* commandId */, + string calldata /* sourceChain */, + string calldata /* sourceAddress */, + bytes32 /* payloadHash */ + ) external pure returns (bool) { + revert("not implemented"); + } + + function isCommandExecuted( + bytes32 /* commandId */ + ) external pure returns (bool) { + revert("not implemented"); + } + + function sendToken( + string calldata /* destinationChain */, + string calldata /* destinationAddress */, + string calldata /* symbol */, + uint256 /* amount */ + ) external pure { + revert("not implemented"); + } + + function isContractCallAndMintApproved( + bytes32 /* commandId */, + string calldata /* sourceChain */, + string calldata /* sourceAddress */, + address /* contractAddress */, + bytes32 /* payloadHash */, + string calldata /* symbol */, + uint256 /* amount */ + ) external pure returns (bool) { + revert("not implemented"); + } + + function validateContractCallAndMint( + bytes32 /* commandId */, + string calldata /* sourceChain */, + string calldata /* sourceAddress */, + bytes32 /* payloadHash */, + string calldata /* symbol */, + uint256 /* amount */ + ) external pure returns (bool) { + revert("not implemented"); + } + + function tokenAddresses( + string memory /* symbol */ + ) external pure returns (address) { + revert("not implemented"); + } +} + +contract DummyAxelarGasService is IAxelarGasService, Test { + uint256 public immutable expectedAmount; + address public immutable expectedRefundAddress; + + constructor(uint256 amount, address refundAddress) { + expectedAmount = amount; + expectedRefundAddress = refundAddress; + } + + function payNativeGasForContractCallWithToken( + address /* sender */, + string calldata destinationChain, + string calldata destinationAddress, + bytes calldata payload, + string calldata symbol, + uint256 amount, + address refundAddress + ) external payable { + assertEq(destinationChain, "binance", "incorrect destination chain"); + assertEq( + destinationAddress, + Strings.toHexString(address(0xdead)), + "incorrect destination address" + ); + assertEq(payload, abi.encode(BSC_INTENT_ADDR), "incorrect payload"); + assertEq(symbol, "axlUSDC", "incorrect symbol"); + assertEq(amount, expectedAmount, "incorrect amount"); + assertEq( + refundAddress, + expectedRefundAddress, + "incorrect refund address" + ); + } + + function payNativeGasForExpressCallWithToken( + address /* sender */, + string calldata /* destinationChain */, + string calldata /* destinationAddress */, + bytes calldata /* payload */, + string calldata /* symbol */, + uint256 /* amount */, + address /* refundAddress */ + ) external payable { + revert("not implemented"); + } + + function getGasInfo( + string calldata /* chain */ + ) external pure returns (GasInfo memory) { + revert("not implemented"); + } + + function estimateGasFee( + string calldata /* destinationChain */, + string calldata /* destinationAddress */, + bytes calldata /* payload */, + uint256 /* executionGasLimit */, + bytes calldata /* params */ + ) external pure returns (uint256 /* gasEstimate */) { + revert("not implemented"); + } + + function payGas( + address /* sender */, + string calldata /* destinationChain */, + string calldata /* destinationAddress */, + bytes calldata /* payload */, + uint256 /* executionGasLimit */, + bool /* estimateOnChain */, + address /* refundAddress */, + bytes calldata /* params */ + ) external payable { + revert("not implemented"); + } + + function payGasForContractCall( + address /* sender */, + string calldata /* destinationChain */, + string calldata /* destinationAddress */, + bytes calldata /* payload */, + address /* gasToken */, + uint256 /* gasFeeAmount */, + address /* refundAddress */ + ) external pure { + revert("not implemented"); + } + + function payGasForContractCallWithToken( + address /* sender */, + string calldata /* destinationChain */, + string calldata /* destinationAddress */, + bytes calldata /* payload */, + string calldata /* symbol */, + uint256 /* amount */, + address /* gasToken */, + uint256 /* gasFeeAmount */, + address /* refundAddress */ + ) external pure { + revert("not implemented"); + } + + function payNativeGasForContractCall( + address /* sender */, + string calldata /* destinationChain */, + string calldata /* destinationAddress */, + bytes calldata /* payload */, + address /* refundAddress */ + ) external payable { + revert("not implemented"); + } + + function payGasForExpressCall( + address /* sender */, + string calldata /* destinationChain */, + string calldata /* destinationAddress */, + bytes calldata /* payload */, + address /* gasToken */, + uint256 /* gasFeeAmount */, + address /* refundAddress */ + ) external pure { + revert("not implemented"); + } + + function payGasForExpressCallWithToken( + address /* sender */, + string calldata /* destinationChain */, + string calldata /* destinationAddress */, + bytes calldata /* payload */, + string calldata /* symbol */, + uint256 /* amount */, + address /* gasToken */, + uint256 /* gasFeeAmount */, + address /* refundAddress */ + ) external pure { + revert("not implemented"); + } + + function payNativeGasForExpressCall( + address /* sender */, + string calldata /* destinationChain */, + string calldata /* destinationAddress */, + bytes calldata /* payload */, + address /* refundAddress */ + ) external payable { + revert("not implemented"); + } + + function addGas( + bytes32 /* txHash */, + uint256 /* logIndex */, + address /* gasToken */, + uint256 /* gasFeeAmount */, + address /* refundAddress */ + ) external pure { + revert("not implemented"); + } + + function addNativeGas( + bytes32 /* txHash */, + uint256 /* logIndex */, + address /* refundAddress */ + ) external payable { + revert("not implemented"); + } + + function addExpressGas( + bytes32 /* txHash */, + uint256 /* logIndex */, + address /* gasToken */, + uint256 /* gasFeeAmount */, + address /* refundAddress */ + ) external pure { + revert("not implemented"); + } + + function addNativeExpressGas( + bytes32 /* txHash */, + uint256 /* logIndex */, + address /* refundAddress */ + ) external payable { + revert("not implemented"); + } + + function updateGasInfo( + string[] calldata /* chains */, + GasInfo[] calldata /* gasUpdates */ + ) external pure { + revert("not implemented"); + } + + function collectFees( + address payable /* receiver */, + address[] calldata /* tokens */, + uint256[] calldata /* amounts */ + ) external pure { + revert("not implemented"); + } + + function refund( + bytes32 /* txHash */, + uint256 /* logIndex */, + address payable /* receiver */, + address /* token */, + uint256 /* amount */ + ) external pure { + revert("not implemented"); + } + + function gasCollector() external pure returns (address) { + revert("not implemented"); + } + + function acceptOwnership() external pure { + revert("not implemented"); + } + + function contractId() external pure returns (bytes32) { + revert("not implemented"); + } + + function implementation() external pure returns (address) { + revert("not implemented"); + } + + function owner() external pure returns (address) { + revert("not implemented"); + } + + function pendingOwner() external pure returns (address) { + revert("not implemented"); + } + + function proposeOwnership(address /* newOwner */) external pure { + revert("not implemented"); + } + + function setup(bytes calldata /* data */) external pure { + revert("not implemented"); + } + + function transferOwnership(address /* newOwner */) external pure { + revert("not implemented"); + } + + function upgrade( + address /* newImplementation */, + bytes32 /* newImplementationCodeHash */, + bytes calldata /* params */ + ) external pure { + revert("not implemented"); + } +}