From 85da50ed37fc1bdef55ffe06697a81adf61c55ce Mon Sep 17 00:00:00 2001 From: agusx1211 Date: Wed, 10 Jun 2026 16:00:23 +0000 Subject: [PATCH 1/3] Add final timed refund deploy --- README.md | 173 +++++++++--------- .../timed-refund-2/timed-refund.json | 1 + jobs/trails/timed-refund-1.yaml | 1 + jobs/trails/timed-refund-dev-1.yaml | 69 +++++++ jobs/trails/timed-refund-prod-1.yaml | 69 +++++++ 5 files changed, 228 insertions(+), 85 deletions(-) create mode 100644 jobs/trails/build-info/timed-refund-2/timed-refund.json create mode 100644 jobs/trails/timed-refund-dev-1.yaml create mode 100644 jobs/trails/timed-refund-prod-1.yaml diff --git a/README.md b/README.md index b22484d..d1f0d60 100644 --- a/README.md +++ b/README.md @@ -163,91 +163,94 @@ This command prints the build info, which can be piped into a build-info JSON fi The following is a list of contracts that are deployed by this script. ``` -┌───────────────────────────┬───────────────────────────────────┬────────────────────────────────────────────┐ -│ Job │ Name │ Address │ -├───────────────────────────┼───────────────────────────────────┼────────────────────────────────────────────┤ -│ clawback │ Clawback │ 0x6F9a2c3E11011b894fae691d5338748f8048467d │ -│ clawback │ ClawbackMetadata │ 0x335411eAA9D63251f8c0867600Be4d0C190a3b1f │ -│ create4 │ Create4 │ 0xC4C4C4Ae7EA494fdb246991b70c8E40f471c9166 │ -│ developer-multisig │ DeveloperMultisig │ 0x007a47e6BF40C1e0ed5c01aE42fDC75879140bc4 │ -│ eip-6492 │ Eip6492 │ 0x0000000044dE9306b161ddE8D58682054e70c766 │ -│ factories │ Erc1155Factory │ 0x024b9949FeD1c8dd7154DE653456d64Aa1093384 │ -│ factories │ Erc1155Holder │ 0x3883491F1433dafafd20FB8FD9ec1fE032Ca5e3B │ -│ factories │ Erc1155PackFactory │ 0xC4F1ABB23d8CC6E2786fBe7374A1162C499E1701 │ -│ factories │ Erc1155SaleFactory │ 0xFb89C8A7DF9A1e0299088C3fC46fd87D3FcbcDBd │ -│ factories │ Erc1155SoulboundFactory │ 0xCCbB517AaCAb6680A2ad08ef5A593677dDE17284 │ -│ factories │ Erc20Factory │ 0x434c9C50b0Ca6b67AbB71F667C822d5451265062 │ -│ factories │ Erc721Factory │ 0xC6064FfBaDB0687Da29721C8EC02ACa71e735a3e │ -│ factories │ Erc721SaleFactory │ 0x2Ce46243FAb9d688CcC2B1F1B8D2c464e87A2076 │ -│ factories │ Erc721SoulboundFactory │ 0x718476DcFf820113B30fE4196905c7720F3c8a4e │ -│ guards-v1 │ DevGuardV1 │ 0x2ca2380dA88528C6061ACb70aD5222fe455F25DF │ -│ guards-v1 │ ProdGuardV1 │ 0x596aF90CecdBF9A768886E771178fd5561dD27Ab │ -│ guards-v2 │ DevGuardV2 │ 0x1d76D1D72EC65A9B933745bd0a87cAA0FAc75Af0 │ -│ guards-v2 │ ProdGuardV2 │ 0x761f5e29944D79d76656323F106CF2efBF5F09e9 │ -│ immutable-factories │ Erc1155OperatorEnforcedFactory │ 0xc89f63389ef3B53D07649D52D47F9E4afcAbb1fB │ -│ immutable-factories │ Erc712OperatorEnforcedFactory │ 0x5fD880b092bD285873b16335a454D11c062a4689 │ -│ implicit-registry │ ImplicitRegistryDev │ 0x0000002DBE996066c3F322753B4AB7F245C13981 │ -│ implicit-registry │ ImplicitRegistryNext │ 0x0000001d15BEA64A9584078917f8DB51Fb44C678 │ -│ implicit-registry │ ImplicitRegistryProd │ 0x00000000809DcDFe2Ee78a9F43eAB5f678A46002 │ -│ marketplace-v1 │ MarketV1 │ 0xB537a160472183f2150d42EB1c3DD6684A55f74c │ -│ marketplace-v2 │ BatchPayableHelperV2 │ 0x6166c1952c54dEd6b070B4616797E61b6c48A117 │ -│ marketplace-v2 │ MarketFactoryV2 │ 0xBDC76d15eA28beB6AF2Cc69b4EFBb4Aa4FB77689 │ -│ marketplace-v2 │ MarketV2 │ 0xfdb42A198a932C8D3B506Ffa5e855bC4b348a712 │ -│ multicall3 │ Multicall3 │ 0xae96419a81516f063744206d4b5E36f3168280f8 │ -│ niftyswap │ Exchange20Wrapper │ 0x2c944F28965F9A2cd5E69bA7e7520CbbD928258a │ -│ niftyswap │ Factory20 │ 0x9196b852437D9Ed92d95715dCbdA4533ffC479E0 │ -│ p256-verifier │ SoladyP256Verifier │ 0x000000000000D01eA45F9eFD5c54f037Fa57Ea1a │ -│ payments │ PaymentCombiner │ 0xfe0a269E288051B0815E05Fe192FC888118CB8a2 │ -│ payments │ PaymentSignerDev │ 0x498399DD85CAa29A42Af499f82b271f1629ba0D7 │ -│ payments │ PaymentSignerNext │ 0x51805F2d8719a833C28EAc68aE881B2Eb70c0330 │ -│ payments │ PaymentSignerProd │ 0x9061a36CDBD17fFe8115aD34c85F94b624f0Dc0F │ -│ proxy-hook │ WalletProxyHook │ 0x1f56dbAD5e8319F0DE9a323E24A31b5077dEB1a4 │ -│ SEQ-0001 │ SequenceMainModuleUpgradableDuoV1 │ 0x94Fb1E5196B4eE5A1c9ad737a505CE12bAe7Ca85 │ -│ SEQ-0001 │ SequenceMainModuleUpgradableDuoV2 │ 0x4f8ce847174b32cBe21b3887Be894e0DEBC28952 │ -│ sequence_v3/eip_7702_rc_1 │ Stage7702ModuleV3 │ 0x000000732C68Dc7D14AE652cCcbEAAC791832E58 │ -│ sequence_v3/rc_5 │ Erc4337FactoryWrapperV3 │ 0x00000000000003c0C955C8AE06FB13cDd19a7ac6 │ -│ sequence_v3/rc_5 │ GuestV3 │ 0x0000000000006Ac72ed1d192fa28f0058D3F8806 │ -│ sequence_v3/rc_5 │ PasskeysV3 │ 0x0000000000005204F3711851EAD52CC9c241499a │ -│ sequence_v3/rc_5 │ RecoveryV3 │ 0x000000000000AB36D17eB1150116371520565205 │ -│ sequence_v3/rc_5 │ SequenceV3/rc5FactoryV3 │ 0x00000000000018A77519fcCCa060c2537c9D6d3F │ -│ sequence_v3/rc_5 │ SessionsV3 │ 0x00000000000030Bcc832F7d657f50D6Be35C92b3 │ -│ sequence_v3/rc_5 │ Stage1Module433707V3 │ 0x0000000000009caFdeDb6f64Bf5F31a22124B2a8 │ -│ sequence_v3/rc_5 │ Stage1ModuleV3 │ 0x0000000000001f3C39d61698ab21131a12134454 │ -│ sequence_v3/rc_5 │ Stage2Module.valueV3 │ 0xD0ae8eF93b7DA4eabb32Ec4d81b7a501DCa04D4C │ -│ sequence_v3/rc_5 │ Stage2Module433707.valueV3 │ 0xcBca3328a731deffE6Ce4c2fb51b585c3c37FB92 │ -│ sequence-v1 │ GuestModuleV1 │ 0x02390F3E6E5FD1C6786CB78FD3027C117a9955A7 │ -│ sequence-v1 │ MainModuleUpgradeableV1 │ 0x7EFE6cE415956c5f80C6530cC6cc81b4808F6118 │ -│ sequence-v1 │ MainModuleV1 │ 0xd01F11855bCcb95f88D7A48492F66410d4637313 │ -│ sequence-v1 │ RequireFreshSignerV1 │ 0xE6B9B21C077F382333220a072e4c44280b873907 │ -│ sequence-v1 │ SequenceFactoryV1 │ 0xf9D09D634Fb818b05149329C1dcCFAeA53639d96 │ -│ sequence-v1 │ SequenceUtilsV1 │ 0xd130B43062D875a4B7aF3f8fc036Bc6e9D3E1B3E │ -│ sequence-v2 │ GuestModuleV2 │ 0xfea230Ee243f88BC698dD8f1aE93F8301B6cdfaE │ -│ sequence-v2 │ MainModuleUpgradableV2 │ 0x4222dcA3974E39A8b41c411FeDDE9b09Ae14b911 │ -│ sequence-v2 │ MainModuleV2 │ 0xfBf8f1A5E00034762D928f46d438B947f5d4065d │ -│ sequence-v2 │ SequenceFactoryV2 │ 0xFaA5c0b14d1bED5C888Ca655B9a8A5911F78eF4A │ -│ sequence-v2 │ SequenceUtilsV2 │ 0xdbbFa3cB3B087B64F4ef5E3D20Dda2488AA244e6 │ -│ stack-signers │ PaymentSignerDev │ 0x498399DD85CAa29A42Af499f82b271f1629ba0D7 │ -│ stack-signers │ PaymentSignerNext │ 0x51805F2d8719a833C28EAc68aE881B2Eb70c0330 │ -│ stack-signers │ PaymentSignerProd │ 0x9061a36CDBD17fFe8115aD34c85F94b624f0Dc0F │ -│ trails-rc-3 │ TrailsIntentEntrypoint │ 0x8f64eEB1f4680B9ed1F9d6A6Eee7CCf36258C93D │ -│ trails-rc-3 │ TrailsRouter │ 0xF8A739B9F24E297a98b7aba7A9cdFDBD457F6fF8 │ -│ trails-rc-3 │ TrailsRouterShim │ 0x1306aF05bA556839885B9B8c758f1d2F33d3571E │ -│ trails-rc-4 │ TrailsIntentEntrypoint │ 0x91E9e3Fe369CF005dB2857Ef24955A66d1E692Cf │ -│ trails-rc-4 │ TrailsRouter │ 0xF8A739B9F24E297a98b7aba7A9cdFDBD457F6fF8 │ -│ trails-rc-4 │ TrailsRouterShim │ 0x1306aF05bA556839885B9B8c758f1d2F33d3571E │ -│ trails-rc-4 │ TrailsValidator │ 0x4B3eC67c5812543924C12a07140369C29077071e │ -│ trails-rc-5 │ TrailsIntentEntrypoint │ 0x91E9e3Fe369CF005dB2857Ef24955A66d1E692Cf │ -│ trails-rc-5 │ TrailsRouter │ 0xBaE357CBAA04a68cbfD5a560Ab06C4E9A3328A90 │ -│ trails-rc-5 │ TrailsRouterShim │ 0xde04013becF982866A04d928A6df25e0D1FAaA71 │ -│ trails-rc-5 │ TrailsValidator │ 0x4B3eC67c5812543924C12a07140369C29077071e │ -│ trails-timed-refund-1 │ TrailsTimedRefundAllowlist │ 0x553c782C632e318b22C00706DAeD6c71c87e362A │ -│ trails-timed-refund-1 │ TrailsTimedRefundSapient │ 0xF2b72eCb5348D0cf0b5387C4649b17C8aa5f43A5 │ -│ trails-token-sweeper │ TrailsMulticall3Router │ 0xFF8f46538c39dCA637fCE9a804b2B59B517A9698 │ -│ trails-token-sweeper │ TrailsTokenSweeper │ 0xEbDd59B8cE1993d38e4E081E0d80662BB169d3db │ -│ trails-utils-1 │ TrailsUtils │ 0x000000004f702C8398e158108937814d074cD74b │ -│ value-forwarder │ ValueForwarder │ 0xABAAd93EeE2a569cF0632f39B10A9f5D734777ca │ -│ waas-trust-factory │ TrustFactory │ 0x4483FaA9dEEDd6D6FaCFee9c686f1E394A1280f9 │ -└───────────────────────────┴───────────────────────────────────┴────────────────────────────────────────────┘ +┌────────────────────────────┬───────────────────────────────────┬────────────────────────────────────────────┐ +│ Job │ Name │ Address │ +├────────────────────────────┼───────────────────────────────────┼────────────────────────────────────────────┤ +│ clawback │ Clawback │ 0x6F9a2c3E11011b894fae691d5338748f8048467d │ +│ clawback │ ClawbackMetadata │ 0x335411eAA9D63251f8c0867600Be4d0C190a3b1f │ +│ create4 │ Create4 │ 0xC4C4C4Ae7EA494fdb246991b70c8E40f471c9166 │ +│ developer-multisig │ DeveloperMultisig │ 0x007a47e6BF40C1e0ed5c01aE42fDC75879140bc4 │ +│ eip-6492 │ Eip6492 │ 0x0000000044dE9306b161ddE8D58682054e70c766 │ +│ factories │ Erc1155Factory │ 0x024b9949FeD1c8dd7154DE653456d64Aa1093384 │ +│ factories │ Erc1155Holder │ 0x3883491F1433dafafd20FB8FD9ec1fE032Ca5e3B │ +│ factories │ Erc1155PackFactory │ 0xC4F1ABB23d8CC6E2786fBe7374A1162C499E1701 │ +│ factories │ Erc1155SaleFactory │ 0xFb89C8A7DF9A1e0299088C3fC46fd87D3FcbcDBd │ +│ factories │ Erc1155SoulboundFactory │ 0xCCbB517AaCAb6680A2ad08ef5A593677dDE17284 │ +│ factories │ Erc20Factory │ 0x434c9C50b0Ca6b67AbB71F667C822d5451265062 │ +│ factories │ Erc721Factory │ 0xC6064FfBaDB0687Da29721C8EC02ACa71e735a3e │ +│ factories │ Erc721SaleFactory │ 0x2Ce46243FAb9d688CcC2B1F1B8D2c464e87A2076 │ +│ factories │ Erc721SoulboundFactory │ 0x718476DcFf820113B30fE4196905c7720F3c8a4e │ +│ guards-v1 │ DevGuardV1 │ 0x2ca2380dA88528C6061ACb70aD5222fe455F25DF │ +│ guards-v1 │ ProdGuardV1 │ 0x596aF90CecdBF9A768886E771178fd5561dD27Ab │ +│ guards-v2 │ DevGuardV2 │ 0x1d76D1D72EC65A9B933745bd0a87cAA0FAc75Af0 │ +│ guards-v2 │ ProdGuardV2 │ 0x761f5e29944D79d76656323F106CF2efBF5F09e9 │ +│ immutable-factories │ Erc1155OperatorEnforcedFactory │ 0xc89f63389ef3B53D07649D52D47F9E4afcAbb1fB │ +│ immutable-factories │ Erc712OperatorEnforcedFactory │ 0x5fD880b092bD285873b16335a454D11c062a4689 │ +│ implicit-registry │ ImplicitRegistryDev │ 0x0000002DBE996066c3F322753B4AB7F245C13981 │ +│ implicit-registry │ ImplicitRegistryNext │ 0x0000001d15BEA64A9584078917f8DB51Fb44C678 │ +│ implicit-registry │ ImplicitRegistryProd │ 0x00000000809DcDFe2Ee78a9F43eAB5f678A46002 │ +│ marketplace-v1 │ MarketV1 │ 0xB537a160472183f2150d42EB1c3DD6684A55f74c │ +│ marketplace-v2 │ BatchPayableHelperV2 │ 0x6166c1952c54dEd6b070B4616797E61b6c48A117 │ +│ marketplace-v2 │ MarketFactoryV2 │ 0xBDC76d15eA28beB6AF2Cc69b4EFBb4Aa4FB77689 │ +│ marketplace-v2 │ MarketV2 │ 0xfdb42A198a932C8D3B506Ffa5e855bC4b348a712 │ +│ multicall3 │ Multicall3 │ 0xae96419a81516f063744206d4b5E36f3168280f8 │ +│ niftyswap │ Exchange20Wrapper │ 0x2c944F28965F9A2cd5E69bA7e7520CbbD928258a │ +│ niftyswap │ Factory20 │ 0x9196b852437D9Ed92d95715dCbdA4533ffC479E0 │ +│ p256-verifier │ SoladyP256Verifier │ 0x000000000000D01eA45F9eFD5c54f037Fa57Ea1a │ +│ payments │ PaymentCombiner │ 0xfe0a269E288051B0815E05Fe192FC888118CB8a2 │ +│ payments │ PaymentSignerDev │ 0x498399DD85CAa29A42Af499f82b271f1629ba0D7 │ +│ payments │ PaymentSignerNext │ 0x51805F2d8719a833C28EAc68aE881B2Eb70c0330 │ +│ payments │ PaymentSignerProd │ 0x9061a36CDBD17fFe8115aD34c85F94b624f0Dc0F │ +│ proxy-hook │ WalletProxyHook │ 0x1f56dbAD5e8319F0DE9a323E24A31b5077dEB1a4 │ +│ SEQ-0001 │ SequenceMainModuleUpgradableDuoV1 │ 0x94Fb1E5196B4eE5A1c9ad737a505CE12bAe7Ca85 │ +│ SEQ-0001 │ SequenceMainModuleUpgradableDuoV2 │ 0x4f8ce847174b32cBe21b3887Be894e0DEBC28952 │ +│ sequence_v3/eip_7702 │ Stage7702ModuleV3 │ 0x000000732C68Dc7D14AE652cCcbEAAC791832E58 │ +│ sequence_v3/eip_7702_rc_1 │ Stage7702ModuleV3 │ 0x000000732C68Dc7D14AE652cCcbEAAC791832E58 │ +│ sequence_v3/rc_5 │ Erc4337FactoryWrapperV3 │ 0x00000000000003c0C955C8AE06FB13cDd19a7ac6 │ +│ sequence_v3/rc_5 │ GuestV3 │ 0x0000000000006Ac72ed1d192fa28f0058D3F8806 │ +│ sequence_v3/rc_5 │ PasskeysV3 │ 0x0000000000005204F3711851EAD52CC9c241499a │ +│ sequence_v3/rc_5 │ RecoveryV3 │ 0x000000000000AB36D17eB1150116371520565205 │ +│ sequence_v3/rc_5 │ SequenceV3/rc5FactoryV3 │ 0x00000000000018A77519fcCCa060c2537c9D6d3F │ +│ sequence_v3/rc_5 │ SessionsV3 │ 0x00000000000030Bcc832F7d657f50D6Be35C92b3 │ +│ sequence_v3/rc_5 │ Stage1Module433707V3 │ 0x0000000000009caFdeDb6f64Bf5F31a22124B2a8 │ +│ sequence_v3/rc_5 │ Stage1ModuleV3 │ 0x0000000000001f3C39d61698ab21131a12134454 │ +│ sequence_v3/rc_5 │ Stage2Module.valueV3 │ 0xD0ae8eF93b7DA4eabb32Ec4d81b7a501DCa04D4C │ +│ sequence_v3/rc_5 │ Stage2Module433707.valueV3 │ 0xcBca3328a731deffE6Ce4c2fb51b585c3c37FB92 │ +│ sequence-v1 │ GuestModuleV1 │ 0x02390F3E6E5FD1C6786CB78FD3027C117a9955A7 │ +│ sequence-v1 │ MainModuleUpgradeableV1 │ 0x7EFE6cE415956c5f80C6530cC6cc81b4808F6118 │ +│ sequence-v1 │ MainModuleV1 │ 0xd01F11855bCcb95f88D7A48492F66410d4637313 │ +│ sequence-v1 │ RequireFreshSignerV1 │ 0xE6B9B21C077F382333220a072e4c44280b873907 │ +│ sequence-v1 │ SequenceFactoryV1 │ 0xf9D09D634Fb818b05149329C1dcCFAeA53639d96 │ +│ sequence-v1 │ SequenceUtilsV1 │ 0xd130B43062D875a4B7aF3f8fc036Bc6e9D3E1B3E │ +│ sequence-v2 │ GuestModuleV2 │ 0xfea230Ee243f88BC698dD8f1aE93F8301B6cdfaE │ +│ sequence-v2 │ MainModuleUpgradableV2 │ 0x4222dcA3974E39A8b41c411FeDDE9b09Ae14b911 │ +│ sequence-v2 │ MainModuleV2 │ 0xfBf8f1A5E00034762D928f46d438B947f5d4065d │ +│ sequence-v2 │ SequenceFactoryV2 │ 0xFaA5c0b14d1bED5C888Ca655B9a8A5911F78eF4A │ +│ sequence-v2 │ SequenceUtilsV2 │ 0xdbbFa3cB3B087B64F4ef5E3D20Dda2488AA244e6 │ +│ stack-signers │ PaymentSignerDev │ 0x498399DD85CAa29A42Af499f82b271f1629ba0D7 │ +│ stack-signers │ PaymentSignerNext │ 0x51805F2d8719a833C28EAc68aE881B2Eb70c0330 │ +│ stack-signers │ PaymentSignerProd │ 0x9061a36CDBD17fFe8115aD34c85F94b624f0Dc0F │ +│ trails-rc-3 │ TrailsIntentEntrypoint │ 0x8f64eEB1f4680B9ed1F9d6A6Eee7CCf36258C93D │ +│ trails-rc-3 │ TrailsRouter │ 0xF8A739B9F24E297a98b7aba7A9cdFDBD457F6fF8 │ +│ trails-rc-3 │ TrailsRouterShim │ 0x1306aF05bA556839885B9B8c758f1d2F33d3571E │ +│ trails-rc-4 │ TrailsIntentEntrypoint │ 0x91E9e3Fe369CF005dB2857Ef24955A66d1E692Cf │ +│ trails-rc-4 │ TrailsRouter │ 0xF8A739B9F24E297a98b7aba7A9cdFDBD457F6fF8 │ +│ trails-rc-4 │ TrailsRouterShim │ 0x1306aF05bA556839885B9B8c758f1d2F33d3571E │ +│ trails-rc-4 │ TrailsValidator │ 0x4B3eC67c5812543924C12a07140369C29077071e │ +│ trails-rc-5 │ TrailsIntentEntrypoint │ 0x91E9e3Fe369CF005dB2857Ef24955A66d1E692Cf │ +│ trails-rc-5 │ TrailsRouter │ 0xBaE357CBAA04a68cbfD5a560Ab06C4E9A3328A90 │ +│ trails-rc-5 │ TrailsRouterShim │ 0xde04013becF982866A04d928A6df25e0D1FAaA71 │ +│ trails-rc-5 │ TrailsValidator │ 0x4B3eC67c5812543924C12a07140369C29077071e │ +│ trails-timed-refund-dev-1 │ TrailsTimedRefundDevAllowlist │ 0xAFBb6eF7dE34eF7F86D4EcBc8D26980F32FE8588 │ +│ trails-timed-refund-dev-1 │ TrailsTimedRefundDevSapient │ 0x1f6Da77F031f8B08F079EaD7f4Daaf5Ab3511F6F │ +│ trails-timed-refund-prod-1 │ TrailsTimedRefundProdAllowlist │ 0xdCDBcfF803ff9cFb84A5b6F791fE3FB6C1cfca42 │ +│ trails-timed-refund-prod-1 │ TrailsTimedRefundProdSapient │ 0x71AF2F079989AD1e86eB66Ed6935527a06318CF3 │ +│ trails-token-sweeper │ TrailsMulticall3Router │ 0xFF8f46538c39dCA637fCE9a804b2B59B517A9698 │ +│ trails-token-sweeper │ TrailsTokenSweeper │ 0xEbDd59B8cE1993d38e4E081E0d80662BB169d3db │ +│ trails-utils-1 │ TrailsUtils │ 0x000000004f702C8398e158108937814d074cD74b │ +│ value-forwarder │ ValueForwarder │ 0xABAAd93EeE2a569cF0632f39B10A9f5D734777ca │ +│ waas-trust-factory │ TrustFactory │ 0x4483FaA9dEEDd6D6FaCFee9c686f1E394A1280f9 │ +└────────────────────────────┴───────────────────────────────────┴────────────────────────────────────────────┘ ``` > `ERC721OperatorEnforcedFactory`, `ERC1155OperatorEnforcedFactory` and `WalletProxyHook` are only deployed on Immutable's chains. diff --git a/jobs/trails/build-info/timed-refund-2/timed-refund.json b/jobs/trails/build-info/timed-refund-2/timed-refund.json new file mode 100644 index 0000000..a2f6038 --- /dev/null +++ b/jobs/trails/build-info/timed-refund-2/timed-refund.json @@ -0,0 +1 @@ +{"id":"f93f4a7306cf36de","source_id_to_path":{"0":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","1":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","2":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","3":"lib/openzeppelin-contracts/contracts/utils/Context.sol","4":"lib/wallet-contracts-v3/src/modules/Payload.sol","5":"lib/wallet-contracts-v3/src/modules/interfaces/ISapient.sol","6":"lib/wallet-contracts-v3/src/utils/LibBytes.sol","7":"src/autoRecovery/Allowlist.sol","8":"src/autoRecovery/TimedRefundSapient.sol"},"language":"Solidity","_format":"ethers-rs-sol-build-info-1","input":{"version":"0.8.30","language":"Solidity","sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\n\npragma solidity ^0.8.20;\n\nimport {Context} from \"../utils/Context.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * The initial owner is set to the address provided by the deployer. This can\n * later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable is Context {\n address private _owner;\n\n /**\n * @dev The caller account is not authorized to perform an operation.\n */\n error OwnableUnauthorizedAccount(address account);\n\n /**\n * @dev The owner is not a valid owner account. (eg. `address(0)`)\n */\n error OwnableInvalidOwner(address owner);\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\n */\n constructor(address initialOwner) {\n if (initialOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(initialOwner);\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n _checkOwner();\n _;\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view virtual returns (address) {\n return _owner;\n }\n\n /**\n * @dev Throws if the sender is not the owner.\n */\n function _checkOwner() internal view virtual {\n if (owner() != _msgSender()) {\n revert OwnableUnauthorizedAccount(_msgSender());\n }\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby disabling any functionality that is only available to the owner.\n */\n function renounceOwnership() public virtual onlyOwner {\n _transferOwnership(address(0));\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual onlyOwner {\n if (newOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Internal function without access restriction.\n */\n function _transferOwnership(address newOwner) internal virtual {\n address oldOwner = _owner;\n _owner = newOwner;\n emit OwnershipTransferred(oldOwner, newOwner);\n }\n}\n"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.4.0) (token/ERC20/IERC20.sol)\n\npragma solidity >=0.4.16;\n\n/**\n * @dev Interface of the ERC-20 standard as defined in the ERC.\n */\ninterface IERC20 {\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n\n /**\n * @dev Returns the value of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the value of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves a `value` amount of tokens from the caller's account to `to`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address to, uint256 value) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n * caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 value) external returns (bool);\n\n /**\n * @dev Moves a `value` amount of tokens from `from` to `to` using the\n * allowance mechanism. `value` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 value) external returns (bool);\n}\n"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.4.0) (token/ERC20/extensions/IERC20Metadata.sol)\n\npragma solidity >=0.6.2;\n\nimport {IERC20} from \"../IERC20.sol\";\n\n/**\n * @dev Interface for the optional metadata functions from the ERC-20 standard.\n */\ninterface IERC20Metadata is IERC20 {\n /**\n * @dev Returns the name of the token.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the symbol of the token.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the decimals places of the token.\n */\n function decimals() external view returns (uint8);\n}\n"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n function _contextSuffixLength() internal view virtual returns (uint256) {\n return 0;\n }\n}\n"},"lib/wallet-contracts-v3/src/modules/Payload.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.27;\n\nimport { LibBytes } from \"../utils/LibBytes.sol\";\n\nusing LibBytes for bytes;\n\n/// @title Payload\n/// @author Agustin Aguilar, Michael Standen, William Hua\n/// @notice Library for encoding and decoding payloads\nlibrary Payload {\n\n /// @notice Error thrown when the kind is invalid\n error InvalidKind(uint8 kind);\n\n /// @dev keccak256(\"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\")\n bytes32 private constant EIP712_DOMAIN_TYPEHASH = 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f;\n\n /// @dev keccak256(\"Sequence Wallet\")\n bytes32 private constant EIP712_DOMAIN_NAME_SEQUENCE =\n 0x4aa45ca7ad825ceb1bf35643f0a58c295239df563b1b565c2485f96477c56318;\n\n /// @dev keccak256(\"3\")\n bytes32 private constant EIP712_DOMAIN_VERSION_SEQUENCE =\n 0x2a80e1ef1d7842f27f2e6be0972bb708b9a135c38860dbe73c27c3486c34f4de;\n\n function domainSeparator(bool _noChainId, address _wallet) internal view returns (bytes32 _domainSeparator) {\n return keccak256(\n abi.encode(\n EIP712_DOMAIN_TYPEHASH,\n EIP712_DOMAIN_NAME_SEQUENCE,\n EIP712_DOMAIN_VERSION_SEQUENCE,\n _noChainId ? uint256(0) : uint256(block.chainid),\n _wallet\n )\n );\n }\n\n /// @dev keccak256(\"Call(address to,uint256 value,bytes data,uint256 gasLimit,bool delegateCall,bool onlyFallback,uint256 behaviorOnError)\")\n bytes32 private constant CALL_TYPEHASH = 0x0603985259a953da1f65a522f589c17bd1d0117ec1d3abb7c0788aef251ef437;\n\n /// @dev keccak256(\"Calls(Call[] calls,uint256 space,uint256 nonce,address[] wallets)Call(address to,uint256 value,bytes data,uint256 gasLimit,bool delegateCall,bool onlyFallback,uint256 behaviorOnError)\")\n bytes32 private constant CALLS_TYPEHASH = 0x11e1e4079a79a66e4ade50033cfe2678cdd5341d2dfe5ef9513edb1a0be147a2;\n\n /// @dev keccak256(\"Message(bytes message,address[] wallets)\")\n bytes32 private constant MESSAGE_TYPEHASH = 0xe19a3b94fc3c7ece3f890d98a99bc422615537a08dea0603fa8425867d87d466;\n\n /// @dev keccak256(\"ConfigUpdate(bytes32 imageHash,address[] wallets)\")\n bytes32 private constant CONFIG_UPDATE_TYPEHASH = 0x11fdeb7e8373a1aa96bfac8d0ea91526b2c5d15e5cee20e0543e780258f3e8e4;\n\n /// @notice Kind of transaction\n uint8 public constant KIND_TRANSACTIONS = 0x00;\n /// @notice Kind of digest\n uint8 public constant KIND_MESSAGE = 0x01;\n /// @notice Kind of config update\n uint8 public constant KIND_CONFIG_UPDATE = 0x02;\n /// @notice Kind of message\n uint8 public constant KIND_DIGEST = 0x03;\n\n /// @notice Behavior on error: ignore error\n uint8 public constant BEHAVIOR_IGNORE_ERROR = 0x00;\n /// @notice Behavior on error: revert on error\n uint8 public constant BEHAVIOR_REVERT_ON_ERROR = 0x01;\n /// @notice Behavior on error: abort on error\n uint8 public constant BEHAVIOR_ABORT_ON_ERROR = 0x02;\n\n /// @notice Payload call information\n /// @param to Address of the target contract\n /// @param value Value to send with the call\n /// @param data Data to send with the call\n /// @param gasLimit Gas limit for the call\n /// @param delegateCall If the call is a delegate call\n /// @param onlyFallback If the call should only be executed in an error scenario\n /// @param behaviorOnError Behavior on error\n struct Call {\n address to;\n uint256 value;\n bytes data;\n uint256 gasLimit;\n bool delegateCall;\n bool onlyFallback;\n uint256 behaviorOnError;\n }\n\n /// @notice Decoded payload\n /// @param kind Kind of payload\n /// @param noChainId If the chain ID should be omitted\n /// @param calls Array of calls (transaction kind)\n /// @param space Nonce space for the calls (transaction kind)\n /// @param nonce Nonce value for the calls (transaction kind)\n /// @param message Message to validate (message kind)\n /// @param imageHash Image hash to update to (config update kind)\n /// @param digest Digest to validate (digest kind)\n /// @param parentWallets Parent wallets\n struct Decoded {\n uint8 kind;\n bool noChainId;\n // Transaction kind\n Call[] calls;\n uint256 space;\n uint256 nonce;\n // Message kind\n bytes message;\n // Config update kind\n bytes32 imageHash;\n // Digest kind for 1271\n bytes32 digest;\n // Parent wallets\n address[] parentWallets;\n }\n\n function fromMessage(\n bytes memory message\n ) internal pure returns (Decoded memory _decoded) {\n _decoded.kind = KIND_MESSAGE;\n _decoded.message = message;\n }\n\n function fromConfigUpdate(\n bytes32 imageHash\n ) internal pure returns (Decoded memory _decoded) {\n _decoded.kind = KIND_CONFIG_UPDATE;\n _decoded.imageHash = imageHash;\n }\n\n function fromDigest(\n bytes32 digest\n ) internal pure returns (Decoded memory _decoded) {\n _decoded.kind = KIND_DIGEST;\n _decoded.digest = digest;\n }\n\n function fromPackedCalls(\n bytes calldata packed\n ) internal view returns (Decoded memory _decoded) {\n _decoded.kind = KIND_TRANSACTIONS;\n\n // Read the global flag\n (uint256 globalFlag, uint256 pointer) = packed.readFirstUint8();\n\n // First bit determines if space is zero or not\n if (globalFlag & 0x01 == 0x01) {\n _decoded.space = 0;\n } else {\n (_decoded.space, pointer) = packed.readUint160(pointer);\n }\n\n // Next 3 bits determine the size of the nonce\n uint256 nonceSize = (globalFlag >> 1) & 0x07;\n\n if (nonceSize > 0) {\n // Read the nonce\n (_decoded.nonce, pointer) = packed.readUintX(pointer, nonceSize);\n }\n\n uint256 numCalls;\n\n // Bit 5 determines if the batch contains a single call\n if (globalFlag & 0x10 == 0x10) {\n numCalls = 1;\n } else {\n // Bit 6 determines if the number of calls uses 1 byte or 2 bytes\n if (globalFlag & 0x20 == 0x20) {\n (numCalls, pointer) = packed.readUint16(pointer);\n } else {\n (numCalls, pointer) = packed.readUint8(pointer);\n }\n }\n\n // Read the calls\n _decoded.calls = new Call[](numCalls);\n\n for (uint256 i = 0; i < numCalls; i++) {\n uint8 flags;\n (flags, pointer) = packed.readUint8(pointer);\n\n // First bit determines if this is a call to self\n // or a call to another address\n if (flags & 0x01 == 0x01) {\n // Call to self\n _decoded.calls[i].to = address(this);\n } else {\n // Call to another address\n (_decoded.calls[i].to, pointer) = packed.readAddress(pointer);\n }\n\n // Second bit determines if the call has value or not\n if (flags & 0x02 == 0x02) {\n (_decoded.calls[i].value, pointer) = packed.readUint256(pointer);\n }\n\n // Third bit determines if the call has data or not\n if (flags & 0x04 == 0x04) {\n // 3 bytes determine the size of the calldata\n uint256 calldataSize;\n (calldataSize, pointer) = packed.readUint24(pointer);\n _decoded.calls[i].data = packed[pointer:pointer + calldataSize];\n pointer += calldataSize;\n }\n\n // Fourth bit determines if the call has a gas limit or not\n if (flags & 0x08 == 0x08) {\n (_decoded.calls[i].gasLimit, pointer) = packed.readUint256(pointer);\n }\n\n // Fifth bit determines if the call is a delegate call or not\n _decoded.calls[i].delegateCall = (flags & 0x10 == 0x10);\n\n // Sixth bit determines if the call is fallback only\n _decoded.calls[i].onlyFallback = (flags & 0x20 == 0x20);\n\n // Last 2 bits are directly mapped to the behavior on error\n _decoded.calls[i].behaviorOnError = (flags & 0xC0) >> 6;\n }\n }\n\n function hashCall(\n Call memory c\n ) internal pure returns (bytes32) {\n return keccak256(\n abi.encode(\n CALL_TYPEHASH, c.to, c.value, keccak256(c.data), c.gasLimit, c.delegateCall, c.onlyFallback, c.behaviorOnError\n )\n );\n }\n\n function hashCalls(\n Call[] memory calls\n ) internal pure returns (bytes32) {\n // In EIP712, an array is often hashed as the keccak256 of the concatenated\n // hashes of each item. So we hash each Call, pack them, and hash again.\n bytes32[] memory callHashes = new bytes32[](calls.length);\n for (uint256 i = 0; i < calls.length; i++) {\n callHashes[i] = hashCall(calls[i]);\n }\n return keccak256(abi.encodePacked(callHashes));\n }\n\n function toEIP712(\n Decoded memory _decoded\n ) internal pure returns (bytes32) {\n bytes32 walletsHash = keccak256(abi.encodePacked(_decoded.parentWallets));\n\n if (_decoded.kind == KIND_TRANSACTIONS) {\n bytes32 callsHash = hashCalls(_decoded.calls);\n // The top-level struct for Calls might be something like:\n // Calls(bytes32 callsHash,uint256 space,uint256 nonce,bytes32 walletsHash)\n return keccak256(abi.encode(CALLS_TYPEHASH, callsHash, _decoded.space, _decoded.nonce, walletsHash));\n } else if (_decoded.kind == KIND_MESSAGE) {\n // If you define your top-level as: Message(bytes32 messageHash,bytes32 walletsHash)\n return keccak256(abi.encode(MESSAGE_TYPEHASH, keccak256(_decoded.message), walletsHash));\n } else if (_decoded.kind == KIND_CONFIG_UPDATE) {\n // Top-level: ConfigUpdate(bytes32 imageHash,bytes32 walletsHash)\n return keccak256(abi.encode(CONFIG_UPDATE_TYPEHASH, _decoded.imageHash, walletsHash));\n } else if (_decoded.kind == KIND_DIGEST) {\n // Top-level: Use MESSAGE_TYPEHASH but assume the digest is already the hashed message\n return keccak256(abi.encode(MESSAGE_TYPEHASH, _decoded.digest, walletsHash));\n } else {\n // Unknown kind\n revert InvalidKind(_decoded.kind);\n }\n }\n\n function hash(\n Decoded memory _decoded\n ) internal view returns (bytes32) {\n bytes32 domain = domainSeparator(_decoded.noChainId, address(this));\n bytes32 structHash = toEIP712(_decoded);\n return keccak256(abi.encodePacked(\"\\x19\\x01\", domain, structHash));\n }\n\n function hashFor(Decoded memory _decoded, address _wallet) internal view returns (bytes32) {\n bytes32 domain = domainSeparator(_decoded.noChainId, _wallet);\n bytes32 structHash = toEIP712(_decoded);\n return keccak256(abi.encodePacked(\"\\x19\\x01\", domain, structHash));\n }\n\n}\n"},"lib/wallet-contracts-v3/src/modules/interfaces/ISapient.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.27;\n\nimport { Payload } from \"../Payload.sol\";\n\n/// @title ISapient\n/// @author Agustin Aguilar, Michael Standen\n/// @notice Sapient signers take an explicit payload and return their own \"imageHash\" as result\n/// @dev The consumer of this signer must validate if the imageHash is valid or not, for the desired configuration\ninterface ISapient {\n\n /// @notice Recovers the image hash of a given signature\n /// @param payload The payload to recover the signature from\n /// @param signature The signature to recover the image hash from\n /// @return imageHash The recovered image hash\n function recoverSapientSignature(\n Payload.Decoded calldata payload,\n bytes calldata signature\n ) external view returns (bytes32 imageHash);\n\n}\n\n/// @title ISapientCompact\n/// @author Agustin Aguilar, Michael Standen\n/// @notice Sapient signers take a compacted payload and return their own \"imageHash\" as result\n/// @dev The consumer of this signer must validate if the imageHash is valid or not, for the desired configuration\ninterface ISapientCompact {\n\n /// @notice Recovers the image hash of a given signature, using a hashed payload\n /// @param digest The digest of the payload\n /// @param signature The signature to recover the image hash from\n /// @return imageHash The recovered image hash\n function recoverSapientSignatureCompact(\n bytes32 digest,\n bytes calldata signature\n ) external view returns (bytes32 imageHash);\n\n}\n"},"lib/wallet-contracts-v3/src/utils/LibBytes.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.18;\n\n/// @title Library for reading data from bytes arrays\n/// @author Agustin Aguilar (aa@horizon.io), Michael Standen (mstan@horizon.io)\n/// @notice This library contains functions for reading data from bytes arrays.\n/// @dev These functions do not check if the input index is within the bounds of the data array.\n/// @dev Reading out of bounds may return dirty values.\nlibrary LibBytes {\n\n function readFirstUint8(\n bytes calldata _data\n ) internal pure returns (uint8 a, uint256 newPointer) {\n assembly {\n let word := calldataload(_data.offset)\n a := shr(248, word)\n newPointer := 1\n }\n }\n\n function readUint8(bytes calldata _data, uint256 _index) internal pure returns (uint8 a, uint256 newPointer) {\n assembly {\n let word := calldataload(add(_index, _data.offset))\n a := shr(248, word)\n newPointer := add(_index, 1)\n }\n }\n\n function readUint16(bytes calldata _data, uint256 _index) internal pure returns (uint16 a, uint256 newPointer) {\n assembly {\n let word := calldataload(add(_index, _data.offset))\n a := shr(240, word)\n newPointer := add(_index, 2)\n }\n }\n\n function readUint24(bytes calldata _data, uint256 _index) internal pure returns (uint24 a, uint256 newPointer) {\n assembly {\n let word := calldataload(add(_index, _data.offset))\n a := shr(232, word)\n newPointer := add(_index, 3)\n }\n }\n\n function readUint64(bytes calldata _data, uint256 _index) internal pure returns (uint64 a, uint256 newPointer) {\n assembly {\n let word := calldataload(add(_index, _data.offset))\n a := shr(192, word)\n newPointer := add(_index, 8)\n }\n }\n\n function readUint160(bytes calldata _data, uint256 _index) internal pure returns (uint160 a, uint256 newPointer) {\n assembly {\n let word := calldataload(add(_index, _data.offset))\n a := shr(96, word)\n newPointer := add(_index, 20)\n }\n }\n\n function readUint256(bytes calldata _data, uint256 _index) internal pure returns (uint256 a, uint256 newPointer) {\n assembly {\n a := calldataload(add(_index, _data.offset))\n newPointer := add(_index, 32)\n }\n }\n\n function readUintX(\n bytes calldata _data,\n uint256 _index,\n uint256 _length\n ) internal pure returns (uint256 a, uint256 newPointer) {\n assembly {\n let word := calldataload(add(_index, _data.offset))\n let shift := sub(256, mul(_length, 8))\n a := and(shr(shift, word), sub(shl(mul(8, _length), 1), 1))\n newPointer := add(_index, _length)\n }\n }\n\n function readBytes4(bytes calldata _data, uint256 _pointer) internal pure returns (bytes4 a, uint256 newPointer) {\n assembly {\n let word := calldataload(add(_pointer, _data.offset))\n a := and(word, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n newPointer := add(_pointer, 4)\n }\n }\n\n function readBytes32(bytes calldata _data, uint256 _pointer) internal pure returns (bytes32 a, uint256 newPointer) {\n assembly {\n a := calldataload(add(_pointer, _data.offset))\n newPointer := add(_pointer, 32)\n }\n }\n\n function readAddress(bytes calldata _data, uint256 _index) internal pure returns (address a, uint256 newPointer) {\n assembly {\n let word := calldataload(add(_index, _data.offset))\n a := and(shr(96, word), 0xffffffffffffffffffffffffffffffffffffffff)\n newPointer := add(_index, 20)\n }\n }\n\n /// @dev ERC-2098 Compact Signature\n function readRSVCompact(\n bytes calldata _data,\n uint256 _index\n ) internal pure returns (bytes32 r, bytes32 s, uint8 v, uint256 newPointer) {\n uint256 yParityAndS;\n assembly {\n r := calldataload(add(_index, _data.offset))\n yParityAndS := calldataload(add(_index, add(_data.offset, 32)))\n newPointer := add(_index, 64)\n }\n uint256 yParity = uint256(yParityAndS >> 255);\n s = bytes32(uint256(yParityAndS) & ((1 << 255) - 1));\n v = uint8(yParity) + 27;\n }\n\n}\n"},"src/autoRecovery/Allowlist.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.27;\n\nimport {Ownable} from \"@openzeppelin/contracts/access/Ownable.sol\";\n\n/// @title Allowlist\n/// @notice Owner-managed set of addresses allowed to authorize timed refund batches.\ncontract Allowlist is Ownable {\n /// @notice A zero address was provided where a signer address is required.\n error ZeroAddress();\n /// @notice The address is already present in the allowlist.\n error AlreadyAllowed(address addr);\n /// @notice The address is not present in the allowlist.\n error NotAllowed(address addr);\n /// @notice The provided index hint does not point at the expected address.\n error IndexMismatch(uint256 index, address expected, address actual);\n\n mapping(address => bool) private _allowed;\n address[] private _entries;\n\n /// @notice Emitted when an address is added to the allowlist.\n event AddressAdded(address indexed addr);\n /// @notice Emitted when an address is removed from the allowlist.\n event AddressRemoved(address indexed addr);\n\n /// @notice Initializes the allowlist owner and optional initial entries.\n /// @param owner_ The account allowed to mutate the allowlist.\n /// @param initial The initial addresses to mark as allowed.\n constructor(address owner_, address[] memory initial) Ownable(owner_) {\n for (uint256 i; i < initial.length; i++) {\n _add(initial[i]);\n }\n }\n\n /// @notice Adds `addr` to the allowlist.\n /// @param addr The address to add.\n function add(address addr) external onlyOwner {\n _add(addr);\n }\n\n /// @notice Adds each address in `addrs` to the allowlist.\n /// @param addrs The addresses to add.\n function add(address[] calldata addrs) external onlyOwner {\n for (uint256 i; i < addrs.length; i++) {\n _add(addrs[i]);\n }\n }\n\n /// @notice Removes `addr` from the allowlist.\n /// @param addr The address to remove.\n /// @param index Optional index hint into `getAllowed()`. Pass `0` to use search mode.\n /// @dev Removal uses swap-and-pop, so `getAllowed()` ordering is not stable.\n function remove(address addr, uint256 index) external onlyOwner {\n _remove(addr, index);\n }\n\n /// @notice Removes each address in `addrs` from the allowlist using search mode.\n /// @param addrs The addresses to remove.\n /// @dev Removal uses swap-and-pop, so `getAllowed()` ordering is not stable.\n function remove(address[] calldata addrs) external onlyOwner {\n for (uint256 i; i < addrs.length; i++) {\n _remove(addrs[i], 0);\n }\n }\n\n /// @notice Returns whether `addr` is currently allowed.\n function isAllowed(address addr) external view returns (bool) {\n return _allowed[addr];\n }\n\n /// @notice Returns the current allowlist entries in storage order.\n /// @dev Ordering is not stable because removals use swap-and-pop.\n function getAllowed() external view returns (address[] memory) {\n return _entries;\n }\n\n function _add(address addr) private {\n if (addr == address(0)) revert ZeroAddress();\n if (_allowed[addr]) revert AlreadyAllowed(addr);\n\n _allowed[addr] = true;\n _entries.push(addr);\n\n emit AddressAdded(addr);\n }\n\n function _remove(address addr, uint256 index) private {\n if (!_allowed[addr]) revert NotAllowed(addr);\n _allowed[addr] = false;\n\n if (index != 0) {\n if (_entries[index] != addr) revert IndexMismatch(index, addr, _entries[index]);\n _entries[index] = _entries[_entries.length - 1];\n _entries.pop();\n } else {\n uint256 len = _entries.length;\n for (uint256 i; i < len; i++) {\n if (_entries[i] == addr) {\n _entries[i] = _entries[len - 1];\n _entries.pop();\n break;\n }\n }\n }\n\n emit AddressRemoved(addr);\n }\n}\n"},"src/autoRecovery/TimedRefundSapient.sol":{"content":"// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.27;\n\nimport {IERC20} from \"openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\";\nimport {ISapient} from \"wallet-contracts-v3/modules/interfaces/ISapient.sol\";\nimport {Payload} from \"wallet-contracts-v3/modules/Payload.sol\";\nimport {IERC20Metadata} from \"openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\";\nimport {Allowlist} from \"./Allowlist.sol\";\n\n/// @title TimedRefundSapient\n/// @notice Sapient signer that authorizes time-locked refund batches to a fixed destination.\n/// @dev The returned image hash commits to `(destination, unlockTimestamp)` and only approves\n/// plain native transfers or ERC20 `transfer(address,uint256)` calls to that destination.\ncontract TimedRefundSapient is ISapient {\n /// @notice Dedicated nonce space for timed refund payloads.\n /// @dev uint160(uint256(keccak256(\"trails.timed-refund.nonce-space\")) | (uint256(1) << 159))\n uint256 public constant TIMED_REFUND_NONCE_SPACE = uint256(uint160(0xeF25450978071B7bD3a1aFE58C4484c84B31FaF8));\n\n bytes4 private constant ERC20_TRANSFER_SELECTOR = IERC20.transfer.selector;\n uint256 private constant COMPACT_SIGNATURE_LENGTH = 64;\n\n /// @notice Allowlist of signers permitted to authorize timed refund batches.\n Allowlist public immutable allowlist;\n\n /// @notice The payload contains a call outside the approved transfer-only surface.\n error UnauthorizedTransaction(uint256 index);\n /// @notice The recovered signer is not currently allowlisted.\n error SignerNotAllowed(address signer);\n /// @notice The unlock timestamp has not been reached yet.\n error UnlockTimestampNotReached(uint256 unlockTimestamp, uint256 timestamp);\n /// @notice The sapient signer only supports transaction payloads.\n error InvalidPayloadKind(uint8 kind);\n /// @notice The payload used a nonce space outside the dedicated timed refund lane.\n error InvalidNonceSpace(uint256 space, uint256 expected);\n /// @notice The compact approval signature has an unexpected length.\n error InvalidApprovalSignatureLength(uint256 length);\n /// @notice The compact approval signature did not recover a signer.\n error InvalidRecoveredSigner();\n /// @notice A call used an unsupported `behaviorOnError` mode.\n error InvalidBehaviorOnError(uint256 index, uint256 behaviorOnError);\n /// @notice Delegate calls are not allowed in timed refund payloads.\n error DelegateCallNotAllowed(uint256 index);\n /// @notice Fallback-only calls are not allowed in timed refund payloads.\n error OnlyFallbackNotAllowed(uint256 index);\n /// @notice Per-call gas limits are not allowed in timed refund payloads.\n error GasLimitNotZero(uint256 index, uint256 gasLimit);\n /// @notice Native transfers must not include calldata.\n error NativeTransferDataNotEmpty(uint256 index, uint256 dataLength);\n\n /// @notice Initializes the sapient signer with its signer allowlist.\n /// @param allowlist_ The owner-managed allowlist of refund authorizers.\n constructor(Allowlist allowlist_) {\n allowlist = allowlist_;\n }\n\n function _rootForTimedRefund(address destination, uint256 unlockTimestamp) internal pure returns (bytes32) {\n return keccak256(abi.encode(\"timed-refund\", destination, unlockTimestamp));\n }\n\n function _recoverCompactSigner(bytes32 hash, bytes memory signature) internal pure returns (address) {\n bytes32 r;\n bytes32 s;\n uint8 v;\n\n assembly {\n r := mload(add(signature, 0x20))\n let yParityAndS := mload(add(signature, 0x40))\n v := add(shr(255, yParityAndS), 27)\n s := and(yParityAndS, sub(shl(255, 1), 1))\n }\n\n return ecrecover(hash, v, r, s);\n }\n\n /// @notice Returns whether `token` responds to the ERC20 metadata probes.\n /// @dev This is a lightweight heuristic used to distinguish token-like transfers from native transfers.\n function hasERC20Metadata(address token) public view returns (bool) {\n return _hasNonEmptyResponse(token, abi.encodeCall(IERC20Metadata.name, ()))\n && _hasNonEmptyResponse(token, abi.encodeCall(IERC20Metadata.symbol, ()));\n }\n\n function _hasNonEmptyResponse(address target, bytes memory callData) private view returns (bool) {\n (bool success, bytes memory returndata) = target.staticcall(callData);\n return success && returndata.length != 0;\n }\n\n /// @inheritdoc ISapient\n /// @dev `signature` is ABI-encoded as `(address destination, uint256 unlockTimestamp, bytes compactSignature)`.\n function recoverSapientSignature(Payload.Decoded calldata payload, bytes calldata signature)\n external\n view\n returns (bytes32 imageHash)\n {\n (address destination, uint256 unlockTimestamp, bytes memory approvalSignature) =\n abi.decode(signature, (address, uint256, bytes));\n if (approvalSignature.length != COMPACT_SIGNATURE_LENGTH) {\n revert InvalidApprovalSignatureLength(approvalSignature.length);\n }\n\n if (payload.kind != Payload.KIND_TRANSACTIONS) revert InvalidPayloadKind(payload.kind);\n if (payload.space != TIMED_REFUND_NONCE_SPACE) {\n revert InvalidNonceSpace(payload.space, TIMED_REFUND_NONCE_SPACE);\n }\n\n address signer = _recoverCompactSigner(Payload.hashFor(payload, msg.sender), approvalSignature);\n if (signer == address(0)) revert InvalidRecoveredSigner();\n if (!allowlist.isAllowed(signer)) revert SignerNotAllowed(signer);\n if (block.timestamp < unlockTimestamp) revert UnlockTimestampNotReached(unlockTimestamp, block.timestamp);\n\n // Restrict the approved surface to direct transfers into `destination`.\n for (uint256 i = 0; i < payload.calls.length; i++) {\n Payload.Call calldata call = payload.calls[i];\n if (call.behaviorOnError != Payload.BEHAVIOR_REVERT_ON_ERROR) {\n revert InvalidBehaviorOnError(i, call.behaviorOnError);\n }\n if (call.delegateCall) revert DelegateCallNotAllowed(i);\n if (call.onlyFallback) revert OnlyFallbackNotAllowed(i);\n if (call.gasLimit != 0) revert GasLimitNotZero(i, call.gasLimit);\n\n bytes calldata data = call.data;\n\n if (call.value == 0) {\n if (!hasERC20Metadata(call.to)) revert UnauthorizedTransaction(i);\n // ERC20 transfer(address,uint256) to `destination`.\n if (data.length != 68) revert UnauthorizedTransaction(i);\n if (bytes4(data[:4]) != ERC20_TRANSFER_SELECTOR) revert UnauthorizedTransaction(i);\n if (bytes32(data[4:36]) != bytes32(uint256(uint160(destination)))) revert UnauthorizedTransaction(i);\n } else {\n // Native transfer to `destination`.\n if (call.to != destination) revert UnauthorizedTransaction(i);\n if (data.length != 0) revert NativeTransferDataNotEmpty(i, data.length);\n }\n }\n\n return _rootForTimedRefund(destination, unlockTimestamp);\n }\n}\n"}},"settings":{"remappings":["wallet-contracts-v3/=lib/wallet-contracts-v3/src/","wallet-contracts-v3-external/=../wallet-contracts-v3/src/","trails-test/=test/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","account-abstraction/=lib/wallet-contracts-v3/lib/account-abstraction/contracts/","erc2470-libs/=lib/wallet-contracts-v3/lib/erc2470-libs/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/wallet-contracts-v3/lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":4294967295},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"":["ast"],"*":["abi","evm.bytecode.object","evm.bytecode.sourceMap","evm.bytecode.linkReferences","evm.deployedBytecode.object","evm.deployedBytecode.sourceMap","evm.deployedBytecode.linkReferences","evm.deployedBytecode.immutableReferences","evm.methodIdentifiers","metadata"]},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"":["ast"],"*":["abi","evm.bytecode.object","evm.bytecode.sourceMap","evm.bytecode.linkReferences","evm.deployedBytecode.object","evm.deployedBytecode.sourceMap","evm.deployedBytecode.linkReferences","evm.deployedBytecode.immutableReferences","evm.methodIdentifiers","metadata"]},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"":["ast"],"*":["abi","evm.bytecode.object","evm.bytecode.sourceMap","evm.bytecode.linkReferences","evm.deployedBytecode.object","evm.deployedBytecode.sourceMap","evm.deployedBytecode.linkReferences","evm.deployedBytecode.immutableReferences","evm.methodIdentifiers","metadata"]},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"":["ast"],"*":["abi","evm.bytecode.object","evm.bytecode.sourceMap","evm.bytecode.linkReferences","evm.deployedBytecode.object","evm.deployedBytecode.sourceMap","evm.deployedBytecode.linkReferences","evm.deployedBytecode.immutableReferences","evm.methodIdentifiers","metadata"]},"lib/wallet-contracts-v3/src/modules/Payload.sol":{"":["ast"],"*":["abi","evm.bytecode.object","evm.bytecode.sourceMap","evm.bytecode.linkReferences","evm.deployedBytecode.object","evm.deployedBytecode.sourceMap","evm.deployedBytecode.linkReferences","evm.deployedBytecode.immutableReferences","evm.methodIdentifiers","metadata"]},"lib/wallet-contracts-v3/src/modules/interfaces/ISapient.sol":{"":["ast"],"*":["abi","evm.bytecode.object","evm.bytecode.sourceMap","evm.bytecode.linkReferences","evm.deployedBytecode.object","evm.deployedBytecode.sourceMap","evm.deployedBytecode.linkReferences","evm.deployedBytecode.immutableReferences","evm.methodIdentifiers","metadata"]},"lib/wallet-contracts-v3/src/utils/LibBytes.sol":{"":["ast"],"*":["abi","evm.bytecode.object","evm.bytecode.sourceMap","evm.bytecode.linkReferences","evm.deployedBytecode.object","evm.deployedBytecode.sourceMap","evm.deployedBytecode.linkReferences","evm.deployedBytecode.immutableReferences","evm.methodIdentifiers","metadata"]},"src/autoRecovery/Allowlist.sol":{"":["ast"],"*":["abi","evm.bytecode.object","evm.bytecode.sourceMap","evm.bytecode.linkReferences","evm.deployedBytecode.object","evm.deployedBytecode.sourceMap","evm.deployedBytecode.linkReferences","evm.deployedBytecode.immutableReferences","evm.methodIdentifiers","metadata"]},"src/autoRecovery/TimedRefundSapient.sol":{"":["ast"],"*":["abi","evm.bytecode.object","evm.bytecode.sourceMap","evm.bytecode.linkReferences","evm.deployedBytecode.object","evm.deployedBytecode.sourceMap","evm.deployedBytecode.linkReferences","evm.deployedBytecode.immutableReferences","evm.methodIdentifiers","metadata"]}},"evmVersion":"prague","viaIR":true,"libraries":{}},"allowPaths":["/home/agus/workspaces/trails/trails-contracts","/home/agus/workspaces/trails/trails-contracts/lib"],"basePath":"/home/agus/workspaces/trails/trails-contracts","includePaths":["/home/agus/workspaces/trails/trails-contracts"]},"output":{"contracts":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"Ownable":{"abi":[{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"metadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. The initial owner is set to the address provided by the deployer. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the address provided by the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":4294967295},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":account-abstraction/=lib/wallet-contracts-v3/lib/account-abstraction/contracts/\",\":erc2470-libs/=lib/wallet-contracts-v3/lib/erc2470-libs/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/wallet-contracts-v3/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":trails-test/=test/\",\":wallet-contracts-v3-external/=../wallet-contracts-v3/src/\",\":wallet-contracts-v3/=lib/wallet-contracts-v3/src/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","userdoc":{},"devdoc":{},"evm":{"bytecode":{"object":"","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}}}},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"IERC20":{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"metadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-20 standard as defined in the ERC.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":4294967295},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":account-abstraction/=lib/wallet-contracts-v3/lib/account-abstraction/contracts/\",\":erc2470-libs/=lib/wallet-contracts-v3/lib/erc2470-libs/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/wallet-contracts-v3/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":trails-test/=test/\",\":wallet-contracts-v3-external/=../wallet-contracts-v3/src/\",\":wallet-contracts-v3/=lib/wallet-contracts-v3/src/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]}},\"version\":1}","userdoc":{},"devdoc":{},"evm":{"bytecode":{"object":"","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}}}},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"IERC20Metadata":{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"metadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC-20 standard.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":4294967295},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":account-abstraction/=lib/wallet-contracts-v3/lib/account-abstraction/contracts/\",\":erc2470-libs/=lib/wallet-contracts-v3/lib/erc2470-libs/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/wallet-contracts-v3/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":trails-test/=test/\",\":wallet-contracts-v3-external/=../wallet-contracts-v3/src/\",\":wallet-contracts-v3/=lib/wallet-contracts-v3/src/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]}},\"version\":1}","userdoc":{},"devdoc":{},"evm":{"bytecode":{"object":"","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}}}},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"Context":{"abi":[],"metadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":4294967295},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":account-abstraction/=lib/wallet-contracts-v3/lib/account-abstraction/contracts/\",\":erc2470-libs/=lib/wallet-contracts-v3/lib/erc2470-libs/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/wallet-contracts-v3/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":trails-test/=test/\",\":wallet-contracts-v3-external/=../wallet-contracts-v3/src/\",\":wallet-contracts-v3/=lib/wallet-contracts-v3/src/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","userdoc":{},"devdoc":{},"evm":{"bytecode":{"object":"","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"","sourceMap":"","linkReferences":{}}}}},"lib/wallet-contracts-v3/src/modules/Payload.sol":{"Payload":{"abi":[{"type":"function","name":"BEHAVIOR_ABORT_ON_ERROR","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"BEHAVIOR_IGNORE_ERROR","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"BEHAVIOR_REVERT_ON_ERROR","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"KIND_CONFIG_UPDATE","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"KIND_DIGEST","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"KIND_MESSAGE","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"KIND_TRANSACTIONS","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"error","name":"InvalidKind","inputs":[{"name":"kind","type":"uint8","internalType":"uint8"}]}],"metadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"}],\"name\":\"InvalidKind\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BEHAVIOR_ABORT_ON_ERROR\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BEHAVIOR_IGNORE_ERROR\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BEHAVIOR_REVERT_ON_ERROR\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"KIND_CONFIG_UPDATE\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"KIND_DIGEST\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"KIND_MESSAGE\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"KIND_TRANSACTIONS\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Agustin Aguilar, Michael Standen, William Hua\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"CALLS_TYPEHASH\":{\"details\":\"keccak256(\\\"Calls(Call[] calls,uint256 space,uint256 nonce,address[] wallets)Call(address to,uint256 value,bytes data,uint256 gasLimit,bool delegateCall,bool onlyFallback,uint256 behaviorOnError)\\\")\"},\"CALL_TYPEHASH\":{\"details\":\"keccak256(\\\"Call(address to,uint256 value,bytes data,uint256 gasLimit,bool delegateCall,bool onlyFallback,uint256 behaviorOnError)\\\")\"},\"CONFIG_UPDATE_TYPEHASH\":{\"details\":\"keccak256(\\\"ConfigUpdate(bytes32 imageHash,address[] wallets)\\\")\"},\"EIP712_DOMAIN_NAME_SEQUENCE\":{\"details\":\"keccak256(\\\"Sequence Wallet\\\")\"},\"EIP712_DOMAIN_TYPEHASH\":{\"details\":\"keccak256(\\\"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\\\")\"},\"EIP712_DOMAIN_VERSION_SEQUENCE\":{\"details\":\"keccak256(\\\"3\\\")\"},\"MESSAGE_TYPEHASH\":{\"details\":\"keccak256(\\\"Message(bytes message,address[] wallets)\\\")\"}},\"title\":\"Payload\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidKind(uint8)\":[{\"notice\":\"Error thrown when the kind is invalid\"}]},\"kind\":\"user\",\"methods\":{\"BEHAVIOR_ABORT_ON_ERROR()\":{\"notice\":\"Behavior on error: abort on error\"},\"BEHAVIOR_IGNORE_ERROR()\":{\"notice\":\"Behavior on error: ignore error\"},\"BEHAVIOR_REVERT_ON_ERROR()\":{\"notice\":\"Behavior on error: revert on error\"},\"KIND_CONFIG_UPDATE()\":{\"notice\":\"Kind of config update\"},\"KIND_DIGEST()\":{\"notice\":\"Kind of message\"},\"KIND_MESSAGE()\":{\"notice\":\"Kind of digest\"},\"KIND_TRANSACTIONS()\":{\"notice\":\"Kind of transaction\"}},\"notice\":\"Library for encoding and decoding payloads\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/wallet-contracts-v3/src/modules/Payload.sol\":\"Payload\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":4294967295},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":account-abstraction/=lib/wallet-contracts-v3/lib/account-abstraction/contracts/\",\":erc2470-libs/=lib/wallet-contracts-v3/lib/erc2470-libs/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/wallet-contracts-v3/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":trails-test/=test/\",\":wallet-contracts-v3-external/=../wallet-contracts-v3/src/\",\":wallet-contracts-v3/=lib/wallet-contracts-v3/src/\"],\"viaIR\":true},\"sources\":{\"lib/wallet-contracts-v3/src/modules/Payload.sol\":{\"keccak256\":\"0x03b3dc2a4a556d3007671e910813dc4703ecb16f5bc2c6645e4c0d8512f2d76a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9b41263156d5a310a48038e8c3871e9acdb806c018bc952d1a56efed62954e17\",\"dweb:/ipfs/QmaiuTbQgaiCvtN2V6roe4RTi6hHV85mNZpWKqvKA8ofqw\"]},\"lib/wallet-contracts-v3/src/utils/LibBytes.sol\":{\"keccak256\":\"0x4fe0b4786b2157e12384b90ae9daa1009b74b2547a8a24b800a8b998278c874b\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://065129e32d1a318e89fb7587e136c33177a7848393f9055c0ac601b84741cd8c\",\"dweb:/ipfs/QmVWucfHSHRJriRFNoJqoeDcVB4fDfqbccM8KPBmwcxVu3\"]}},\"version\":1}","userdoc":{},"devdoc":{},"evm":{"bytecode":{"object":"60808060405234601957610179908161001e823930815050f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c80630739d59a146100a8578063075a3d2d146100a35780633d5c1f9b1461009e578063420b0c25146100a85780634a7d2aa0146100a35780634e5f57151461009e5763b570180a14610066575f80fd5b5f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261009a57602060405160038152f35b5f80fd5b61010f565b6100dc565b5f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261009a57602060405160028152f35b5f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261009a5760206040515f8152f35b5f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261009a57602060405160018152f3fea2646970667358221220982941f4e96229aba529b150bc68867a58bdd24951d29b9e58b0da276db5512164736f6c634300081e0033","sourceMap":"275:9818:4:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"60806040526004361015610011575f80fd5b5f3560e01c80630739d59a146100a8578063075a3d2d146100a35780633d5c1f9b1461009e578063420b0c25146100a85780634a7d2aa0146100a35780634e5f57151461009e5763b570180a14610066575f80fd5b5f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261009a57602060405160038152f35b5f80fd5b61010f565b6100dc565b5f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261009a57602060405160028152f35b5f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261009a5760206040515f8152f35b5f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261009a57602060405160018152f3fea2646970667358221220982941f4e96229aba529b150bc68867a58bdd24951d29b9e58b0da276db5512164736f6c634300081e0033","sourceMap":"275:9818:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2556:4;275:9818;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;2482:4;275:9818;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2395:4;275:9818;;","linkReferences":{}},"methodIdentifiers":{"BEHAVIOR_ABORT_ON_ERROR()":"420b0c25","BEHAVIOR_IGNORE_ERROR()":"4a7d2aa0","BEHAVIOR_REVERT_ON_ERROR()":"4e5f5715","KIND_CONFIG_UPDATE()":"0739d59a","KIND_DIGEST()":"b570180a","KIND_MESSAGE()":"3d5c1f9b","KIND_TRANSACTIONS()":"075a3d2d"}}}},"lib/wallet-contracts-v3/src/modules/interfaces/ISapient.sol":{"ISapient":{"abi":[{"type":"function","name":"recoverSapientSignature","inputs":[{"name":"payload","type":"tuple","internalType":"struct Payload.Decoded","components":[{"name":"kind","type":"uint8","internalType":"uint8"},{"name":"noChainId","type":"bool","internalType":"bool"},{"name":"calls","type":"tuple[]","internalType":"struct Payload.Call[]","components":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"gasLimit","type":"uint256","internalType":"uint256"},{"name":"delegateCall","type":"bool","internalType":"bool"},{"name":"onlyFallback","type":"bool","internalType":"bool"},{"name":"behaviorOnError","type":"uint256","internalType":"uint256"}]},{"name":"space","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"message","type":"bytes","internalType":"bytes"},{"name":"imageHash","type":"bytes32","internalType":"bytes32"},{"name":"digest","type":"bytes32","internalType":"bytes32"},{"name":"parentWallets","type":"address[]","internalType":"address[]"}]},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"imageHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"}],"metadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"noChainId\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"delegateCall\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"onlyFallback\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"behaviorOnError\",\"type\":\"uint256\"}],\"internalType\":\"struct Payload.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"space\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"imageHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"parentWallets\",\"type\":\"address[]\"}],\"internalType\":\"struct Payload.Decoded\",\"name\":\"payload\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"recoverSapientSignature\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"imageHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Agustin Aguilar, Michael Standen\",\"details\":\"The consumer of this signer must validate if the imageHash is valid or not, for the desired configuration\",\"kind\":\"dev\",\"methods\":{\"recoverSapientSignature((uint8,bool,(address,uint256,bytes,uint256,bool,bool,uint256)[],uint256,uint256,bytes,bytes32,bytes32,address[]),bytes)\":{\"params\":{\"payload\":\"The payload to recover the signature from\",\"signature\":\"The signature to recover the image hash from\"},\"returns\":{\"imageHash\":\"The recovered image hash\"}}},\"title\":\"ISapient\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"recoverSapientSignature((uint8,bool,(address,uint256,bytes,uint256,bool,bool,uint256)[],uint256,uint256,bytes,bytes32,bytes32,address[]),bytes)\":{\"notice\":\"Recovers the image hash of a given signature\"}},\"notice\":\"Sapient signers take an explicit payload and return their own \\\"imageHash\\\" as result\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/wallet-contracts-v3/src/modules/interfaces/ISapient.sol\":\"ISapient\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":4294967295},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":account-abstraction/=lib/wallet-contracts-v3/lib/account-abstraction/contracts/\",\":erc2470-libs/=lib/wallet-contracts-v3/lib/erc2470-libs/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/wallet-contracts-v3/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":trails-test/=test/\",\":wallet-contracts-v3-external/=../wallet-contracts-v3/src/\",\":wallet-contracts-v3/=lib/wallet-contracts-v3/src/\"],\"viaIR\":true},\"sources\":{\"lib/wallet-contracts-v3/src/modules/Payload.sol\":{\"keccak256\":\"0x03b3dc2a4a556d3007671e910813dc4703ecb16f5bc2c6645e4c0d8512f2d76a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9b41263156d5a310a48038e8c3871e9acdb806c018bc952d1a56efed62954e17\",\"dweb:/ipfs/QmaiuTbQgaiCvtN2V6roe4RTi6hHV85mNZpWKqvKA8ofqw\"]},\"lib/wallet-contracts-v3/src/modules/interfaces/ISapient.sol\":{\"keccak256\":\"0x3668daa83a61af054146345e53e571daf403f9bca9c3cc702f6f1cb655770359\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://13aa453c7021c83d305ac7d714a93f78a03a8cc0032cb06cf54d5ebf09100489\",\"dweb:/ipfs/QmSxar3KETtMzHXQuqQA9b8iK8cG3Z62EpWSeu8hhKW2xn\"]},\"lib/wallet-contracts-v3/src/utils/LibBytes.sol\":{\"keccak256\":\"0x4fe0b4786b2157e12384b90ae9daa1009b74b2547a8a24b800a8b998278c874b\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://065129e32d1a318e89fb7587e136c33177a7848393f9055c0ac601b84741cd8c\",\"dweb:/ipfs/QmVWucfHSHRJriRFNoJqoeDcVB4fDfqbccM8KPBmwcxVu3\"]}},\"version\":1}","userdoc":{},"devdoc":{},"evm":{"bytecode":{"object":"","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"recoverSapientSignature((uint8,bool,(address,uint256,bytes,uint256,bool,bool,uint256)[],uint256,uint256,bytes,bytes32,bytes32,address[]),bytes)":"13792a4a"}}},"ISapientCompact":{"abi":[{"type":"function","name":"recoverSapientSignatureCompact","inputs":[{"name":"digest","type":"bytes32","internalType":"bytes32"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"imageHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"}],"metadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"recoverSapientSignatureCompact\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"imageHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Agustin Aguilar, Michael Standen\",\"details\":\"The consumer of this signer must validate if the imageHash is valid or not, for the desired configuration\",\"kind\":\"dev\",\"methods\":{\"recoverSapientSignatureCompact(bytes32,bytes)\":{\"params\":{\"digest\":\"The digest of the payload\",\"signature\":\"The signature to recover the image hash from\"},\"returns\":{\"imageHash\":\"The recovered image hash\"}}},\"title\":\"ISapientCompact\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"recoverSapientSignatureCompact(bytes32,bytes)\":{\"notice\":\"Recovers the image hash of a given signature, using a hashed payload\"}},\"notice\":\"Sapient signers take a compacted payload and return their own \\\"imageHash\\\" as result\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/wallet-contracts-v3/src/modules/interfaces/ISapient.sol\":\"ISapientCompact\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":4294967295},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":account-abstraction/=lib/wallet-contracts-v3/lib/account-abstraction/contracts/\",\":erc2470-libs/=lib/wallet-contracts-v3/lib/erc2470-libs/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/wallet-contracts-v3/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":trails-test/=test/\",\":wallet-contracts-v3-external/=../wallet-contracts-v3/src/\",\":wallet-contracts-v3/=lib/wallet-contracts-v3/src/\"],\"viaIR\":true},\"sources\":{\"lib/wallet-contracts-v3/src/modules/Payload.sol\":{\"keccak256\":\"0x03b3dc2a4a556d3007671e910813dc4703ecb16f5bc2c6645e4c0d8512f2d76a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9b41263156d5a310a48038e8c3871e9acdb806c018bc952d1a56efed62954e17\",\"dweb:/ipfs/QmaiuTbQgaiCvtN2V6roe4RTi6hHV85mNZpWKqvKA8ofqw\"]},\"lib/wallet-contracts-v3/src/modules/interfaces/ISapient.sol\":{\"keccak256\":\"0x3668daa83a61af054146345e53e571daf403f9bca9c3cc702f6f1cb655770359\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://13aa453c7021c83d305ac7d714a93f78a03a8cc0032cb06cf54d5ebf09100489\",\"dweb:/ipfs/QmSxar3KETtMzHXQuqQA9b8iK8cG3Z62EpWSeu8hhKW2xn\"]},\"lib/wallet-contracts-v3/src/utils/LibBytes.sol\":{\"keccak256\":\"0x4fe0b4786b2157e12384b90ae9daa1009b74b2547a8a24b800a8b998278c874b\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://065129e32d1a318e89fb7587e136c33177a7848393f9055c0ac601b84741cd8c\",\"dweb:/ipfs/QmVWucfHSHRJriRFNoJqoeDcVB4fDfqbccM8KPBmwcxVu3\"]}},\"version\":1}","userdoc":{},"devdoc":{},"evm":{"bytecode":{"object":"","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"recoverSapientSignatureCompact(bytes32,bytes)":"898bd921"}}}},"lib/wallet-contracts-v3/src/utils/LibBytes.sol":{"LibBytes":{"abi":[],"metadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Agustin Aguilar (aa@horizon.io), Michael Standen (mstan@horizon.io)\",\"details\":\"These functions do not check if the input index is within the bounds of the data array.Reading out of bounds may return dirty values.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Library for reading data from bytes arrays\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library contains functions for reading data from bytes arrays.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/wallet-contracts-v3/src/utils/LibBytes.sol\":\"LibBytes\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":4294967295},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":account-abstraction/=lib/wallet-contracts-v3/lib/account-abstraction/contracts/\",\":erc2470-libs/=lib/wallet-contracts-v3/lib/erc2470-libs/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/wallet-contracts-v3/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":trails-test/=test/\",\":wallet-contracts-v3-external/=../wallet-contracts-v3/src/\",\":wallet-contracts-v3/=lib/wallet-contracts-v3/src/\"],\"viaIR\":true},\"sources\":{\"lib/wallet-contracts-v3/src/utils/LibBytes.sol\":{\"keccak256\":\"0x4fe0b4786b2157e12384b90ae9daa1009b74b2547a8a24b800a8b998278c874b\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://065129e32d1a318e89fb7587e136c33177a7848393f9055c0ac601b84741cd8c\",\"dweb:/ipfs/QmVWucfHSHRJriRFNoJqoeDcVB4fDfqbccM8KPBmwcxVu3\"]}},\"version\":1}","userdoc":{},"devdoc":{},"evm":{"bytecode":{"object":"6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea2646970667358221220fed36de47326e502c2a58757c1b1d810c943ee40390c2be306074e417b23dc6764736f6c634300081e0033","sourceMap":"432:3576:6:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"5f80fdfea2646970667358221220fed36de47326e502c2a58757c1b1d810c943ee40390c2be306074e417b23dc6764736f6c634300081e0033","sourceMap":"432:3576:6:-:0;;","linkReferences":{}}}}},"src/autoRecovery/Allowlist.sol":{"Allowlist":{"abi":[{"type":"constructor","inputs":[{"name":"owner_","type":"address","internalType":"address"},{"name":"initial","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"add","inputs":[{"name":"addr","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"add","inputs":[{"name":"addrs","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getAllowed","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"isAllowed","inputs":[{"name":"addr","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"remove","inputs":[{"name":"addrs","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"remove","inputs":[{"name":"addr","type":"address","internalType":"address"},{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AddressAdded","inputs":[{"name":"addr","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AddressRemoved","inputs":[{"name":"addr","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AlreadyAllowed","inputs":[{"name":"addr","type":"address","internalType":"address"}]},{"type":"error","name":"IndexMismatch","inputs":[{"name":"index","type":"uint256","internalType":"uint256"},{"name":"expected","type":"address","internalType":"address"},{"name":"actual","type":"address","internalType":"address"}]},{"type":"error","name":"NotAllowed","inputs":[{"name":"addr","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ZeroAddress","inputs":[]}],"metadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"initial\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"AlreadyAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"expected\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"actual\",\"type\":\"address\"}],\"name\":\"IndexMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"NotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"AddressAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"AddressRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"add\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"addrs\",\"type\":\"address[]\"}],\"name\":\"add\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllowed\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"isAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"addrs\",\"type\":\"address[]\"}],\"name\":\"remove\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"remove\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"add(address)\":{\"params\":{\"addr\":\"The address to add.\"}},\"add(address[])\":{\"params\":{\"addrs\":\"The addresses to add.\"}},\"constructor\":{\"params\":{\"initial\":\"The initial addresses to mark as allowed.\",\"owner_\":\"The account allowed to mutate the allowlist.\"}},\"getAllowed()\":{\"details\":\"Ordering is not stable because removals use swap-and-pop.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"remove(address,uint256)\":{\"details\":\"Removal uses swap-and-pop, so `getAllowed()` ordering is not stable.\",\"params\":{\"addr\":\"The address to remove.\",\"index\":\"Optional index hint into `getAllowed()`. Pass `0` to use search mode.\"}},\"remove(address[])\":{\"details\":\"Removal uses swap-and-pop, so `getAllowed()` ordering is not stable.\",\"params\":{\"addrs\":\"The addresses to remove.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"Allowlist\",\"version\":1},\"userdoc\":{\"errors\":{\"AlreadyAllowed(address)\":[{\"notice\":\"The address is already present in the allowlist.\"}],\"IndexMismatch(uint256,address,address)\":[{\"notice\":\"The provided index hint does not point at the expected address.\"}],\"NotAllowed(address)\":[{\"notice\":\"The address is not present in the allowlist.\"}],\"ZeroAddress()\":[{\"notice\":\"A zero address was provided where a signer address is required.\"}]},\"events\":{\"AddressAdded(address)\":{\"notice\":\"Emitted when an address is added to the allowlist.\"},\"AddressRemoved(address)\":{\"notice\":\"Emitted when an address is removed from the allowlist.\"}},\"kind\":\"user\",\"methods\":{\"add(address)\":{\"notice\":\"Adds `addr` to the allowlist.\"},\"add(address[])\":{\"notice\":\"Adds each address in `addrs` to the allowlist.\"},\"constructor\":{\"notice\":\"Initializes the allowlist owner and optional initial entries.\"},\"getAllowed()\":{\"notice\":\"Returns the current allowlist entries in storage order.\"},\"isAllowed(address)\":{\"notice\":\"Returns whether `addr` is currently allowed.\"},\"remove(address,uint256)\":{\"notice\":\"Removes `addr` from the allowlist.\"},\"remove(address[])\":{\"notice\":\"Removes each address in `addrs` from the allowlist using search mode.\"}},\"notice\":\"Owner-managed set of addresses allowed to authorize timed refund batches.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/autoRecovery/Allowlist.sol\":\"Allowlist\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":4294967295},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":account-abstraction/=lib/wallet-contracts-v3/lib/account-abstraction/contracts/\",\":erc2470-libs/=lib/wallet-contracts-v3/lib/erc2470-libs/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/wallet-contracts-v3/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":trails-test/=test/\",\":wallet-contracts-v3-external/=../wallet-contracts-v3/src/\",\":wallet-contracts-v3/=lib/wallet-contracts-v3/src/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/autoRecovery/Allowlist.sol\":{\"keccak256\":\"0x5fe668ad2a243341e01648df93908f984353bc03a85646b5bee0ee723a215a1a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0aac48b1089992ad73e70e85772314663fdede4cd06d95e4f1e644a66e144e4a\",\"dweb:/ipfs/QmdsbL4cEeVCYV7kfHu3ZariDTzGobwJaPWmgdYkG5zowB\"]}},\"version\":1}","userdoc":{},"devdoc":{},"evm":{"bytecode":{"object":"60806040523461024657610ef0803803806100198161024a565b928339810190604081830312610246576100328161026f565b602082015190916001600160401b03821161024657019180601f84011215610246578251926001600160401b0384116101d6578360051b9060208061007881850161024a565b80978152019282010192831161024657602001905b82821061022e575050506001600160a01b0316801561021b575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a35f5b815181101561020c57600581901b8201602001516001600160a01b03169081156101fd57815f52600160205260ff60405f2054166101ea57815f52600160205260405f20600160ff1982541617905560025491680100000000000000008310156101d65760018301806002558310156101c25760025f9081527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90930180546001600160a01b031916821790556001927fa226db3f664042183ee0281230bba26cbf7b5057e50aee7f25a175ff45ce4d7f9080a2016100e8565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b50630e8a494160e01b5f5260045260245ffd5b63d92e233d60e01b5f5260045ffd5b604051610c6c90816102848239f35b631e4fbdf760e01b5f525f60045260245ffd5b6020809161023b8461026f565b81520191019061008d565b5f80fd5b6040519190601f01601f191682016001600160401b038111838210176101d657604052565b51906001600160a01b03821682036102465756fe6080806040526004361015610012575f80fd5b5f3560e01c90816303fced0c146107c4575080630a3b0a4f146107805780635e4ba17c146105ec578063715018a6146105525780638da5cb5b14610502578063abe7f1ab1461021c578063babcc539146101b4578063c4c1c94f1461016f5763f2fde38b1461007f575f80fd5b3461016b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016b5773ffffffffffffffffffffffffffffffffffffffff6100cb610922565b6100d3610a15565b16801561013f5773ffffffffffffffffffffffffffffffffffffffff5f54827fffffffffffffffffffffffff00000000000000000000000000000000000000008216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b7f1e4fbdf7000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b5f80fd5b3461016b5761017d36610945565b610185610a15565b5f5b81811061019057005b806101ae6101a96101a460019486886109b7565b6109f4565b610a79565b01610187565b3461016b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016b5773ffffffffffffffffffffffffffffffffffffffff610200610922565b165f526001602052602060ff60405f2054166040519015158152f35b3461016b5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016b57610253610922565b73ffffffffffffffffffffffffffffffffffffffff60243591610274610a15565b1690815f52600160205260ff60405f205416156104d6575f82815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690558015610430578173ffffffffffffffffffffffffffffffffffffffff6102e383610a61565b90549060031b1c16036103d757600254907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82019182116103aa5761035073ffffffffffffffffffffffffffffffffffffffff61034261037c94610a61565b90549060031b1c1691610a61565b90919073ffffffffffffffffffffffffffffffffffffffff8084549260031b9316831b921b1916179055565b610384610b82565b7f24a12366c02e13fe4a9e03d86a8952e85bb74a456c16e4a18b6d8295700b74bb5f80a2005b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b9073ffffffffffffffffffffffffffffffffffffffff6103f683610a61565b90549060031b1c16917fbf2671c2000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b506002545f5b818110610445575b5050610384565b8273ffffffffffffffffffffffffffffffffffffffff61046483610a61565b90549060031b1c161461047957600101610436565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82019182116103aa5761035073ffffffffffffffffffffffffffffffffffffffff6103426104c794610a61565b6104cf610b82565b818061043e565b507ffa5cd00f000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b3461016b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016b57602073ffffffffffffffffffffffffffffffffffffffff5f5416604051908152f35b3461016b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016b57610588610a15565b5f73ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461016b576105fa36610945565b90610603610a15565b5f915b80831061060f57005b73ffffffffffffffffffffffffffffffffffffffff6106326101a48584866109b7565b1692835f52600160205260ff60405f2054161561075457835f52600160205260405f207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008154169055600254935f5b8581106106bc575b506001929394507f24a12366c02e13fe4a9e03d86a8952e85bb74a456c16e4a18b6d8295700b74bb5f80a2019190610606565b8173ffffffffffffffffffffffffffffffffffffffff6106db83610a61565b90549060031b1c16146106f057600101610681565b9293947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081116103aa5760019361035073ffffffffffffffffffffffffffffffffffffffff61034261074494610a61565b61074c610b82565b849392610689565b837ffa5cd00f000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b3461016b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016b576107c26107ba610922565b6101a9610a15565b005b3461016b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016b576002548082528160208101809260025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace905f5b8181106108f35750505003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019167ffffffffffffffff8311818410176108c65790829182604052602083019060208452518091526040830191905f5b818110610897575050500390f35b825173ffffffffffffffffffffffffffffffffffffffff16845285945060209384019390920191600101610889565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b825473ffffffffffffffffffffffffffffffffffffffff16845286945060209093019260019283019201610827565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361016b57565b9060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc83011261016b5760043567ffffffffffffffff811161016b578260238201121561016b5780600401359267ffffffffffffffff841161016b5760248460051b8301011161016b576024019190565b91908110156109c75760051b0190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b3573ffffffffffffffffffffffffffffffffffffffff8116810361016b5790565b73ffffffffffffffffffffffffffffffffffffffff5f54163303610a3557565b7f118cdaa7000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b6002548110156109c75760025f5260205f2001905f90565b73ffffffffffffffffffffffffffffffffffffffff8116908115610b5a57815f52600160205260ff60405f205416610b2e57815f52600160205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082541617905560025490680100000000000000008210156108c657610350826001610b089401600255610a61565b7fa226db3f664042183ee0281230bba26cbf7b5057e50aee7f25a175ff45ce4d7f5f80a2565b507f0e8a4941000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7fd92e233d000000000000000000000000000000000000000000000000000000005f5260045ffd5b6002548015610c09577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016002548110156109c75760025f8190527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace820180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905555565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea2646970667358221220365efb96bb36e34462f9f73e9867a59ee65e7166524e41a4a25a75f2fadd7d4564736f6c634300081e0033","sourceMap":"241:3462:7:-:0;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;241:3462:7;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;241:3462:7;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;241:3462:7;1273:26:0;;1269:95;;-1:-1:-1;241:3462:7;;-1:-1:-1;;;;;;241:3462:7;;;;;;-1:-1:-1;;;;;241:3462:7;;3052:40:0;;-1:-1:-1;3052:40:0;-1:-1:-1;1338:3:7;241:3462;;1318:18;;;;;241:3462;;;;;;;;;-1:-1:-1;;;;;241:3462:7;;2927:18;;2923:44;;241:3462;-1:-1:-1;241:3462:7;;;;;;-1:-1:-1;241:3462:7;;;2973:47;;241:3462;-1:-1:-1;241:3462:7;;;;;-1:-1:-1;241:3462:7;;;;;;;;;;3054:8;241:3462;;;;;;;;;;;;3054:8;241:3462;;;;;;3054:8;-1:-1:-1;241:3462:7;;;;;;;;;-1:-1:-1;;;;;;241:3462:7;;;;;;;3085:18;;-1:-1:-1;3085:18:7;241:3462;1307:9;;241:3462;;;;-1:-1:-1;241:3462:7;;;;;-1:-1:-1;241:3462:7;;;;;-1:-1:-1;241:3462:7;;;;;-1:-1:-1;241:3462:7;2973:47;3000:20;;;;-1:-1:-1;3000:20:7;;241:3462;;-1:-1:-1;3000:20:7;2923:44;2954:13;;;-1:-1:-1;2954:13:7;;-1:-1:-1;2954:13:7;1318:18;241:3462;;;;;;;;;1269:95:0;1322:31;;;-1:-1:-1;1322:31:0;-1:-1:-1;1322:31:0;241:3462:7;;-1:-1:-1;1322:31:0;241:3462:7;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;241:3462:7;;;;;;;;;-1:-1:-1;;241:3462:7;;;-1:-1:-1;;;;;241:3462:7;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;241:3462:7;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"6080806040526004361015610012575f80fd5b5f3560e01c90816303fced0c146107c4575080630a3b0a4f146107805780635e4ba17c146105ec578063715018a6146105525780638da5cb5b14610502578063abe7f1ab1461021c578063babcc539146101b4578063c4c1c94f1461016f5763f2fde38b1461007f575f80fd5b3461016b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016b5773ffffffffffffffffffffffffffffffffffffffff6100cb610922565b6100d3610a15565b16801561013f5773ffffffffffffffffffffffffffffffffffffffff5f54827fffffffffffffffffffffffff00000000000000000000000000000000000000008216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b7f1e4fbdf7000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b5f80fd5b3461016b5761017d36610945565b610185610a15565b5f5b81811061019057005b806101ae6101a96101a460019486886109b7565b6109f4565b610a79565b01610187565b3461016b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016b5773ffffffffffffffffffffffffffffffffffffffff610200610922565b165f526001602052602060ff60405f2054166040519015158152f35b3461016b5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016b57610253610922565b73ffffffffffffffffffffffffffffffffffffffff60243591610274610a15565b1690815f52600160205260ff60405f205416156104d6575f82815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690558015610430578173ffffffffffffffffffffffffffffffffffffffff6102e383610a61565b90549060031b1c16036103d757600254907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82019182116103aa5761035073ffffffffffffffffffffffffffffffffffffffff61034261037c94610a61565b90549060031b1c1691610a61565b90919073ffffffffffffffffffffffffffffffffffffffff8084549260031b9316831b921b1916179055565b610384610b82565b7f24a12366c02e13fe4a9e03d86a8952e85bb74a456c16e4a18b6d8295700b74bb5f80a2005b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b9073ffffffffffffffffffffffffffffffffffffffff6103f683610a61565b90549060031b1c16917fbf2671c2000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b506002545f5b818110610445575b5050610384565b8273ffffffffffffffffffffffffffffffffffffffff61046483610a61565b90549060031b1c161461047957600101610436565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82019182116103aa5761035073ffffffffffffffffffffffffffffffffffffffff6103426104c794610a61565b6104cf610b82565b818061043e565b507ffa5cd00f000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b3461016b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016b57602073ffffffffffffffffffffffffffffffffffffffff5f5416604051908152f35b3461016b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016b57610588610a15565b5f73ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461016b576105fa36610945565b90610603610a15565b5f915b80831061060f57005b73ffffffffffffffffffffffffffffffffffffffff6106326101a48584866109b7565b1692835f52600160205260ff60405f2054161561075457835f52600160205260405f207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008154169055600254935f5b8581106106bc575b506001929394507f24a12366c02e13fe4a9e03d86a8952e85bb74a456c16e4a18b6d8295700b74bb5f80a2019190610606565b8173ffffffffffffffffffffffffffffffffffffffff6106db83610a61565b90549060031b1c16146106f057600101610681565b9293947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081116103aa5760019361035073ffffffffffffffffffffffffffffffffffffffff61034261074494610a61565b61074c610b82565b849392610689565b837ffa5cd00f000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b3461016b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016b576107c26107ba610922565b6101a9610a15565b005b3461016b575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016b576002548082528160208101809260025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace905f5b8181106108f35750505003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019167ffffffffffffffff8311818410176108c65790829182604052602083019060208452518091526040830191905f5b818110610897575050500390f35b825173ffffffffffffffffffffffffffffffffffffffff16845285945060209384019390920191600101610889565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b825473ffffffffffffffffffffffffffffffffffffffff16845286945060209093019260019283019201610827565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361016b57565b9060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc83011261016b5760043567ffffffffffffffff811161016b578260238201121561016b5780600401359267ffffffffffffffff841161016b5760248460051b8301011161016b576024019190565b91908110156109c75760051b0190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b3573ffffffffffffffffffffffffffffffffffffffff8116810361016b5790565b73ffffffffffffffffffffffffffffffffffffffff5f54163303610a3557565b7f118cdaa7000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b6002548110156109c75760025f5260205f2001905f90565b73ffffffffffffffffffffffffffffffffffffffff8116908115610b5a57815f52600160205260ff60405f205416610b2e57815f52600160205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082541617905560025490680100000000000000008210156108c657610350826001610b089401600255610a61565b7fa226db3f664042183ee0281230bba26cbf7b5057e50aee7f25a175ff45ce4d7f5f80a2565b507f0e8a4941000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7fd92e233d000000000000000000000000000000000000000000000000000000005f5260045ffd5b6002548015610c09577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016002548110156109c75760025f8190527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace820180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905555565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea2646970667358221220365efb96bb36e34462f9f73e9867a59ee65e7166524e41a4a25a75f2fadd7d4564736f6c634300081e0033","sourceMap":"241:3462:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1500:62:0;;:::i;:::-;241:3462:7;2627:22:0;;2623:91;;241:3462:7;;;;;;;;;;;3052:40:0;241:3462:7;3052:40:0;;241:3462:7;2623:91:0;2672:31;241:3462:7;2672:31:0;241:3462:7;;;;;2672:31:0;241:3462:7;;;;;;;;;;;:::i;:::-;1500:62:0;;:::i;:::-;241:3462:7;1717:16;;;;;;241:3462;1735:3;1753:8;;;;241:3462;1753:8;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;241:3462;1706:9;;241:3462;;;;;;;;;;;;;;:::i;:::-;;;;2626:8;241:3462;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;1500:62:0;;;:::i;:::-;241:3462:7;;;;;3177:8;241:3462;;;;;;;;3176:15;3172:44;;241:3462;;;;3177:8;241:3462;;;;;;;;;;;3255:10;;;;3279:15;241:3462;3279:15;;;:::i;:::-;241:3462;;;;;;;3279:23;3275:79;;3279:8;241:3462;;;;;;;;;;3362:15;241:3462;3380:29;3362:47;3380:29;;:::i;:::-;241:3462;;;;;;;3362:15;;:::i;:::-;:47;241:3462;;;;;;;;;;;;;;;;;;;;;3362:47;3417:12;;:::i;:::-;3676:20;241:3462;3676:20;;241:3462;;;;;;;;;;;3275:79;3338:15;241:3462;3338:15;;;:::i;:::-;241:3462;;;;;;;3311:43;;241:3462;3311:43;241:3462;;;;;;;;3311:43;3251:414;241:3462;3466:8;241:3462;;3505:7;;;;;;3489:170;3251:414;;;;3514:3;3533:11;241:3462;3533:11;;;:::i;:::-;241:3462;;;;;;;3533:19;3529:122;;3177:8;241:3462;3494:9;;3529:122;241:3462;;;;;;;;3566:11;241:3462;3580:17;3566:31;3580:17;;:::i;3566:31::-;3609:12;;:::i;:::-;3635:5;;;;3172:44;3200:16;;241:3462;3200:16;241:3462;;;;3200:16;241:3462;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1500:62:0;;:::i;:::-;241:3462:7;;;;;;;;;;3052:40:0;;;;241:3462:7;;;;;;;;:::i;:::-;1500:62:0;;;:::i;:::-;241:3462:7;2410:74;2426:16;;;;;;241:3462;2444:3;241:3462;2465:8;;;;;;:::i;:::-;241:3462;;;;;;;;;;;;;;3176:15;3172:44;;241:3462;;;;;;;;;;;;;;;3466:8;241:3462;3494:9;241:3462;3505:7;;;;;;3489:170;3676:20;241:3462;3676:20;;;;;241:3462;3676:20;;241:3462;2415:9;;;;3514:3;3533:11;241:3462;3533:11;;;:::i;:::-;241:3462;;;;;;;3533:19;3529:122;;241:3462;;3494:9;;3529:122;241:3462;;;;;;;;;;;;3580:17;3566:11;241:3462;3580:17;3566:31;3580:17;;:::i;3566:31::-;3609:12;;:::i;:::-;3635:5;;;;;3172:44;3200:16;;241:3462;3200:16;241:3462;;;;3200:16;241:3462;;;;;;;;;;;1521:4;241:3462;;:::i;:::-;1500:62:0;;:::i;1521:4:7:-;241:3462;;;;;;;;;;;;2864:8;241:3462;;;;;;;;;;2864:8;241:3462;;;;;;;;;;;-1:-1:-1;;;241:3462:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;241:3462:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;241:3462:7;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;1796:162:0:-;241:3462:7;1710:6:0;241:3462:7;;735:10:3;1855:23:0;1851:101;;1796:162::o;1851:101::-;1901:40;1710:6;1901:40;735:10:3;1901:40:0;241:3462:7;;1710:6:0;1901:40;241:3462:7;3054:8;241:3462;;;;;;3054:8;-1:-1:-1;241:3462:7;;-1:-1:-1;241:3462:7;;;-1:-1:-1;241:3462:7;:::o;2881:227::-;241:3462;;;2927:18;;;2923:44;;241:3462;2943:1;241:3462;2977:8;241:3462;;;;2943:1;241:3462;;;2973:47;;241:3462;2943:1;241:3462;2977:8;241:3462;;;2943:1;241:3462;2977:8;241:3462;;;;;;;3054:8;241:3462;;;;;;;;;;2977:8;241:3462;;;3054:8;241:3462;;:::i;:::-;3085:18;2943:1;3085:18;;2881:227::o;2973:47::-;3000:20;;2943:1;3000:20;;241:3462;;2943:1;3000:20;2923:44;2954:13;2943:1;2954:13;;2943:1;2954:13;241:3462;3466:8;241:3462;;;;;;;3466:8;241:3462;;;;;;3466:8;-1:-1:-1;241:3462:7;;;;;;;;;;;;;:::o;:::-;;;;;;;;;","linkReferences":{}},"methodIdentifiers":{"add(address)":"0a3b0a4f","add(address[])":"c4c1c94f","getAllowed()":"03fced0c","isAllowed(address)":"babcc539","owner()":"8da5cb5b","remove(address,uint256)":"abe7f1ab","remove(address[])":"5e4ba17c","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"}}}},"src/autoRecovery/TimedRefundSapient.sol":{"TimedRefundSapient":{"abi":[{"type":"constructor","inputs":[{"name":"allowlist_","type":"address","internalType":"contract Allowlist"}],"stateMutability":"nonpayable"},{"type":"function","name":"TIMED_REFUND_NONCE_SPACE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"allowlist","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract Allowlist"}],"stateMutability":"view"},{"type":"function","name":"hasERC20Metadata","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"recoverSapientSignature","inputs":[{"name":"payload","type":"tuple","internalType":"struct Payload.Decoded","components":[{"name":"kind","type":"uint8","internalType":"uint8"},{"name":"noChainId","type":"bool","internalType":"bool"},{"name":"calls","type":"tuple[]","internalType":"struct Payload.Call[]","components":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"gasLimit","type":"uint256","internalType":"uint256"},{"name":"delegateCall","type":"bool","internalType":"bool"},{"name":"onlyFallback","type":"bool","internalType":"bool"},{"name":"behaviorOnError","type":"uint256","internalType":"uint256"}]},{"name":"space","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"message","type":"bytes","internalType":"bytes"},{"name":"imageHash","type":"bytes32","internalType":"bytes32"},{"name":"digest","type":"bytes32","internalType":"bytes32"},{"name":"parentWallets","type":"address[]","internalType":"address[]"}]},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"imageHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"error","name":"DelegateCallNotAllowed","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"GasLimitNotZero","inputs":[{"name":"index","type":"uint256","internalType":"uint256"},{"name":"gasLimit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidApprovalSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidBehaviorOnError","inputs":[{"name":"index","type":"uint256","internalType":"uint256"},{"name":"behaviorOnError","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidKind","inputs":[{"name":"kind","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"InvalidNonceSpace","inputs":[{"name":"space","type":"uint256","internalType":"uint256"},{"name":"expected","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidPayloadKind","inputs":[{"name":"kind","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"InvalidRecoveredSigner","inputs":[]},{"type":"error","name":"NativeTransferDataNotEmpty","inputs":[{"name":"index","type":"uint256","internalType":"uint256"},{"name":"dataLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OnlyFallbackNotAllowed","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SignerNotAllowed","inputs":[{"name":"signer","type":"address","internalType":"address"}]},{"type":"error","name":"UnauthorizedTransaction","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"UnlockTimestampNotReached","inputs":[{"name":"unlockTimestamp","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint256","internalType":"uint256"}]}],"metadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract Allowlist\",\"name\":\"allowlist_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"DelegateCallNotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"}],\"name\":\"GasLimitNotZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"InvalidApprovalSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"behaviorOnError\",\"type\":\"uint256\"}],\"name\":\"InvalidBehaviorOnError\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"}],\"name\":\"InvalidKind\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"space\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"}],\"name\":\"InvalidNonceSpace\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"}],\"name\":\"InvalidPayloadKind\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRecoveredSigner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"}],\"name\":\"NativeTransferDataNotEmpty\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"OnlyFallbackNotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"SignerNotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"UnauthorizedTransaction\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"unlockTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"UnlockTimestampNotReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TIMED_REFUND_NONCE_SPACE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allowlist\",\"outputs\":[{\"internalType\":\"contract Allowlist\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"hasERC20Metadata\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"noChainId\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"delegateCall\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"onlyFallback\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"behaviorOnError\",\"type\":\"uint256\"}],\"internalType\":\"struct Payload.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"space\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"imageHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"parentWallets\",\"type\":\"address[]\"}],\"internalType\":\"struct Payload.Decoded\",\"name\":\"payload\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"recoverSapientSignature\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"imageHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"The returned image hash commits to `(destination, unlockTimestamp)` and only approves plain native transfers or ERC20 `transfer(address,uint256)` calls to that destination.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"allowlist_\":\"The owner-managed allowlist of refund authorizers.\"}},\"hasERC20Metadata(address)\":{\"details\":\"This is a lightweight heuristic used to distinguish token-like transfers from native transfers.\"},\"recoverSapientSignature((uint8,bool,(address,uint256,bytes,uint256,bool,bool,uint256)[],uint256,uint256,bytes,bytes32,bytes32,address[]),bytes)\":{\"details\":\"`signature` is ABI-encoded as `(address destination, uint256 unlockTimestamp, bytes compactSignature)`.\",\"params\":{\"payload\":\"The payload to recover the signature from\",\"signature\":\"The signature to recover the image hash from\"},\"returns\":{\"imageHash\":\"The recovered image hash\"}}},\"stateVariables\":{\"TIMED_REFUND_NONCE_SPACE\":{\"details\":\"uint160(uint256(keccak256(\\\"trails.timed-refund.nonce-space\\\")) | (uint256(1) << 159))\"}},\"title\":\"TimedRefundSapient\",\"version\":1},\"userdoc\":{\"errors\":{\"DelegateCallNotAllowed(uint256)\":[{\"notice\":\"Delegate calls are not allowed in timed refund payloads.\"}],\"GasLimitNotZero(uint256,uint256)\":[{\"notice\":\"Per-call gas limits are not allowed in timed refund payloads.\"}],\"InvalidApprovalSignatureLength(uint256)\":[{\"notice\":\"The compact approval signature has an unexpected length.\"}],\"InvalidBehaviorOnError(uint256,uint256)\":[{\"notice\":\"A call used an unsupported `behaviorOnError` mode.\"}],\"InvalidKind(uint8)\":[{\"notice\":\"Error thrown when the kind is invalid\"}],\"InvalidNonceSpace(uint256,uint256)\":[{\"notice\":\"The payload used a nonce space outside the dedicated timed refund lane.\"}],\"InvalidPayloadKind(uint8)\":[{\"notice\":\"The sapient signer only supports transaction payloads.\"}],\"InvalidRecoveredSigner()\":[{\"notice\":\"The compact approval signature did not recover a signer.\"}],\"NativeTransferDataNotEmpty(uint256,uint256)\":[{\"notice\":\"Native transfers must not include calldata.\"}],\"OnlyFallbackNotAllowed(uint256)\":[{\"notice\":\"Fallback-only calls are not allowed in timed refund payloads.\"}],\"SignerNotAllowed(address)\":[{\"notice\":\"The recovered signer is not currently allowlisted.\"}],\"UnauthorizedTransaction(uint256)\":[{\"notice\":\"The payload contains a call outside the approved transfer-only surface.\"}],\"UnlockTimestampNotReached(uint256,uint256)\":[{\"notice\":\"The unlock timestamp has not been reached yet.\"}]},\"kind\":\"user\",\"methods\":{\"TIMED_REFUND_NONCE_SPACE()\":{\"notice\":\"Dedicated nonce space for timed refund payloads.\"},\"allowlist()\":{\"notice\":\"Allowlist of signers permitted to authorize timed refund batches.\"},\"constructor\":{\"notice\":\"Initializes the sapient signer with its signer allowlist.\"},\"hasERC20Metadata(address)\":{\"notice\":\"Returns whether `token` responds to the ERC20 metadata probes.\"},\"recoverSapientSignature((uint8,bool,(address,uint256,bytes,uint256,bool,bool,uint256)[],uint256,uint256,bytes,bytes32,bytes32,address[]),bytes)\":{\"notice\":\"Recovers the image hash of a given signature\"}},\"notice\":\"Sapient signer that authorizes time-locked refund batches to a fixed destination.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/autoRecovery/TimedRefundSapient.sol\":\"TimedRefundSapient\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":4294967295},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":account-abstraction/=lib/wallet-contracts-v3/lib/account-abstraction/contracts/\",\":erc2470-libs/=lib/wallet-contracts-v3/lib/erc2470-libs/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/wallet-contracts-v3/lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":trails-test/=test/\",\":wallet-contracts-v3-external/=../wallet-contracts-v3/src/\",\":wallet-contracts-v3/=lib/wallet-contracts-v3/src/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/wallet-contracts-v3/src/modules/Payload.sol\":{\"keccak256\":\"0x03b3dc2a4a556d3007671e910813dc4703ecb16f5bc2c6645e4c0d8512f2d76a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://9b41263156d5a310a48038e8c3871e9acdb806c018bc952d1a56efed62954e17\",\"dweb:/ipfs/QmaiuTbQgaiCvtN2V6roe4RTi6hHV85mNZpWKqvKA8ofqw\"]},\"lib/wallet-contracts-v3/src/modules/interfaces/ISapient.sol\":{\"keccak256\":\"0x3668daa83a61af054146345e53e571daf403f9bca9c3cc702f6f1cb655770359\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://13aa453c7021c83d305ac7d714a93f78a03a8cc0032cb06cf54d5ebf09100489\",\"dweb:/ipfs/QmSxar3KETtMzHXQuqQA9b8iK8cG3Z62EpWSeu8hhKW2xn\"]},\"lib/wallet-contracts-v3/src/utils/LibBytes.sol\":{\"keccak256\":\"0x4fe0b4786b2157e12384b90ae9daa1009b74b2547a8a24b800a8b998278c874b\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://065129e32d1a318e89fb7587e136c33177a7848393f9055c0ac601b84741cd8c\",\"dweb:/ipfs/QmVWucfHSHRJriRFNoJqoeDcVB4fDfqbccM8KPBmwcxVu3\"]},\"src/autoRecovery/Allowlist.sol\":{\"keccak256\":\"0x5fe668ad2a243341e01648df93908f984353bc03a85646b5bee0ee723a215a1a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0aac48b1089992ad73e70e85772314663fdede4cd06d95e4f1e644a66e144e4a\",\"dweb:/ipfs/QmdsbL4cEeVCYV7kfHu3ZariDTzGobwJaPWmgdYkG5zowB\"]},\"src/autoRecovery/TimedRefundSapient.sol\":{\"keccak256\":\"0xd446ac3d3614e27b24b0831dec1566b8ba506199762db82e967535306aa4e83c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6bca2fa7b6aafa9f6d16d9915767d8fd5b5476474cab7ec6d2c8ada36ec482a3\",\"dweb:/ipfs/QmYGDQRmaNffnYHV1YdFPBCyrXA9CYi6LhDYSwZnJEopdt\"]}},\"version\":1}","userdoc":{},"devdoc":{},"evm":{"bytecode":{"object":"60a034606d57601f61151838819003918201601f19168301916001600160401b03831184841017607157808492602094604052833981010312606d57516001600160a01b0381168103606d576080526040516114929081610086823960805181818161017501526109580152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c806313792a4a146100545780632b47da521461004f5780633512d4631461004a5763c477c13214610045575f80fd5b610210565b610199565b61012b565b346101275760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101275760043567ffffffffffffffff8111610127576101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82360301126101275760243567ffffffffffffffff8111610127573660238201121561012757806004013567ffffffffffffffff811161012757366024828401011161012757610123926024610113930190600401610857565b6040519081529081906020820190565b0390f35b5f80fd5b34610127575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610127575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012757602060405173ef25450978071b7bd3a1afe58c4484c84b31faf88152f35b73ffffffffffffffffffffffffffffffffffffffff81160361012757565b359061020e826101e5565b565b346101275760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610127576020610255600435610250816101e5565b610dd9565b6040519015158152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176102cd57604052565b61025f565b6040519061020e60e08361028c565b6040519061020e6101208361028c565b67ffffffffffffffff81116102cd57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b81601f8201121561012757803590610342826102f1565b92610350604051948561028c565b8284526020838301011161012757815f926020809301838601378301015290565b91606083830312610127578235610387816101e5565b92602081013592604082013567ffffffffffffffff8111610127576103ac920161032b565b90565b60ff81160361012757565b356103ac816103af565b359061020e826103af565b8015150361012757565b359061020e826103cf565b67ffffffffffffffff81116102cd5760051b60200190565b81601f8201121561012757803590610413826103e4565b92610421604051948561028c565b82845260208085019360051b830101918183116101275760208101935b83851061044d57505050505090565b843567ffffffffffffffff811161012757820160e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08286030112610127576104946102d2565b916104a160208301610203565b83526040820135602084015260608201359267ffffffffffffffff84116101275760e0836104d688602080988198010161032b565b6040840152608081013560608401526104f160a082016103d9565b608084015261050260c082016103d9565b60a0840152013560c082015281520194019361043e565b9080601f83011215610127578135610530816103e4565b9261053e604051948561028c565b81845260208085019260051b82010192831161012757602001905b8282106105665750505090565b602080918335610575816101e5565b815201910190610559565b91909161012081840312610127576105966102e1565b926105a0826103c4565b84526105ae602083016103d9565b6020850152604082013567ffffffffffffffff811161012757816105d39184016103fc565b6040850152606082013560608501526080820135608085015260a082013567ffffffffffffffff8111610127578161060c91840161032b565b60a085015260c082013560c085015260e082013560e085015261010082013567ffffffffffffffff8111610127576106449201610519565b610100830152565b9081602091031261012757516103ac816103cf565b6040513d5f823e3d90fd5b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301821215610127570180359067ffffffffffffffff821161012757602001918160051b3603831361012757565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b919081101561072d5760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2181360301821215610127570190565b6106c0565b356103ac816103cf565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301821215610127570180359067ffffffffffffffff82116101275760200191813603831361012757565b356103ac816101e5565b906004116101275790600490565b906024116101275760040190602090565b919091357fffffffff00000000000000000000000000000000000000000000000000000000811692600481106107ea575050565b7fffffffff00000000000000000000000000000000000000000000000000000000929350829060040360031b1b161690565b35906020811061082a575090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9060200360031b1b1690565b9173ffffffffffffffffffffffffffffffffffffffff9161087a91810190610371565b93919290921692805160408103610dae575060ff610897836103ba565b16610d7457606082013573ef25450978071b7bd3a1afe58c4484c84b31faf88103610d3157506108d9906108d4336108cf3686610580565b610e67565b610fad565b73ffffffffffffffffffffffffffffffffffffffff811615610d09576040517fbabcc53900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526020818060248101038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610d04575f91610cd5575b5015610c945750814210610c63575f5b604082016109a6818461066c565b9050821015610c5757816109bd6109c3928561066c565b906106ed565b60c081013560018103610c2757506109dd60808201610732565b610bfa576109ed60a08201610732565b610bcd57606081013580610b9d5750610a09604082018261073c565b91866020820135610b0b5750610a24610250610a289261078d565b1590565b610ade5760448203610ade577fa9059cbb000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000610a89610a838585610797565b906107b6565b1603610ade57610a9d8692610aa3926107a5565b9061081c565b03610ab2576001905b01610998565b7fd0effcd1000000000000000000000000000000000000000000000000000000005f5260045260245b5ffd5b7fd0effcd1000000000000000000000000000000000000000000000000000000005f52600483905260245ffd5b9150610b2b73ffffffffffffffffffffffffffffffffffffffff9161078d565b1603610b705780610b3f5750600190610aac565b7faa458e88000000000000000000000000000000000000000000000000000000005f5260049190915260245260445ffd5b7fd0effcd1000000000000000000000000000000000000000000000000000000005f52600482905260245ffd5b7f2e275162000000000000000000000000000000000000000000000000000000005f52600483905260245260445ffd5b7f992c80fa000000000000000000000000000000000000000000000000000000005f52600482905260245ffd5b7f230d1ccc000000000000000000000000000000000000000000000000000000005f52600482905260245ffd5b7f953ecc57000000000000000000000000000000000000000000000000000000005f52600483905260245260445ffd5b5050506103ac9161100e565b7f29162ec3000000000000000000000000000000000000000000000000000000005f5260048290524260245260445ffd5b7f24293799000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff1660045260245ffd5b610cf7915060203d602011610cfd575b610cef818361028c565b81019061064c565b5f610988565b503d610ce5565b610661565b7f546fefe6000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f7b56ac38000000000000000000000000000000000000000000000000000000005f5260045273ef25450978071b7bd3a1afe58c4484c84b31faf860245260445ffd5b610adb610d80836103ba565b7ffdd66817000000000000000000000000000000000000000000000000000000005f5260ff16600452602490565b7fdefdd9a1000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b610e1a6040517f06fdde0300000000000000000000000000000000000000000000000000000000602082015260048152610e1460248261028c565b82611078565b9081610e24575090565b6103ac9150604051907f95d89b4100000000000000000000000000000000000000000000000000000000602083015260048252610e6260248361028c565b611078565b90610fa0610f32610f7492602085015115155f14610fa6575f905b73ffffffffffffffffffffffffffffffffffffffff6040519160208301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f85527f4aa45ca7ad825ceb1bf35643f0a58c295239df563b1b565c2485f96477c5631860408501527f2a80e1ef1d7842f27f2e6be0972bb708b9a135c38860dbe73c27c3486c34f4de606085015260808401521660a082015260a08152610f2960c08261028c565b51902093611108565b60405192839160208301958690916042927f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201520190565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810183528261028c565b51902090565b4690610e82565b60805f917f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6020946040868201519101519060405193845260ff601b83821c011687850152604084015216606082015282805260015afa15610d04575f5190565b906040519073ffffffffffffffffffffffffffffffffffffffff602083019360608552600c60808501527f74696d65642d726566756e64000000000000000000000000000000000000000060a0850152166040830152606082015260a08152610fa060c08261028c565b5f918291602082519201905afa3d156110be573d611095816102f1565b906110a3604051928361028c565b81523d5f602083013e5b816110b6575090565b905051151590565b60606110ad565b80516020909101905f5b8181106110dc5750505090565b825173ffffffffffffffffffffffffffffffffffffffff168452602093840193909201916001016110cf565b61010081015160405161112381610f746020820180956110c5565b51902090611132815160ff1690565b60ff8116806111ab57505090610fa061114e6040840151611322565b92610f7460806060830151920151936040519485936020850197889094939260809260a08301967f11e1e4079a79a66e4ade50033cfe2678cdd5341d2dfe5ef9513edb1a0be147a284526020840152604083015260608201520152565b6001810361120957505060a001518051602091820120604080517fe19a3b94fc3c7ece3f890d98a99bc422615537a08dea0603fa8425867d87d46693810193845290810191909152606081019290925290610fa08160808101610f74565b6002810361125f57505060c00151604080517f11fdeb7e8373a1aa96bfac8d0ea91526b2c5d15e5cee20e0543e780258f3e8e460208201908152918101929092526060820192909252610fa08160808101610f74565b6003036112b3575060e00151604080517fe19a3b94fc3c7ece3f890d98a99bc422615537a08dea0603fa8425867d87d46660208201908152918101929092526060820192909252610fa08160808101610f74565b7f04818320000000000000000000000000000000000000000000000000000000005f5260ff1660045260245ffd5b805182101561072d5760209160051b010190565b80516020909101905f5b81811061130c5750505090565b82518452602093840193909201916001016112ff565b9081517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0611368611352836103e4565b92611360604051948561028c565b8084526103e4565b013660208301375f5b83518110156114435780611387600192866112e1565b5173ffffffffffffffffffffffffffffffffffffffff81511690602081015190604081015160208151910120906060810151608082015115159060c060a08401511515930151936040519560208701977f0603985259a953da1f65a522f589c17bd1d0117ec1d3abb7c0788aef251ef437895260408801526060870152608086015260a085015260c084015260e0830152610100820152610100815261142f6101208261028c565b51902061143c82856112e1565b5201611371565b50909150604051610fa081610f746020820180956112f556fea264697066735822122080b77e4939b2ee31e47b323c5a00a6039429c5025748b0b836bb2c87a3dabc4a64736f6c634300081e0033","sourceMap":"749:5989:8:-:0;;;;;;;;;;;;;-1:-1:-1;;749:5989:8;;;;-1:-1:-1;;;;;749:5989:8;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;749:5989:8;;;;;;3023:22;;749:5989;;;;;;;;3023:22;749:5989;;;;;;;;;;;;-1:-1:-1;749:5989:8;;;;;;-1:-1:-1;749:5989:8;;;;;-1:-1:-1;749:5989:8","linkReferences":{}},"deployedBytecode":{"object":"60806040526004361015610011575f80fd5b5f3560e01c806313792a4a146100545780632b47da521461004f5780633512d4631461004a5763c477c13214610045575f80fd5b610210565b610199565b61012b565b346101275760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101275760043567ffffffffffffffff8111610127576101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82360301126101275760243567ffffffffffffffff8111610127573660238201121561012757806004013567ffffffffffffffff811161012757366024828401011161012757610123926024610113930190600401610857565b6040519081529081906020820190565b0390f35b5f80fd5b34610127575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012757602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610127575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012757602060405173ef25450978071b7bd3a1afe58c4484c84b31faf88152f35b73ffffffffffffffffffffffffffffffffffffffff81160361012757565b359061020e826101e5565b565b346101275760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610127576020610255600435610250816101e5565b610dd9565b6040519015158152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176102cd57604052565b61025f565b6040519061020e60e08361028c565b6040519061020e6101208361028c565b67ffffffffffffffff81116102cd57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b81601f8201121561012757803590610342826102f1565b92610350604051948561028c565b8284526020838301011161012757815f926020809301838601378301015290565b91606083830312610127578235610387816101e5565b92602081013592604082013567ffffffffffffffff8111610127576103ac920161032b565b90565b60ff81160361012757565b356103ac816103af565b359061020e826103af565b8015150361012757565b359061020e826103cf565b67ffffffffffffffff81116102cd5760051b60200190565b81601f8201121561012757803590610413826103e4565b92610421604051948561028c565b82845260208085019360051b830101918183116101275760208101935b83851061044d57505050505090565b843567ffffffffffffffff811161012757820160e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08286030112610127576104946102d2565b916104a160208301610203565b83526040820135602084015260608201359267ffffffffffffffff84116101275760e0836104d688602080988198010161032b565b6040840152608081013560608401526104f160a082016103d9565b608084015261050260c082016103d9565b60a0840152013560c082015281520194019361043e565b9080601f83011215610127578135610530816103e4565b9261053e604051948561028c565b81845260208085019260051b82010192831161012757602001905b8282106105665750505090565b602080918335610575816101e5565b815201910190610559565b91909161012081840312610127576105966102e1565b926105a0826103c4565b84526105ae602083016103d9565b6020850152604082013567ffffffffffffffff811161012757816105d39184016103fc565b6040850152606082013560608501526080820135608085015260a082013567ffffffffffffffff8111610127578161060c91840161032b565b60a085015260c082013560c085015260e082013560e085015261010082013567ffffffffffffffff8111610127576106449201610519565b610100830152565b9081602091031261012757516103ac816103cf565b6040513d5f823e3d90fd5b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301821215610127570180359067ffffffffffffffff821161012757602001918160051b3603831361012757565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b919081101561072d5760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2181360301821215610127570190565b6106c0565b356103ac816103cf565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301821215610127570180359067ffffffffffffffff82116101275760200191813603831361012757565b356103ac816101e5565b906004116101275790600490565b906024116101275760040190602090565b919091357fffffffff00000000000000000000000000000000000000000000000000000000811692600481106107ea575050565b7fffffffff00000000000000000000000000000000000000000000000000000000929350829060040360031b1b161690565b35906020811061082a575090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9060200360031b1b1690565b9173ffffffffffffffffffffffffffffffffffffffff9161087a91810190610371565b93919290921692805160408103610dae575060ff610897836103ba565b16610d7457606082013573ef25450978071b7bd3a1afe58c4484c84b31faf88103610d3157506108d9906108d4336108cf3686610580565b610e67565b610fad565b73ffffffffffffffffffffffffffffffffffffffff811615610d09576040517fbabcc53900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526020818060248101038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610d04575f91610cd5575b5015610c945750814210610c63575f5b604082016109a6818461066c565b9050821015610c5757816109bd6109c3928561066c565b906106ed565b60c081013560018103610c2757506109dd60808201610732565b610bfa576109ed60a08201610732565b610bcd57606081013580610b9d5750610a09604082018261073c565b91866020820135610b0b5750610a24610250610a289261078d565b1590565b610ade5760448203610ade577fa9059cbb000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000610a89610a838585610797565b906107b6565b1603610ade57610a9d8692610aa3926107a5565b9061081c565b03610ab2576001905b01610998565b7fd0effcd1000000000000000000000000000000000000000000000000000000005f5260045260245b5ffd5b7fd0effcd1000000000000000000000000000000000000000000000000000000005f52600483905260245ffd5b9150610b2b73ffffffffffffffffffffffffffffffffffffffff9161078d565b1603610b705780610b3f5750600190610aac565b7faa458e88000000000000000000000000000000000000000000000000000000005f5260049190915260245260445ffd5b7fd0effcd1000000000000000000000000000000000000000000000000000000005f52600482905260245ffd5b7f2e275162000000000000000000000000000000000000000000000000000000005f52600483905260245260445ffd5b7f992c80fa000000000000000000000000000000000000000000000000000000005f52600482905260245ffd5b7f230d1ccc000000000000000000000000000000000000000000000000000000005f52600482905260245ffd5b7f953ecc57000000000000000000000000000000000000000000000000000000005f52600483905260245260445ffd5b5050506103ac9161100e565b7f29162ec3000000000000000000000000000000000000000000000000000000005f5260048290524260245260445ffd5b7f24293799000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff1660045260245ffd5b610cf7915060203d602011610cfd575b610cef818361028c565b81019061064c565b5f610988565b503d610ce5565b610661565b7f546fefe6000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f7b56ac38000000000000000000000000000000000000000000000000000000005f5260045273ef25450978071b7bd3a1afe58c4484c84b31faf860245260445ffd5b610adb610d80836103ba565b7ffdd66817000000000000000000000000000000000000000000000000000000005f5260ff16600452602490565b7fdefdd9a1000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b610e1a6040517f06fdde0300000000000000000000000000000000000000000000000000000000602082015260048152610e1460248261028c565b82611078565b9081610e24575090565b6103ac9150604051907f95d89b4100000000000000000000000000000000000000000000000000000000602083015260048252610e6260248361028c565b611078565b90610fa0610f32610f7492602085015115155f14610fa6575f905b73ffffffffffffffffffffffffffffffffffffffff6040519160208301937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f85527f4aa45ca7ad825ceb1bf35643f0a58c295239df563b1b565c2485f96477c5631860408501527f2a80e1ef1d7842f27f2e6be0972bb708b9a135c38860dbe73c27c3486c34f4de606085015260808401521660a082015260a08152610f2960c08261028c565b51902093611108565b60405192839160208301958690916042927f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201520190565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810183528261028c565b51902090565b4690610e82565b60805f917f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6020946040868201519101519060405193845260ff601b83821c011687850152604084015216606082015282805260015afa15610d04575f5190565b906040519073ffffffffffffffffffffffffffffffffffffffff602083019360608552600c60808501527f74696d65642d726566756e64000000000000000000000000000000000000000060a0850152166040830152606082015260a08152610fa060c08261028c565b5f918291602082519201905afa3d156110be573d611095816102f1565b906110a3604051928361028c565b81523d5f602083013e5b816110b6575090565b905051151590565b60606110ad565b80516020909101905f5b8181106110dc5750505090565b825173ffffffffffffffffffffffffffffffffffffffff168452602093840193909201916001016110cf565b61010081015160405161112381610f746020820180956110c5565b51902090611132815160ff1690565b60ff8116806111ab57505090610fa061114e6040840151611322565b92610f7460806060830151920151936040519485936020850197889094939260809260a08301967f11e1e4079a79a66e4ade50033cfe2678cdd5341d2dfe5ef9513edb1a0be147a284526020840152604083015260608201520152565b6001810361120957505060a001518051602091820120604080517fe19a3b94fc3c7ece3f890d98a99bc422615537a08dea0603fa8425867d87d46693810193845290810191909152606081019290925290610fa08160808101610f74565b6002810361125f57505060c00151604080517f11fdeb7e8373a1aa96bfac8d0ea91526b2c5d15e5cee20e0543e780258f3e8e460208201908152918101929092526060820192909252610fa08160808101610f74565b6003036112b3575060e00151604080517fe19a3b94fc3c7ece3f890d98a99bc422615537a08dea0603fa8425867d87d46660208201908152918101929092526060820192909252610fa08160808101610f74565b7f04818320000000000000000000000000000000000000000000000000000000005f5260ff1660045260245ffd5b805182101561072d5760209160051b010190565b80516020909101905f5b81811061130c5750505090565b82518452602093840193909201916001016112ff565b9081517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0611368611352836103e4565b92611360604051948561028c565b8084526103e4565b013660208301375f5b83518110156114435780611387600192866112e1565b5173ffffffffffffffffffffffffffffffffffffffff81511690602081015190604081015160208151910120906060810151608082015115159060c060a08401511515930151936040519560208701977f0603985259a953da1f65a522f589c17bd1d0117ec1d3abb7c0788aef251ef437895260408801526060870152608086015260a085015260c084015260e0830152610100820152610100815261142f6101208261028c565b51902061143c82856112e1565b5201611371565b50909150604051610fa081610f746020820180956112f556fea264697066735822122080b77e4939b2ee31e47b323c5a00a6039429c5025748b0b836bb2c87a3dabc4a64736f6c634300081e0033","sourceMap":"749:5989:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1285:36;749:5989;;;;;;;;;;;;;;;;;;1019:42;749:5989;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;2321:4:4;749:5989:8;;:::i;:::-;;;;;2321:4:4;749:5989:8;;:::i;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;749:5989:8;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;1198:2::-;;;;;;;:::o;:::-;;;;;:::i;2321:4:4:-;;;;;;:::i;:::-;749:5989:8;;;2321:4:4;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;749:5989:8;;;;;;;:::i;:::-;2321:4:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;749:5989:8;2321:4:4;;;749:5989:8;:::i;:::-;2321:4:4;;749:5989:8;2321:4:4;;749:5989:8;2321:4:4;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;749:5989:8;2321:4:4;;;;;;749:5989:8;2321:4:4;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;749:5989:8;2321:4:4;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;749:5989:8;;;;;;;:::i;:::-;2321:4:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;749:5989:8;;;;;;;:::i;:::-;2321:4:4;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;749:5989:8;2321:4:4;;;;;;;749:5989:8;2321:4:4;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;749:5989:8;2321:4:4;;;;;;;749:5989:8;2321:4:4;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;749:5989:8;;2321:4:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;2763:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;5269:27:8;2763:4:4;;;;5269:27:8;2763:4:4;:::o;:::-;;6361:2:8;2763:4:4;;;5269:27:8;2763:4:4;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;1118:24:8:-;;;;;;;;;;:::o;:::-;;;;;;;2763:4:4;1118:24:8;;:::o;4437:2299::-;;749:5989;4437:2299;4679:48;4437:2299;4679:48;;;;:::i;:::-;749:5989;;;;;;;;;1198:2;4737:52;;4733:136;;4879:12;1198:2;4879:12;;;:::i;:::-;1198:2;4875:86;;4971:13;;;749:5989;1019:42;4971:41;;4967:127;;5164:10;5117:78;5164:10;5139:36;5164:10;2321:4:4;;;;:::i;:::-;5139:36:8;:::i;:::-;5117:78;:::i;:::-;749:5989;;;5205:20;5201:57;;1198:2;749:5989;2321:4:4;5269:27:8;;749:5989;;;5269:27;;;2321:4:4;5269:27:8;749:5989;;2321:4:4;;;5269:27:8;:9;749:5989;5269:9;749:5989;5269:27;;;;;;;2321:4:4;5269:27:8;;;4437:2299;5268:28;;5264:65;;5339:15;;;:33;5335:105;;2321:4:4;5570:3:8;1198:2;5548:13;;;;;;:::i;:::-;5544:24;;;;;;;5612:13;;:16;:13;;;:::i;:::-;:16;;:::i;:::-;5640:20;;;749:5989;2763:4:4;5640:56:8;;5636:135;;5782:17;;;;;;:::i;:::-;5778:55;;5845:17;;;;;:::i;:::-;5841:55;;4971:13;5908;;749:5989;5908:18;5904:64;;5999:9;;1198:2;5999:9;;;;:::i;:::-;6021:10;;5269:27;6021:10;;749:5989;6021:15;;6070:7;6053:25;6070:7;6052:26;6070:7;;:::i;6053:25::-;6052:26;;749:5989;6052:26;6048:65;;6203:2;6188:17;;6184:56;;1118:24;2763:4:4;6254:16:8;6261:8;;;;:::i;:::-;6254:16;;:::i;:::-;2763:4:4;6254:43:8;6250:82;;6354:10;;;6346:19;6354:10;;:::i;:::-;6346:19;;:::i;:::-;:61;6342:100;;2763:4:4;6017:646:8;;2321:4:4;5529:13:8;;6342:100;6416:26;2321:4:4;6416:26:8;4806:56;749:5989;;6416:26;2321:4:4;6416:26:8;6250:82;6306:26;2321:4:4;6306:26:8;4806:56;749:5989;;;;2321:4:4;6416:26:8;6017:646;6516:7;;;749:5989;6516:7;;:::i;:::-;749:5989;6516:22;6512:61;;6587:16;6583:71;;6017:646;2763:4:4;6017:646:8;;;6583:71;6612:42;2321:4:4;6612:42:8;5269:27;749:5989;;;;2321:4:4;749:5989:8;2321:4:4;;6416:26:8;6512:61;6547:26;2321:4:4;6547:26:8;4806:56;749:5989;;;;2321:4:4;6416:26:8;5904:64;5935:33;2321:4:4;5935:33:8;5269:27;749:5989;;;2321:4:4;749:5989:8;2321:4:4;;6416:26:8;5841:55;5871:25;2321:4:4;5871:25:8;4806:56;749:5989;;;;2321:4:4;6416:26:8;5778:55;5808:25;2321:4:4;5808:25:8;4806:56;749:5989;;;;2321:4:4;6416:26:8;5636:135;5715:47;2321:4:4;5715:47:8;5269:27;749:5989;;;2321:4:4;749:5989:8;2321:4:4;;6416:26:8;5544:24;;;;6682:49;5544:24;6682:49;:::i;5335:105::-;5381:59;2321:4:4;5381:59:8;5269:27;749:5989;;;5339:15;2321:4:4;749:5989:8;2321:4:4;;6416:26:8;5264:65;5305:24;2321:4:4;5305:24:8;749:5989;;5269:27;2321:4:4;;;6416:26:8;5269:27;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;5201:57::-;5234:24;2321:4:4;5234:24:8;;2321:4:4;5234:24:8;4967:127;5029:58;2321:4:4;5029:58:8;;749:5989;;2321:4:4;749:5989:8;2321:4:4;;6416:26:8;4875:86;4929:32;4948:12;;;:::i;:::-;4929:32;2321:4:4;4929:32:8;1198:2;;4929:32;2321:4:4;;;;4733:136:8;4806:56;;;;749:5989;;2321:4:4;6416:26:8;3830:234;3911:68;749:5989;;3939:39;;;;;;;;;;;;:::i;:::-;3911:68;;:::i;:::-;:148;;;;3904:155;3830:234;:::o;3911:148::-;3989:70;749:5989;;;;4017:41;;3939:39;4017:41;;;3939:39;4017:41;;;3939:39;4017:41;;:::i;:::-;3989:70;:::i;9810:280:4:-;;10036:48;9995:18;10036:48;9810:280;9940:18;;;749:5989:8;;;1206:48:4;;;;-1:-1:-1;1206:48:4;;749:5989:8;;;1077:202:4;9940:18;1077:202;;749:5989:8;539:66:4;749:5989:8;;709:66:4;749:5989:8;868:66:4;;749:5989:8;868:66:4;;;;749:5989:8;868:66:4;;;749:5989:8;;868:66:4;;;2321:4;868:66;1077:202;;;;;;:::i;:::-;749:5989:8;1060:225:4;;9995:18;;:::i;:::-;749:5989:8;;10036:48:4;;;9940:18;10036:48;;;;749:5989:8;;;;;;;;;;;;;;;;;;10036:48:4;;1077:202;10036:48;;;;;;:::i;:::-;749:5989:8;10026:59:4;;9810:280;:::o;1206:48::-;1240:13;1206:48;;;3250:392:8;749:5989;-1:-1:-1;3250:392:8;3401:199;;3250:392;3401:199;;;;;;;;749:5989;3401:199;749:5989;;;;3401:199;;;;;;1198:2;749:5989;;;2321:4:4;3401:199:8;749:5989;;;3401:199;749:5989;;;;3613:24;;;3401:199;3613:24;;;;;-1:-1:-1;3613:24:8;3250:392;:::o;3054:192::-;;749:5989;;3184:56;749:5989;3184:56;;;749:5989;;;;;;;;;;;;;;;;;;2321:4:4;749:5989:8;;;;;3184:56;;;;;;:::i;4068:223::-;4213:27;4068:223;;;4213:27;;;;;;;;749:5989;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;4213:27;;749:5989;;;;4253:33;;;4246:40;4068:223;:::o;4253:33::-;749:5989;;;4264:22;;4068:223;:::o;749:5989::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;2321:4:4;;749:5989:8;;;;;;;;;;;;;8246:1282:4;8384:22;;;;749:5989:8;;8367:40:4;;749:5989:8;8367:40:4;;;749:5989:8;;;:::i;8367:40:4:-;749:5989:8;8357:51:4;;749:5989:8;;;;1198:2;;;;749:5989;1198:2;;;8419:34:4;1198:2:8;;8493:14:4;;;8680:82;8483:25;749:5989:8;8493:14:4;;;8483:25;:::i;:::-;8718:14;8680:82;8734:14;8718;;;1799:66;8734:14;;1799:66;749:5989:8;;;8680:82:4;;;8367:40;8680:82;;;;1799:66;;;;;;;;;749:5989:8;1799:66:4;749:5989:8;;1799:66:4;;;749:5989:8;1799:66:4;;;749:5989:8;1799:66:4;;;749:5989:8;1799:66:4;749:5989:8;1799:66:4;8415:1109;2763:4;8780:29;;2763:4;;-1:-1:-1;;8966:16:4;;;749:5989:8;;8367:40:4;749:5989:8;;;8956:27:4;749:5989:8;;;1979:66:4;8927:70;;;749:5989:8;;;1979:66:4;;;749:5989:8;;;;1979:66:4;;;749:5989:8;;;;8927:70:4;;749:5989:8;1979:66:4;;;8927:70;1979:66;8776:748;2482:4;9015:35;;2482:4;;-1:-1:-1;;9184:18:4;;1979:66;749:5989:8;;;2174:66:4;8367:40;9149:67;;749:5989:8;;;1979:66:4;;;749:5989:8;;;;1979:66:4;;;749:5989:8;;;;9149:67:4;749:5989:8;1979:66:4;;;9149:67;1979:66;9011:513;2556:4;9234:28;2556:4;;-1:-1:-1;9411:15:4;;1979:66;749:5989:8;;;1979:66:4;8367:40;9382:58;;749:5989:8;;;1979:66:4;;;749:5989:8;;;;1979:66:4;;;749:5989:8;;;;9382:58:4;749:5989:8;1979:66:4;;;9382:58;1979:66;9230:294;9491:26;749:5989:8;9491:26:4;1198:2:8;;4929:32;2321:4:4;;;6416:26:8;749:5989;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;7788:454:4;;749:5989:8;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;-1:-1:-1;8132:3:4;749:5989:8;;8114:16:4;;;;;8170:8;;2321:4;8170:8;;;:::i;:::-;;749:5989:8;1478:66:4;;749:5989:8;7676:7:4;749:5989:8;7676:7:4;;1799:66;7695:6;749:5989:8;7695:6:4;;;749:5989:8;;;;;7685:17:4;7704:10;;;;1799:66;7716:14;;;749:5989:8;;;7732:14:4;7748:17;7732:14;;;749:5989:8;;;7748:17:4;;1799:66;749:5989:8;;;7635:138:4;749:5989:8;7635:138:4;;749:5989:8;1478:66:4;749:5989:8;;;1478:66:4;;2321:4;7704:10;1478:66;;749:5989:8;7716:14:4;1478:66;;749:5989:8;7732:14:4;1478:66;;749:5989:8;7748:17:4;1478:66;;749:5989:8;1478:66:4;;;749:5989:8;1478:66:4;;;749:5989:8;1478:66:4;7635:138;;;;;;:::i;:::-;749:5989:8;7618:161:4;;8145:34;;;;:::i;:::-;749:5989:8;2321:4:4;8099:13;;8114:16;;;;;749:5989:8;;8208:28:4;;749:5989:8;;8208:28:4;;749:5989:8;;;:::i","linkReferences":{},"immutableReferences":{"1642":[{"start":373,"length":32},{"start":2392,"length":32}]}},"methodIdentifiers":{"TIMED_REFUND_NONCE_SPACE()":"3512d463","allowlist()":"2b47da52","hasERC20Metadata(address)":"c477c132","recoverSapientSignature((uint8,bool,(address,uint256,bytes,uint256,bool,bool,uint256)[],uint256,uint256,bytes,bytes32,bytes32,address[]),bytes)":"13792a4a"}}}}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"id":0,"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","id":148,"exportedSymbols":{"Context":[281],"Ownable":[147]},"nodeType":"SourceUnit","src":"102:3000:0","nodes":[{"id":1,"nodeType":"PragmaDirective","src":"102:24:0","nodes":[],"literals":["solidity","^","0.8",".20"]},{"id":3,"nodeType":"ImportDirective","src":"128:45:0","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Context.sol","file":"../utils/Context.sol","nameLocation":"-1:-1:-1","scope":148,"sourceUnit":282,"symbolAliases":[{"foreign":{"id":2,"name":"Context","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":281,"src":"136:7:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":147,"nodeType":"ContractDefinition","src":"663:2438:0","nodes":[{"id":8,"nodeType":"VariableDeclaration","src":"706:22:0","nodes":[],"constant":false,"mutability":"mutable","name":"_owner","nameLocation":"722:6:0","scope":147,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7,"name":"address","nodeType":"ElementaryTypeName","src":"706:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":13,"nodeType":"ErrorDefinition","src":"825:50:0","nodes":[],"documentation":{"id":9,"nodeType":"StructuredDocumentation","src":"735:85:0","text":" @dev The caller account is not authorized to perform an operation."},"errorSelector":"118cdaa7","name":"OwnableUnauthorizedAccount","nameLocation":"831:26:0","parameters":{"id":12,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11,"mutability":"mutable","name":"account","nameLocation":"866:7:0","nodeType":"VariableDeclaration","scope":13,"src":"858:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10,"name":"address","nodeType":"ElementaryTypeName","src":"858:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"857:17:0"}},{"id":18,"nodeType":"ErrorDefinition","src":"968:41:0","nodes":[],"documentation":{"id":14,"nodeType":"StructuredDocumentation","src":"881:82:0","text":" @dev The owner is not a valid owner account. (eg. `address(0)`)"},"errorSelector":"1e4fbdf7","name":"OwnableInvalidOwner","nameLocation":"974:19:0","parameters":{"id":17,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16,"mutability":"mutable","name":"owner","nameLocation":"1002:5:0","nodeType":"VariableDeclaration","scope":18,"src":"994:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15,"name":"address","nodeType":"ElementaryTypeName","src":"994:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"993:15:0"}},{"id":24,"nodeType":"EventDefinition","src":"1015:84:0","nodes":[],"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","name":"OwnershipTransferred","nameLocation":"1021:20:0","parameters":{"id":23,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"1058:13:0","nodeType":"VariableDeclaration","scope":24,"src":"1042:29:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19,"name":"address","nodeType":"ElementaryTypeName","src":"1042:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"1089:8:0","nodeType":"VariableDeclaration","scope":24,"src":"1073:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21,"name":"address","nodeType":"ElementaryTypeName","src":"1073:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1041:57:0"}},{"id":50,"nodeType":"FunctionDefinition","src":"1225:187:0","nodes":[],"body":{"id":49,"nodeType":"Block","src":"1259:153:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":35,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":30,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"1273:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":33,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1297:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":32,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1289:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":31,"name":"address","nodeType":"ElementaryTypeName","src":"1289:7:0","typeDescriptions":{}}},"id":34,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1289:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1273:26:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":44,"nodeType":"IfStatement","src":"1269:95:0","trueBody":{"id":43,"nodeType":"Block","src":"1301:63:0","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":39,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1350:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":38,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1342:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":37,"name":"address","nodeType":"ElementaryTypeName","src":"1342:7:0","typeDescriptions":{}}},"id":40,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1342:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":36,"name":"OwnableInvalidOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18,"src":"1322:19:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":41,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1322:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":42,"nodeType":"RevertStatement","src":"1315:38:0"}]}},{"expression":{"arguments":[{"id":46,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"1392:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"1373:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":47,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1373:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48,"nodeType":"ExpressionStatement","src":"1373:32:0"}]},"documentation":{"id":25,"nodeType":"StructuredDocumentation","src":"1105:115:0","text":" @dev Initializes the contract setting the address provided by the deployer as the initial owner."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":28,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27,"mutability":"mutable","name":"initialOwner","nameLocation":"1245:12:0","nodeType":"VariableDeclaration","scope":50,"src":"1237:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26,"name":"address","nodeType":"ElementaryTypeName","src":"1237:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1236:22:0"},"returnParameters":{"id":29,"nodeType":"ParameterList","parameters":[],"src":"1259:0:0"},"scope":147,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":58,"nodeType":"ModifierDefinition","src":"1500:62:0","nodes":[],"body":{"id":57,"nodeType":"Block","src":"1521:41:0","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":53,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84,"src":"1531:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":54,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1531:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55,"nodeType":"ExpressionStatement","src":"1531:13:0"},{"id":56,"nodeType":"PlaceholderStatement","src":"1554:1:0"}]},"documentation":{"id":51,"nodeType":"StructuredDocumentation","src":"1418:77:0","text":" @dev Throws if called by any account other than the owner."},"name":"onlyOwner","nameLocation":"1509:9:0","parameters":{"id":52,"nodeType":"ParameterList","parameters":[],"src":"1518:2:0"},"virtual":false,"visibility":"internal"},{"id":67,"nodeType":"FunctionDefinition","src":"1638:85:0","nodes":[],"body":{"id":66,"nodeType":"Block","src":"1693:30:0","nodes":[],"statements":[{"expression":{"id":64,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"1710:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":63,"id":65,"nodeType":"Return","src":"1703:13:0"}]},"documentation":{"id":59,"nodeType":"StructuredDocumentation","src":"1568:65:0","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1647:5:0","parameters":{"id":60,"nodeType":"ParameterList","parameters":[],"src":"1652:2:0"},"returnParameters":{"id":63,"nodeType":"ParameterList","parameters":[{"constant":false,"id":62,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":67,"src":"1684:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":61,"name":"address","nodeType":"ElementaryTypeName","src":"1684:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1683:9:0"},"scope":147,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":84,"nodeType":"FunctionDefinition","src":"1796:162:0","nodes":[],"body":{"id":83,"nodeType":"Block","src":"1841:117:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":71,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67,"src":"1855:5:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":72,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1855:7:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":73,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":263,"src":"1866:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":74,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1866:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1855:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82,"nodeType":"IfStatement","src":"1851:101:0","trueBody":{"id":81,"nodeType":"Block","src":"1880:72:0","statements":[{"errorCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":77,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":263,"src":"1928:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":78,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1928:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76,"name":"OwnableUnauthorizedAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"1901:26:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":79,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1901:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":80,"nodeType":"RevertStatement","src":"1894:47:0"}]}}]},"documentation":{"id":68,"nodeType":"StructuredDocumentation","src":"1729:62:0","text":" @dev Throws if the sender is not the owner."},"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1805:11:0","parameters":{"id":69,"nodeType":"ParameterList","parameters":[],"src":"1816:2:0"},"returnParameters":{"id":70,"nodeType":"ParameterList","parameters":[],"src":"1841:0:0"},"scope":147,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":98,"nodeType":"FunctionDefinition","src":"2293:101:0","nodes":[],"body":{"id":97,"nodeType":"Block","src":"2347:47:0","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":93,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2384:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":92,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2376:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":91,"name":"address","nodeType":"ElementaryTypeName","src":"2376:7:0","typeDescriptions":{}}},"id":94,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2376:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":90,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"2357:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":95,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2357:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":96,"nodeType":"ExpressionStatement","src":"2357:30:0"}]},"documentation":{"id":85,"nodeType":"StructuredDocumentation","src":"1964:324:0","text":" @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner."},"functionSelector":"715018a6","implemented":true,"kind":"function","modifiers":[{"id":88,"kind":"modifierInvocation","modifierName":{"id":87,"name":"onlyOwner","nameLocations":["2337:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":58,"src":"2337:9:0"},"nodeType":"ModifierInvocation","src":"2337:9:0"}],"name":"renounceOwnership","nameLocation":"2302:17:0","parameters":{"id":86,"nodeType":"ParameterList","parameters":[],"src":"2319:2:0"},"returnParameters":{"id":89,"nodeType":"ParameterList","parameters":[],"src":"2347:0:0"},"scope":147,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":126,"nodeType":"FunctionDefinition","src":"2543:215:0","nodes":[],"body":{"id":125,"nodeType":"Block","src":"2613:145:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":106,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101,"src":"2627:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2647:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":108,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2639:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":107,"name":"address","nodeType":"ElementaryTypeName","src":"2639:7:0","typeDescriptions":{}}},"id":110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2639:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2627:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":120,"nodeType":"IfStatement","src":"2623:91:0","trueBody":{"id":119,"nodeType":"Block","src":"2651:63:0","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2700:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2692:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":113,"name":"address","nodeType":"ElementaryTypeName","src":"2692:7:0","typeDescriptions":{}}},"id":116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2692:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":112,"name":"OwnableInvalidOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18,"src":"2672:19:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2672:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":118,"nodeType":"RevertStatement","src":"2665:38:0"}]}},{"expression":{"arguments":[{"id":122,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101,"src":"2742:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":121,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"2723:18:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2723:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":124,"nodeType":"ExpressionStatement","src":"2723:28:0"}]},"documentation":{"id":99,"nodeType":"StructuredDocumentation","src":"2400:138:0","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","implemented":true,"kind":"function","modifiers":[{"id":104,"kind":"modifierInvocation","modifierName":{"id":103,"name":"onlyOwner","nameLocations":["2603:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":58,"src":"2603:9:0"},"nodeType":"ModifierInvocation","src":"2603:9:0"}],"name":"transferOwnership","nameLocation":"2552:17:0","parameters":{"id":102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101,"mutability":"mutable","name":"newOwner","nameLocation":"2578:8:0","nodeType":"VariableDeclaration","scope":126,"src":"2570:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100,"name":"address","nodeType":"ElementaryTypeName","src":"2570:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2569:18:0"},"returnParameters":{"id":105,"nodeType":"ParameterList","parameters":[],"src":"2613:0:0"},"scope":147,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":146,"nodeType":"FunctionDefinition","src":"2912:187:0","nodes":[],"body":{"id":145,"nodeType":"Block","src":"2975:124:0","nodes":[],"statements":[{"assignments":[133],"declarations":[{"constant":false,"id":133,"mutability":"mutable","name":"oldOwner","nameLocation":"2993:8:0","nodeType":"VariableDeclaration","scope":145,"src":"2985:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":132,"name":"address","nodeType":"ElementaryTypeName","src":"2985:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":135,"initialValue":{"id":134,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"3004:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2985:25:0"},{"expression":{"id":138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":136,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"3020:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":137,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":129,"src":"3029:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3020:17:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":139,"nodeType":"ExpressionStatement","src":"3020:17:0"},{"eventCall":{"arguments":[{"id":141,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133,"src":"3073:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":142,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":129,"src":"3083:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":140,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24,"src":"3052:20:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3052:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":144,"nodeType":"EmitStatement","src":"3047:45:0"}]},"documentation":{"id":127,"nodeType":"StructuredDocumentation","src":"2764:143:0","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2921:18:0","parameters":{"id":130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":129,"mutability":"mutable","name":"newOwner","nameLocation":"2948:8:0","nodeType":"VariableDeclaration","scope":146,"src":"2940:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":128,"name":"address","nodeType":"ElementaryTypeName","src":"2940:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2939:18:0"},"returnParameters":{"id":131,"nodeType":"ParameterList","parameters":[],"src":"2975:0:0"},"scope":147,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":5,"name":"Context","nameLocations":["692:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":281,"src":"692:7:0"},"id":6,"nodeType":"InheritanceSpecifier","src":"692:7:0"}],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":4,"nodeType":"StructuredDocumentation","src":"175:487:0","text":" @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n The initial owner is set to the address provided by the deployer. This can\n later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."},"fullyImplemented":true,"linearizedBaseContracts":[147,281],"name":"Ownable","nameLocation":"681:7:0","scope":148,"usedErrors":[13,18],"usedEvents":[24]}],"license":"MIT"}},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"id":1,"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","id":226,"exportedSymbols":{"IERC20":[225]},"nodeType":"SourceUnit","src":"106:2675:1","nodes":[{"id":149,"nodeType":"PragmaDirective","src":"106:25:1","nodes":[],"literals":["solidity",">=","0.4",".16"]},{"id":225,"nodeType":"ContractDefinition","src":"205:2575:1","nodes":[{"id":159,"nodeType":"EventDefinition","src":"391:72:1","nodes":[],"anonymous":false,"documentation":{"id":151,"nodeType":"StructuredDocumentation","src":"228:158:1","text":" @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","name":"Transfer","nameLocation":"397:8:1","parameters":{"id":158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":153,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"422:4:1","nodeType":"VariableDeclaration","scope":159,"src":"406:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":152,"name":"address","nodeType":"ElementaryTypeName","src":"406:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":155,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"444:2:1","nodeType":"VariableDeclaration","scope":159,"src":"428:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":154,"name":"address","nodeType":"ElementaryTypeName","src":"428:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":157,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"456:5:1","nodeType":"VariableDeclaration","scope":159,"src":"448:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":156,"name":"uint256","nodeType":"ElementaryTypeName","src":"448:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"405:57:1"}},{"id":168,"nodeType":"EventDefinition","src":"622:78:1","nodes":[],"anonymous":false,"documentation":{"id":160,"nodeType":"StructuredDocumentation","src":"469:148:1","text":" @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","name":"Approval","nameLocation":"628:8:1","parameters":{"id":167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":162,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"653:5:1","nodeType":"VariableDeclaration","scope":168,"src":"637:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":161,"name":"address","nodeType":"ElementaryTypeName","src":"637:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":164,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"676:7:1","nodeType":"VariableDeclaration","scope":168,"src":"660:23:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":163,"name":"address","nodeType":"ElementaryTypeName","src":"660:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":166,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"693:5:1","nodeType":"VariableDeclaration","scope":168,"src":"685:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":165,"name":"uint256","nodeType":"ElementaryTypeName","src":"685:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"636:63:1"}},{"id":174,"nodeType":"FunctionDefinition","src":"776:55:1","nodes":[],"documentation":{"id":169,"nodeType":"StructuredDocumentation","src":"706:65:1","text":" @dev Returns the value of tokens in existence."},"functionSelector":"18160ddd","implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"785:11:1","parameters":{"id":170,"nodeType":"ParameterList","parameters":[],"src":"796:2:1"},"returnParameters":{"id":173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":172,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":174,"src":"822:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":171,"name":"uint256","nodeType":"ElementaryTypeName","src":"822:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"821:9:1"},"scope":225,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":182,"nodeType":"FunctionDefinition","src":"913:68:1","nodes":[],"documentation":{"id":175,"nodeType":"StructuredDocumentation","src":"837:71:1","text":" @dev Returns the value of tokens owned by `account`."},"functionSelector":"70a08231","implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"922:9:1","parameters":{"id":178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":177,"mutability":"mutable","name":"account","nameLocation":"940:7:1","nodeType":"VariableDeclaration","scope":182,"src":"932:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":176,"name":"address","nodeType":"ElementaryTypeName","src":"932:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"931:17:1"},"returnParameters":{"id":181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":180,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":182,"src":"972:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":179,"name":"uint256","nodeType":"ElementaryTypeName","src":"972:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"971:9:1"},"scope":225,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":192,"nodeType":"FunctionDefinition","src":"1205:69:1","nodes":[],"documentation":{"id":183,"nodeType":"StructuredDocumentation","src":"987:213:1","text":" @dev Moves a `value` amount of tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"a9059cbb","implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1214:8:1","parameters":{"id":188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":185,"mutability":"mutable","name":"to","nameLocation":"1231:2:1","nodeType":"VariableDeclaration","scope":192,"src":"1223:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":184,"name":"address","nodeType":"ElementaryTypeName","src":"1223:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":187,"mutability":"mutable","name":"value","nameLocation":"1243:5:1","nodeType":"VariableDeclaration","scope":192,"src":"1235:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":186,"name":"uint256","nodeType":"ElementaryTypeName","src":"1235:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1222:27:1"},"returnParameters":{"id":191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":190,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":192,"src":"1268:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":189,"name":"bool","nodeType":"ElementaryTypeName","src":"1268:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1267:6:1"},"scope":225,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":202,"nodeType":"FunctionDefinition","src":"1549:83:1","nodes":[],"documentation":{"id":193,"nodeType":"StructuredDocumentation","src":"1280:264:1","text":" @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."},"functionSelector":"dd62ed3e","implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1558:9:1","parameters":{"id":198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":195,"mutability":"mutable","name":"owner","nameLocation":"1576:5:1","nodeType":"VariableDeclaration","scope":202,"src":"1568:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":194,"name":"address","nodeType":"ElementaryTypeName","src":"1568:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":197,"mutability":"mutable","name":"spender","nameLocation":"1591:7:1","nodeType":"VariableDeclaration","scope":202,"src":"1583:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":196,"name":"address","nodeType":"ElementaryTypeName","src":"1583:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1567:32:1"},"returnParameters":{"id":201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":200,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":202,"src":"1623:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":199,"name":"uint256","nodeType":"ElementaryTypeName","src":"1623:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1622:9:1"},"scope":225,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":212,"nodeType":"FunctionDefinition","src":"2310:73:1","nodes":[],"documentation":{"id":203,"nodeType":"StructuredDocumentation","src":"1638:667:1","text":" @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."},"functionSelector":"095ea7b3","implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2319:7:1","parameters":{"id":208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":205,"mutability":"mutable","name":"spender","nameLocation":"2335:7:1","nodeType":"VariableDeclaration","scope":212,"src":"2327:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":204,"name":"address","nodeType":"ElementaryTypeName","src":"2327:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":207,"mutability":"mutable","name":"value","nameLocation":"2352:5:1","nodeType":"VariableDeclaration","scope":212,"src":"2344:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":206,"name":"uint256","nodeType":"ElementaryTypeName","src":"2344:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2326:32:1"},"returnParameters":{"id":211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":210,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":212,"src":"2377:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":209,"name":"bool","nodeType":"ElementaryTypeName","src":"2377:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2376:6:1"},"scope":225,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":224,"nodeType":"FunctionDefinition","src":"2691:87:1","nodes":[],"documentation":{"id":213,"nodeType":"StructuredDocumentation","src":"2389:297:1","text":" @dev Moves a `value` amount of tokens from `from` to `to` using the\n allowance mechanism. `value` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2700:12:1","parameters":{"id":220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":215,"mutability":"mutable","name":"from","nameLocation":"2721:4:1","nodeType":"VariableDeclaration","scope":224,"src":"2713:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":214,"name":"address","nodeType":"ElementaryTypeName","src":"2713:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":217,"mutability":"mutable","name":"to","nameLocation":"2735:2:1","nodeType":"VariableDeclaration","scope":224,"src":"2727:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":216,"name":"address","nodeType":"ElementaryTypeName","src":"2727:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":219,"mutability":"mutable","name":"value","nameLocation":"2747:5:1","nodeType":"VariableDeclaration","scope":224,"src":"2739:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":218,"name":"uint256","nodeType":"ElementaryTypeName","src":"2739:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2712:41:1"},"returnParameters":{"id":223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":222,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":224,"src":"2772:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":221,"name":"bool","nodeType":"ElementaryTypeName","src":"2772:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2771:6:1"},"scope":225,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":150,"nodeType":"StructuredDocumentation","src":"133:71:1","text":" @dev Interface of the ERC-20 standard as defined in the ERC."},"fullyImplemented":false,"linearizedBaseContracts":[225],"name":"IERC20","nameLocation":"215:6:1","scope":226,"usedErrors":[],"usedEvents":[159,168]}],"license":"MIT"}},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"id":2,"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","id":252,"exportedSymbols":{"IERC20":[225],"IERC20Metadata":[251]},"nodeType":"SourceUnit","src":"125:559:2","nodes":[{"id":227,"nodeType":"PragmaDirective","src":"125:24:2","nodes":[],"literals":["solidity",">=","0.6",".2"]},{"id":229,"nodeType":"ImportDirective","src":"151:37:2","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","nameLocation":"-1:-1:-1","scope":252,"sourceUnit":226,"symbolAliases":[{"foreign":{"id":228,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":225,"src":"159:6:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":251,"nodeType":"ContractDefinition","src":"278:405:2","nodes":[{"id":238,"nodeType":"FunctionDefinition","src":"378:54:2","nodes":[],"documentation":{"id":233,"nodeType":"StructuredDocumentation","src":"319:54:2","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"387:4:2","parameters":{"id":234,"nodeType":"ParameterList","parameters":[],"src":"391:2:2"},"returnParameters":{"id":237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":236,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":238,"src":"417:13:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":235,"name":"string","nodeType":"ElementaryTypeName","src":"417:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"416:15:2"},"scope":251,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":244,"nodeType":"FunctionDefinition","src":"499:56:2","nodes":[],"documentation":{"id":239,"nodeType":"StructuredDocumentation","src":"438:56:2","text":" @dev Returns the symbol of the token."},"functionSelector":"95d89b41","implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"508:6:2","parameters":{"id":240,"nodeType":"ParameterList","parameters":[],"src":"514:2:2"},"returnParameters":{"id":243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":242,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":244,"src":"540:13:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":241,"name":"string","nodeType":"ElementaryTypeName","src":"540:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"539:15:2"},"scope":251,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":250,"nodeType":"FunctionDefinition","src":"631:50:2","nodes":[],"documentation":{"id":245,"nodeType":"StructuredDocumentation","src":"561:65:2","text":" @dev Returns the decimals places of the token."},"functionSelector":"313ce567","implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"640:8:2","parameters":{"id":246,"nodeType":"ParameterList","parameters":[],"src":"648:2:2"},"returnParameters":{"id":249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":248,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":250,"src":"674:5:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":247,"name":"uint8","nodeType":"ElementaryTypeName","src":"674:5:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"673:7:2"},"scope":251,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":231,"name":"IERC20","nameLocations":["306:6:2"],"nodeType":"IdentifierPath","referencedDeclaration":225,"src":"306:6:2"},"id":232,"nodeType":"InheritanceSpecifier","src":"306:6:2"}],"canonicalName":"IERC20Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":230,"nodeType":"StructuredDocumentation","src":"190:87:2","text":" @dev Interface for the optional metadata functions from the ERC-20 standard."},"fullyImplemented":false,"linearizedBaseContracts":[251,225],"name":"IERC20Metadata","nameLocation":"288:14:2","scope":252,"usedErrors":[],"usedEvents":[159,168]}],"license":"MIT"}},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"id":3,"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Context.sol","id":282,"exportedSymbols":{"Context":[281]},"nodeType":"SourceUnit","src":"101:862:3","nodes":[{"id":253,"nodeType":"PragmaDirective","src":"101:24:3","nodes":[],"literals":["solidity","^","0.8",".20"]},{"id":281,"nodeType":"ContractDefinition","src":"624:338:3","nodes":[{"id":263,"nodeType":"FunctionDefinition","src":"656:96:3","nodes":[],"body":{"id":262,"nodeType":"Block","src":"718:34:3","nodes":[],"statements":[{"expression":{"expression":{"id":259,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"735:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"739:6:3","memberName":"sender","nodeType":"MemberAccess","src":"735:10:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":258,"id":261,"nodeType":"Return","src":"728:17:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"665:10:3","parameters":{"id":255,"nodeType":"ParameterList","parameters":[],"src":"675:2:3"},"returnParameters":{"id":258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":257,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":263,"src":"709:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":256,"name":"address","nodeType":"ElementaryTypeName","src":"709:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"708:9:3"},"scope":281,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":272,"nodeType":"FunctionDefinition","src":"758:99:3","nodes":[],"body":{"id":271,"nodeType":"Block","src":"825:32:3","nodes":[],"statements":[{"expression":{"expression":{"id":268,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"842:3:3","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"846:4:3","memberName":"data","nodeType":"MemberAccess","src":"842:8:3","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":267,"id":270,"nodeType":"Return","src":"835:15:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"767:8:3","parameters":{"id":264,"nodeType":"ParameterList","parameters":[],"src":"775:2:3"},"returnParameters":{"id":267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":272,"src":"809:14:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":265,"name":"bytes","nodeType":"ElementaryTypeName","src":"809:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"808:16:3"},"scope":281,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":280,"nodeType":"FunctionDefinition","src":"863:97:3","nodes":[],"body":{"id":279,"nodeType":"Block","src":"935:25:3","nodes":[],"statements":[{"expression":{"hexValue":"30","id":277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"952:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":276,"id":278,"nodeType":"Return","src":"945:8:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_contextSuffixLength","nameLocation":"872:20:3","parameters":{"id":273,"nodeType":"ParameterList","parameters":[],"src":"892:2:3"},"returnParameters":{"id":276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":275,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":280,"src":"926:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":274,"name":"uint256","nodeType":"ElementaryTypeName","src":"926:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"925:9:3"},"scope":281,"stateMutability":"view","virtual":true,"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":254,"nodeType":"StructuredDocumentation","src":"127:496:3","text":" @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."},"fullyImplemented":true,"linearizedBaseContracts":[281],"name":"Context","nameLocation":"642:7:3","scope":282,"usedErrors":[],"usedEvents":[]}],"license":"MIT"}},"lib/wallet-contracts-v3/src/modules/Payload.sol":{"id":4,"ast":{"absolutePath":"lib/wallet-contracts-v3/src/modules/Payload.sol","id":1044,"exportedSymbols":{"LibBytes":[1276],"Payload":[1043]},"nodeType":"SourceUnit","src":"39:10055:4","nodes":[{"id":283,"nodeType":"PragmaDirective","src":"39:24:4","nodes":[],"literals":["solidity","^","0.8",".27"]},{"id":285,"nodeType":"ImportDirective","src":"65:49:4","nodes":[],"absolutePath":"lib/wallet-contracts-v3/src/utils/LibBytes.sol","file":"../utils/LibBytes.sol","nameLocation":"-1:-1:-1","scope":1044,"sourceUnit":1277,"symbolAliases":[{"foreign":{"id":284,"name":"LibBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1276,"src":"74:8:4","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":288,"nodeType":"UsingForDirective","src":"116:25:4","nodes":[],"global":false,"libraryName":{"id":286,"name":"LibBytes","nameLocations":["122:8:4"],"nodeType":"IdentifierPath","referencedDeclaration":1276,"src":"122:8:4"},"typeName":{"id":287,"name":"bytes","nodeType":"ElementaryTypeName","src":"135:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},{"id":1043,"nodeType":"ContractDefinition","src":"275:9818:4","nodes":[{"id":294,"nodeType":"ErrorDefinition","src":"348:30:4","nodes":[],"documentation":{"id":290,"nodeType":"StructuredDocumentation","src":"296:49:4","text":"@notice Error thrown when the kind is invalid"},"errorSelector":"04818320","name":"InvalidKind","nameLocation":"354:11:4","parameters":{"id":293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":292,"mutability":"mutable","name":"kind","nameLocation":"372:4:4","nodeType":"VariableDeclaration","scope":294,"src":"366:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":291,"name":"uint8","nodeType":"ElementaryTypeName","src":"366:5:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"365:12:4"}},{"id":298,"nodeType":"VariableDeclaration","src":"489:116:4","nodes":[],"constant":true,"documentation":{"id":295,"nodeType":"StructuredDocumentation","src":"382:104:4","text":"@dev keccak256(\"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\")"},"mutability":"constant","name":"EIP712_DOMAIN_TYPEHASH","nameLocation":"514:22:4","scope":1043,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":296,"name":"bytes32","nodeType":"ElementaryTypeName","src":"489:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307838623733633363363962623866653364353132656363346366373539636337393233396637623137396230666661636161396137356435323262333934303066","id":297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"539:66:4","typeDescriptions":{"typeIdentifier":"t_rational_63076024560530113402979550242307453568063438748328787417531900361828837441551_by_1","typeString":"int_const 6307...(69 digits omitted)...1551"},"value":"0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f"},"visibility":"private"},{"id":302,"nodeType":"VariableDeclaration","src":"650:125:4","nodes":[],"constant":true,"documentation":{"id":299,"nodeType":"StructuredDocumentation","src":"610:37:4","text":"@dev keccak256(\"Sequence Wallet\")"},"mutability":"constant","name":"EIP712_DOMAIN_NAME_SEQUENCE","nameLocation":"675:27:4","scope":1043,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":300,"name":"bytes32","nodeType":"ElementaryTypeName","src":"650:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307834616134356361376164383235636562316266333536343366306135386332393532333964663536336231623536356332343835663936343737633536333138","id":301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"709:66:4","typeDescriptions":{"typeIdentifier":"t_rational_33761553195033020586580595614607192138595268542657526595243609892281397895960_by_1","typeString":"int_const 3376...(69 digits omitted)...5960"},"value":"0x4aa45ca7ad825ceb1bf35643f0a58c295239df563b1b565c2485f96477c56318"},"visibility":"private"},{"id":306,"nodeType":"VariableDeclaration","src":"806:128:4","nodes":[],"constant":true,"documentation":{"id":303,"nodeType":"StructuredDocumentation","src":"780:23:4","text":"@dev keccak256(\"3\")"},"mutability":"constant","name":"EIP712_DOMAIN_VERSION_SEQUENCE","nameLocation":"831:30:4","scope":1043,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":304,"name":"bytes32","nodeType":"ElementaryTypeName","src":"806:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307832613830653165663164373834326632376632653662653039373262623730386239613133356333383836306462653733633237633334383663333466346465","id":305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"868:66:4","typeDescriptions":{"typeIdentifier":"t_rational_19224855404247632006917173431419498680506051063941070371722880450128577361118_by_1","typeString":"int_const 1922...(69 digits omitted)...1118"},"value":"0x2a80e1ef1d7842f27f2e6be0972bb708b9a135c38860dbe73c27c3486c34f4de"},"visibility":"private"},{"id":337,"nodeType":"FunctionDefinition","src":"939:351:4","nodes":[],"body":{"id":336,"nodeType":"Block","src":"1047:243:4","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":318,"name":"EIP712_DOMAIN_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":298,"src":"1097:22:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":319,"name":"EIP712_DOMAIN_NAME_SEQUENCE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":302,"src":"1129:27:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":320,"name":"EIP712_DOMAIN_VERSION_SEQUENCE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":306,"src":"1166:30:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"condition":{"id":321,"name":"_noChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":308,"src":"1206:10:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"expression":{"id":328,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1240:5:4","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1246:7:4","memberName":"chainid","nodeType":"MemberAccess","src":"1240:13:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":327,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1232:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":326,"name":"uint256","nodeType":"ElementaryTypeName","src":"1232:7:4","typeDescriptions":{}}},"id":330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1232:22:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1206:48:4","trueExpression":{"arguments":[{"hexValue":"30","id":324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1227:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":323,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1219:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":322,"name":"uint256","nodeType":"ElementaryTypeName","src":"1219:7:4","typeDescriptions":{}}},"id":325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1219:10:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":332,"name":"_wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":310,"src":"1264:7:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":316,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1077:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":317,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1081:6:4","memberName":"encode","nodeType":"MemberAccess","src":"1077:10:4","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1077:202:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":315,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1060:9:4","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1060:225:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":314,"id":335,"nodeType":"Return","src":"1053:232:4"}]},"implemented":true,"kind":"function","modifiers":[],"name":"domainSeparator","nameLocation":"948:15:4","parameters":{"id":311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":308,"mutability":"mutable","name":"_noChainId","nameLocation":"969:10:4","nodeType":"VariableDeclaration","scope":337,"src":"964:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":307,"name":"bool","nodeType":"ElementaryTypeName","src":"964:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":310,"mutability":"mutable","name":"_wallet","nameLocation":"989:7:4","nodeType":"VariableDeclaration","scope":337,"src":"981:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":309,"name":"address","nodeType":"ElementaryTypeName","src":"981:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"963:34:4"},"returnParameters":{"id":314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":313,"mutability":"mutable","name":"_domainSeparator","nameLocation":"1029:16:4","nodeType":"VariableDeclaration","scope":337,"src":"1021:24:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":312,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1021:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1020:26:4"},"scope":1043,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":341,"nodeType":"VariableDeclaration","src":"1437:107:4","nodes":[],"constant":true,"documentation":{"id":338,"nodeType":"StructuredDocumentation","src":"1294:140:4","text":"@dev keccak256(\"Call(address to,uint256 value,bytes data,uint256 gasLimit,bool delegateCall,bool onlyFallback,uint256 behaviorOnError)\")"},"mutability":"constant","name":"CALL_TYPEHASH","nameLocation":"1462:13:4","scope":1043,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":339,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1437:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307830363033393835323539613935336461316636356135323266353839633137626431643031313765633164336162623763303738386165663235316566343337","id":340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1478:66:4","typeDescriptions":{"typeIdentifier":"t_rational_2720228918296723626360963932407871369705396312253585537199823977844291073079_by_1","typeString":"int_const 2720...(68 digits omitted)...3079"},"value":"0x0603985259a953da1f65a522f589c17bd1d0117ec1d3abb7c0788aef251ef437"},"visibility":"private"},{"id":345,"nodeType":"VariableDeclaration","src":"1757:108:4","nodes":[],"constant":true,"documentation":{"id":342,"nodeType":"StructuredDocumentation","src":"1549:205:4","text":"@dev keccak256(\"Calls(Call[] calls,uint256 space,uint256 nonce,address[] wallets)Call(address to,uint256 value,bytes data,uint256 gasLimit,bool delegateCall,bool onlyFallback,uint256 behaviorOnError)\")"},"mutability":"constant","name":"CALLS_TYPEHASH","nameLocation":"1782:14:4","scope":1043,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":343,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1757:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307831316531653430373961373961363665346164653530303333636665323637386364643533343164326466653565663935313365646231613062653134376132","id":344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1799:66:4","typeDescriptions":{"typeIdentifier":"t_rational_8088432818645496868949845499382202138579422833748228835324246952328244053922_by_1","typeString":"int_const 8088...(68 digits omitted)...3922"},"value":"0x11e1e4079a79a66e4ade50033cfe2678cdd5341d2dfe5ef9513edb1a0be147a2"},"visibility":"private"},{"id":349,"nodeType":"VariableDeclaration","src":"1935:110:4","nodes":[],"constant":true,"documentation":{"id":346,"nodeType":"StructuredDocumentation","src":"1870:62:4","text":"@dev keccak256(\"Message(bytes message,address[] wallets)\")"},"mutability":"constant","name":"MESSAGE_TYPEHASH","nameLocation":"1960:16:4","scope":1043,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":347,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1935:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307865313961336239346663336337656365336638393064393861393962633432323631353533376130386465613036303366613834323538363764383764343636","id":348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1979:66:4","typeDescriptions":{"typeIdentifier":"t_rational_102042896598880959789982557965414717533526188977275095176186987427015590138982_by_1","typeString":"int_const 1020...(70 digits omitted)...8982"},"value":"0xe19a3b94fc3c7ece3f890d98a99bc422615537a08dea0603fa8425867d87d466"},"visibility":"private"},{"id":353,"nodeType":"VariableDeclaration","src":"2124:116:4","nodes":[],"constant":true,"documentation":{"id":350,"nodeType":"StructuredDocumentation","src":"2050:71:4","text":"@dev keccak256(\"ConfigUpdate(bytes32 imageHash,address[] wallets)\")"},"mutability":"constant","name":"CONFIG_UPDATE_TYPEHASH","nameLocation":"2149:22:4","scope":1043,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":351,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2124:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307831316664656237653833373361316161393662666163386430656139313532366232633564313565356365653230653035343365373830323538663365386534","id":352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2174:66:4","typeDescriptions":{"typeIdentifier":"t_rational_8137956054492713933634491153494727094918514662285841049577704819443807545572_by_1","typeString":"int_const 8137...(68 digits omitted)...5572"},"value":"0x11fdeb7e8373a1aa96bfac8d0ea91526b2c5d15e5cee20e0543e780258f3e8e4"},"visibility":"private"},{"id":357,"nodeType":"VariableDeclaration","src":"2279:46:4","nodes":[],"constant":true,"documentation":{"id":354,"nodeType":"StructuredDocumentation","src":"2245:31:4","text":"@notice Kind of transaction"},"functionSelector":"075a3d2d","mutability":"constant","name":"KIND_TRANSACTIONS","nameLocation":"2301:17:4","scope":1043,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":355,"name":"uint8","nodeType":"ElementaryTypeName","src":"2279:5:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30783030","id":356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2321:4:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"public"},{"id":361,"nodeType":"VariableDeclaration","src":"2358:41:4","nodes":[],"constant":true,"documentation":{"id":358,"nodeType":"StructuredDocumentation","src":"2329:26:4","text":"@notice Kind of digest"},"functionSelector":"3d5c1f9b","mutability":"constant","name":"KIND_MESSAGE","nameLocation":"2380:12:4","scope":1043,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":359,"name":"uint8","nodeType":"ElementaryTypeName","src":"2358:5:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30783031","id":360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2395:4:4","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"},"visibility":"public"},{"id":365,"nodeType":"VariableDeclaration","src":"2439:47:4","nodes":[],"constant":true,"documentation":{"id":362,"nodeType":"StructuredDocumentation","src":"2403:33:4","text":"@notice Kind of config update"},"functionSelector":"0739d59a","mutability":"constant","name":"KIND_CONFIG_UPDATE","nameLocation":"2461:18:4","scope":1043,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":363,"name":"uint8","nodeType":"ElementaryTypeName","src":"2439:5:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30783032","id":364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2482:4:4","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"0x02"},"visibility":"public"},{"id":369,"nodeType":"VariableDeclaration","src":"2520:40:4","nodes":[],"constant":true,"documentation":{"id":366,"nodeType":"StructuredDocumentation","src":"2490:27:4","text":"@notice Kind of message"},"functionSelector":"b570180a","mutability":"constant","name":"KIND_DIGEST","nameLocation":"2542:11:4","scope":1043,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":367,"name":"uint8","nodeType":"ElementaryTypeName","src":"2520:5:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30783033","id":368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2556:4:4","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"0x03"},"visibility":"public"},{"id":373,"nodeType":"VariableDeclaration","src":"2611:50:4","nodes":[],"constant":true,"documentation":{"id":370,"nodeType":"StructuredDocumentation","src":"2565:43:4","text":"@notice Behavior on error: ignore error"},"functionSelector":"4a7d2aa0","mutability":"constant","name":"BEHAVIOR_IGNORE_ERROR","nameLocation":"2633:21:4","scope":1043,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":371,"name":"uint8","nodeType":"ElementaryTypeName","src":"2611:5:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30783030","id":372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2657:4:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"public"},{"id":377,"nodeType":"VariableDeclaration","src":"2714:53:4","nodes":[],"constant":true,"documentation":{"id":374,"nodeType":"StructuredDocumentation","src":"2665:46:4","text":"@notice Behavior on error: revert on error"},"functionSelector":"4e5f5715","mutability":"constant","name":"BEHAVIOR_REVERT_ON_ERROR","nameLocation":"2736:24:4","scope":1043,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":375,"name":"uint8","nodeType":"ElementaryTypeName","src":"2714:5:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30783031","id":376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2763:4:4","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"},"visibility":"public"},{"id":381,"nodeType":"VariableDeclaration","src":"2819:52:4","nodes":[],"constant":true,"documentation":{"id":378,"nodeType":"StructuredDocumentation","src":"2771:45:4","text":"@notice Behavior on error: abort on error"},"functionSelector":"420b0c25","mutability":"constant","name":"BEHAVIOR_ABORT_ON_ERROR","nameLocation":"2841:23:4","scope":1043,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":379,"name":"uint8","nodeType":"ElementaryTypeName","src":"2819:5:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30783032","id":380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2867:4:4","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"0x02"},"visibility":"public"},{"id":397,"nodeType":"StructDefinition","src":"3286:165:4","nodes":[],"canonicalName":"Payload.Call","documentation":{"id":382,"nodeType":"StructuredDocumentation","src":"2876:407:4","text":"@notice Payload call information\n @param to Address of the target contract\n @param value Value to send with the call\n @param data Data to send with the call\n @param gasLimit Gas limit for the call\n @param delegateCall If the call is a delegate call\n @param onlyFallback If the call should only be executed in an error scenario\n @param behaviorOnError Behavior on error"},"members":[{"constant":false,"id":384,"mutability":"mutable","name":"to","nameLocation":"3312:2:4","nodeType":"VariableDeclaration","scope":397,"src":"3304:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":383,"name":"address","nodeType":"ElementaryTypeName","src":"3304:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":386,"mutability":"mutable","name":"value","nameLocation":"3328:5:4","nodeType":"VariableDeclaration","scope":397,"src":"3320:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":385,"name":"uint256","nodeType":"ElementaryTypeName","src":"3320:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":388,"mutability":"mutable","name":"data","nameLocation":"3345:4:4","nodeType":"VariableDeclaration","scope":397,"src":"3339:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":387,"name":"bytes","nodeType":"ElementaryTypeName","src":"3339:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":390,"mutability":"mutable","name":"gasLimit","nameLocation":"3363:8:4","nodeType":"VariableDeclaration","scope":397,"src":"3355:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":389,"name":"uint256","nodeType":"ElementaryTypeName","src":"3355:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":392,"mutability":"mutable","name":"delegateCall","nameLocation":"3382:12:4","nodeType":"VariableDeclaration","scope":397,"src":"3377:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":391,"name":"bool","nodeType":"ElementaryTypeName","src":"3377:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":394,"mutability":"mutable","name":"onlyFallback","nameLocation":"3405:12:4","nodeType":"VariableDeclaration","scope":397,"src":"3400:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":393,"name":"bool","nodeType":"ElementaryTypeName","src":"3400:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":396,"mutability":"mutable","name":"behaviorOnError","nameLocation":"3431:15:4","nodeType":"VariableDeclaration","scope":397,"src":"3423:23:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":395,"name":"uint256","nodeType":"ElementaryTypeName","src":"3423:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Call","nameLocation":"3293:4:4","scope":1043,"visibility":"public"},{"id":420,"nodeType":"StructDefinition","src":"3976:323:4","nodes":[],"canonicalName":"Payload.Decoded","documentation":{"id":398,"nodeType":"StructuredDocumentation","src":"3455:518:4","text":"@notice Decoded payload\n @param kind Kind of payload\n @param noChainId If the chain ID should be omitted\n @param calls Array of calls (transaction kind)\n @param space Nonce space for the calls (transaction kind)\n @param nonce Nonce value for the calls (transaction kind)\n @param message Message to validate (message kind)\n @param imageHash Image hash to update to (config update kind)\n @param digest Digest to validate (digest kind)\n @param parentWallets Parent wallets"},"members":[{"constant":false,"id":400,"mutability":"mutable","name":"kind","nameLocation":"4003:4:4","nodeType":"VariableDeclaration","scope":420,"src":"3997:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":399,"name":"uint8","nodeType":"ElementaryTypeName","src":"3997:5:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":402,"mutability":"mutable","name":"noChainId","nameLocation":"4018:9:4","nodeType":"VariableDeclaration","scope":420,"src":"4013:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":401,"name":"bool","nodeType":"ElementaryTypeName","src":"4013:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":406,"mutability":"mutable","name":"calls","nameLocation":"4064:5:4","nodeType":"VariableDeclaration","scope":420,"src":"4057:12:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$397_storage_$dyn_storage_ptr","typeString":"struct Payload.Call[]"},"typeName":{"baseType":{"id":404,"nodeType":"UserDefinedTypeName","pathNode":{"id":403,"name":"Call","nameLocations":["4057:4:4"],"nodeType":"IdentifierPath","referencedDeclaration":397,"src":"4057:4:4"},"referencedDeclaration":397,"src":"4057:4:4","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$397_storage_ptr","typeString":"struct Payload.Call"}},"id":405,"nodeType":"ArrayTypeName","src":"4057:6:4","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$397_storage_$dyn_storage_ptr","typeString":"struct Payload.Call[]"}},"visibility":"internal"},{"constant":false,"id":408,"mutability":"mutable","name":"space","nameLocation":"4083:5:4","nodeType":"VariableDeclaration","scope":420,"src":"4075:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":407,"name":"uint256","nodeType":"ElementaryTypeName","src":"4075:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":410,"mutability":"mutable","name":"nonce","nameLocation":"4102:5:4","nodeType":"VariableDeclaration","scope":420,"src":"4094:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":409,"name":"uint256","nodeType":"ElementaryTypeName","src":"4094:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":412,"mutability":"mutable","name":"message","nameLocation":"4139:7:4","nodeType":"VariableDeclaration","scope":420,"src":"4133:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":411,"name":"bytes","nodeType":"ElementaryTypeName","src":"4133:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":414,"mutability":"mutable","name":"imageHash","nameLocation":"4186:9:4","nodeType":"VariableDeclaration","scope":420,"src":"4178:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":413,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4178:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":416,"mutability":"mutable","name":"digest","nameLocation":"4237:6:4","nodeType":"VariableDeclaration","scope":420,"src":"4229:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":415,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4229:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":419,"mutability":"mutable","name":"parentWallets","nameLocation":"4281:13:4","nodeType":"VariableDeclaration","scope":420,"src":"4271:23:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":417,"name":"address","nodeType":"ElementaryTypeName","src":"4271:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":418,"nodeType":"ArrayTypeName","src":"4271:9:4","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"name":"Decoded","nameLocation":"3983:7:4","scope":1043,"visibility":"public"},{"id":441,"nodeType":"FunctionDefinition","src":"4303:170:4","nodes":[],"body":{"id":440,"nodeType":"Block","src":"4402:71:4","nodes":[],"statements":[{"expression":{"id":432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":428,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":426,"src":"4408:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}},"id":430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4417:4:4","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":400,"src":"4408:13:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":431,"name":"KIND_MESSAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":361,"src":"4424:12:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4408:28:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":433,"nodeType":"ExpressionStatement","src":"4408:28:4"},{"expression":{"id":438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":434,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":426,"src":"4442:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}},"id":436,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4451:7:4","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":412,"src":"4442:16:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":437,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":422,"src":"4461:7:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"4442:26:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":439,"nodeType":"ExpressionStatement","src":"4442:26:4"}]},"implemented":true,"kind":"function","modifiers":[],"name":"fromMessage","nameLocation":"4312:11:4","parameters":{"id":423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":422,"mutability":"mutable","name":"message","nameLocation":"4342:7:4","nodeType":"VariableDeclaration","scope":441,"src":"4329:20:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":421,"name":"bytes","nodeType":"ElementaryTypeName","src":"4329:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4323:30:4"},"returnParameters":{"id":427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":426,"mutability":"mutable","name":"_decoded","nameLocation":"4392:8:4","nodeType":"VariableDeclaration","scope":441,"src":"4377:23:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded"},"typeName":{"id":425,"nodeType":"UserDefinedTypeName","pathNode":{"id":424,"name":"Decoded","nameLocations":["4377:7:4"],"nodeType":"IdentifierPath","referencedDeclaration":420,"src":"4377:7:4"},"referencedDeclaration":420,"src":"4377:7:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_storage_ptr","typeString":"struct Payload.Decoded"}},"visibility":"internal"}],"src":"4376:25:4"},"scope":1043,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":462,"nodeType":"FunctionDefinition","src":"4477:182:4","nodes":[],"body":{"id":461,"nodeType":"Block","src":"4578:81:4","nodes":[],"statements":[{"expression":{"id":453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":449,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":447,"src":"4584:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}},"id":451,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4593:4:4","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":400,"src":"4584:13:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":452,"name":"KIND_CONFIG_UPDATE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":365,"src":"4600:18:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4584:34:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":454,"nodeType":"ExpressionStatement","src":"4584:34:4"},{"expression":{"id":459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":455,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":447,"src":"4624:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}},"id":457,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4633:9:4","memberName":"imageHash","nodeType":"MemberAccess","referencedDeclaration":414,"src":"4624:18:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":458,"name":"imageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":443,"src":"4645:9:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4624:30:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":460,"nodeType":"ExpressionStatement","src":"4624:30:4"}]},"implemented":true,"kind":"function","modifiers":[],"name":"fromConfigUpdate","nameLocation":"4486:16:4","parameters":{"id":444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":443,"mutability":"mutable","name":"imageHash","nameLocation":"4516:9:4","nodeType":"VariableDeclaration","scope":462,"src":"4508:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":442,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4508:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4502:27:4"},"returnParameters":{"id":448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":447,"mutability":"mutable","name":"_decoded","nameLocation":"4568:8:4","nodeType":"VariableDeclaration","scope":462,"src":"4553:23:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded"},"typeName":{"id":446,"nodeType":"UserDefinedTypeName","pathNode":{"id":445,"name":"Decoded","nameLocations":["4553:7:4"],"nodeType":"IdentifierPath","referencedDeclaration":420,"src":"4553:7:4"},"referencedDeclaration":420,"src":"4553:7:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_storage_ptr","typeString":"struct Payload.Decoded"}},"visibility":"internal"}],"src":"4552:25:4"},"scope":1043,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":483,"nodeType":"FunctionDefinition","src":"4663:160:4","nodes":[],"body":{"id":482,"nodeType":"Block","src":"4755:68:4","nodes":[],"statements":[{"expression":{"id":474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":470,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":468,"src":"4761:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}},"id":472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4770:4:4","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":400,"src":"4761:13:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":473,"name":"KIND_DIGEST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":369,"src":"4777:11:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4761:27:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":475,"nodeType":"ExpressionStatement","src":"4761:27:4"},{"expression":{"id":480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":476,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":468,"src":"4794:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}},"id":478,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4803:6:4","memberName":"digest","nodeType":"MemberAccess","referencedDeclaration":416,"src":"4794:15:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":479,"name":"digest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":464,"src":"4812:6:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4794:24:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":481,"nodeType":"ExpressionStatement","src":"4794:24:4"}]},"implemented":true,"kind":"function","modifiers":[],"name":"fromDigest","nameLocation":"4672:10:4","parameters":{"id":465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":464,"mutability":"mutable","name":"digest","nameLocation":"4696:6:4","nodeType":"VariableDeclaration","scope":483,"src":"4688:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":463,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4688:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4682:24:4"},"returnParameters":{"id":469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":468,"mutability":"mutable","name":"_decoded","nameLocation":"4745:8:4","nodeType":"VariableDeclaration","scope":483,"src":"4730:23:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded"},"typeName":{"id":467,"nodeType":"UserDefinedTypeName","pathNode":{"id":466,"name":"Decoded","nameLocations":["4730:7:4"],"nodeType":"IdentifierPath","referencedDeclaration":420,"src":"4730:7:4"},"referencedDeclaration":420,"src":"4730:7:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_storage_ptr","typeString":"struct Payload.Decoded"}},"visibility":"internal"}],"src":"4729:25:4"},"scope":1043,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":788,"nodeType":"FunctionDefinition","src":"4827:2701:4","nodes":[],"body":{"id":787,"nodeType":"Block","src":"4931:2597:4","nodes":[],"statements":[{"expression":{"id":495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":491,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":489,"src":"4937:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}},"id":493,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4946:4:4","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":400,"src":"4937:13:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":494,"name":"KIND_TRANSACTIONS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":357,"src":"4953:17:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4937:33:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":496,"nodeType":"ExpressionStatement","src":"4937:33:4"},{"assignments":[498,500],"declarations":[{"constant":false,"id":498,"mutability":"mutable","name":"globalFlag","nameLocation":"5014:10:4","nodeType":"VariableDeclaration","scope":787,"src":"5006:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":497,"name":"uint256","nodeType":"ElementaryTypeName","src":"5006:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":500,"mutability":"mutable","name":"pointer","nameLocation":"5034:7:4","nodeType":"VariableDeclaration","scope":787,"src":"5026:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":499,"name":"uint256","nodeType":"ElementaryTypeName","src":"5026:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":504,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":501,"name":"packed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":485,"src":"5045:6:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5052:14:4","memberName":"readFirstUint8","nodeType":"MemberAccess","referencedDeclaration":1086,"src":"5045:21:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_uint8_$_t_uint256_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata) pure returns (uint8,uint256)"}},"id":503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5045:23:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_uint256_$","typeString":"tuple(uint8,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"5005:63:4"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":505,"name":"globalFlag","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":498,"src":"5131:10:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30783031","id":506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5144:4:4","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"},"src":"5131:17:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30783031","id":508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5152:4:4","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"},"src":"5131:25:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":528,"nodeType":"Block","src":"5197:70:4","statements":[{"expression":{"id":526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"expression":{"id":517,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":489,"src":"5206:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}},"id":519,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5215:5:4","memberName":"space","nodeType":"MemberAccess","referencedDeclaration":408,"src":"5206:14:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":520,"name":"pointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":500,"src":"5222:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":521,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"5205:25:4","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":524,"name":"pointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":500,"src":"5252:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":522,"name":"packed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":485,"src":"5233:6:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5240:11:4","memberName":"readUint160","nodeType":"MemberAccess","referencedDeclaration":1151,"src":"5233:18:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint256_$returns$_t_uint160_$_t_uint256_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata,uint256) pure returns (uint160,uint256)"}},"id":525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5233:27:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint160_$_t_uint256_$","typeString":"tuple(uint160,uint256)"}},"src":"5205:55:4","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":527,"nodeType":"ExpressionStatement","src":"5205:55:4"}]},"id":529,"nodeType":"IfStatement","src":"5127:140:4","trueBody":{"id":516,"nodeType":"Block","src":"5158:33:4","statements":[{"expression":{"id":514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":510,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":489,"src":"5166:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}},"id":512,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5175:5:4","memberName":"space","nodeType":"MemberAccess","referencedDeclaration":408,"src":"5166:14:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5183:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5166:18:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":515,"nodeType":"ExpressionStatement","src":"5166:18:4"}]}},{"assignments":[531],"declarations":[{"constant":false,"id":531,"mutability":"mutable","name":"nonceSize","nameLocation":"5332:9:4","nodeType":"VariableDeclaration","scope":787,"src":"5324:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":530,"name":"uint256","nodeType":"ElementaryTypeName","src":"5324:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":538,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":532,"name":"globalFlag","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":498,"src":"5345:10:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5359:1:4","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5345:15:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":535,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5344:17:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30783037","id":536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5364:4:4","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"0x07"},"src":"5344:24:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5324:44:4"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":539,"name":"nonceSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":531,"src":"5379:9:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5391:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5379:13:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":555,"nodeType":"IfStatement","src":"5375:122:4","trueBody":{"id":554,"nodeType":"Block","src":"5394:103:4","statements":[{"expression":{"id":552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"expression":{"id":542,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":489,"src":"5427:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}},"id":544,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5436:5:4","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":410,"src":"5427:14:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":545,"name":"pointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":500,"src":"5443:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":546,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"5426:25:4","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":549,"name":"pointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":500,"src":"5471:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":550,"name":"nonceSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":531,"src":"5480:9:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":547,"name":"packed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":485,"src":"5454:6:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5461:9:4","memberName":"readUintX","nodeType":"MemberAccess","referencedDeclaration":1179,"src":"5454:16:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata,uint256,uint256) pure returns (uint256,uint256)"}},"id":551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5454:36:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"5426:64:4","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":553,"nodeType":"ExpressionStatement","src":"5426:64:4"}]}},{"assignments":[557],"declarations":[{"constant":false,"id":557,"mutability":"mutable","name":"numCalls","nameLocation":"5511:8:4","nodeType":"VariableDeclaration","scope":787,"src":"5503:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":556,"name":"uint256","nodeType":"ElementaryTypeName","src":"5503:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":558,"nodeType":"VariableDeclarationStatement","src":"5503:16:4"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":559,"name":"globalFlag","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":498,"src":"5590:10:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30783130","id":560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5603:4:4","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"0x10"},"src":"5590:17:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30783130","id":562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5611:4:4","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"0x10"},"src":"5590:25:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":595,"nodeType":"Block","src":"5650:256:4","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":569,"name":"globalFlag","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":498,"src":"5734:10:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30783230","id":570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5747:4:4","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"0x20"},"src":"5734:17:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30783230","id":572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5755:4:4","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"0x20"},"src":"5734:25:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":593,"nodeType":"Block","src":"5834:66:4","statements":[{"expression":{"id":591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":584,"name":"numCalls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":557,"src":"5845:8:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":585,"name":"pointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":500,"src":"5855:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":586,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"5844:19:4","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":589,"name":"pointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":500,"src":"5883:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":587,"name":"packed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":485,"src":"5866:6:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5873:9:4","memberName":"readUint8","nodeType":"MemberAccess","referencedDeclaration":1099,"src":"5866:16:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint256_$returns$_t_uint8_$_t_uint256_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata,uint256) pure returns (uint8,uint256)"}},"id":590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5866:25:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_uint256_$","typeString":"tuple(uint8,uint256)"}},"src":"5844:47:4","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":592,"nodeType":"ExpressionStatement","src":"5844:47:4"}]},"id":594,"nodeType":"IfStatement","src":"5730:170:4","trueBody":{"id":583,"nodeType":"Block","src":"5761:67:4","statements":[{"expression":{"id":581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":574,"name":"numCalls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":557,"src":"5772:8:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":575,"name":"pointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":500,"src":"5782:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":576,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"5771:19:4","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":579,"name":"pointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":500,"src":"5811:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":577,"name":"packed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":485,"src":"5793:6:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5800:10:4","memberName":"readUint16","nodeType":"MemberAccess","referencedDeclaration":1112,"src":"5793:17:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint256_$returns$_t_uint16_$_t_uint256_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata,uint256) pure returns (uint16,uint256)"}},"id":580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5793:26:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint16_$_t_uint256_$","typeString":"tuple(uint16,uint256)"}},"src":"5771:48:4","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":582,"nodeType":"ExpressionStatement","src":"5771:48:4"}]}}]},"id":596,"nodeType":"IfStatement","src":"5586:320:4","trueBody":{"id":568,"nodeType":"Block","src":"5617:27:4","statements":[{"expression":{"id":566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":564,"name":"numCalls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":557,"src":"5625:8:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5636:1:4","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5625:12:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":567,"nodeType":"ExpressionStatement","src":"5625:12:4"}]}},{"expression":{"id":606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":597,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":489,"src":"5934:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}},"id":599,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5943:5:4","memberName":"calls","nodeType":"MemberAccess","referencedDeclaration":406,"src":"5934:14:4","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$397_memory_ptr_$dyn_memory_ptr","typeString":"struct Payload.Call memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":604,"name":"numCalls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":557,"src":"5962:8:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5951:10:4","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Call_$397_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct Payload.Call memory[] memory)"},"typeName":{"baseType":{"id":601,"nodeType":"UserDefinedTypeName","pathNode":{"id":600,"name":"Call","nameLocations":["5955:4:4"],"nodeType":"IdentifierPath","referencedDeclaration":397,"src":"5955:4:4"},"referencedDeclaration":397,"src":"5955:4:4","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$397_storage_ptr","typeString":"struct Payload.Call"}},"id":602,"nodeType":"ArrayTypeName","src":"5955:6:4","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$397_storage_$dyn_storage_ptr","typeString":"struct Payload.Call[]"}}},"id":605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5951:20:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$397_memory_ptr_$dyn_memory_ptr","typeString":"struct Payload.Call memory[] memory"}},"src":"5934:37:4","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$397_memory_ptr_$dyn_memory_ptr","typeString":"struct Payload.Call memory[] memory"}},"id":607,"nodeType":"ExpressionStatement","src":"5934:37:4"},{"body":{"id":785,"nodeType":"Block","src":"6017:1507:4","statements":[{"assignments":[619],"declarations":[{"constant":false,"id":619,"mutability":"mutable","name":"flags","nameLocation":"6031:5:4","nodeType":"VariableDeclaration","scope":785,"src":"6025:11:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":618,"name":"uint8","nodeType":"ElementaryTypeName","src":"6025:5:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":620,"nodeType":"VariableDeclarationStatement","src":"6025:11:4"},{"expression":{"id":628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":621,"name":"flags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":619,"src":"6045:5:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":622,"name":"pointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":500,"src":"6052:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":623,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"6044:16:4","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_uint256_$","typeString":"tuple(uint8,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":626,"name":"pointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":500,"src":"6080:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":624,"name":"packed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":485,"src":"6063:6:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6070:9:4","memberName":"readUint8","nodeType":"MemberAccess","referencedDeclaration":1099,"src":"6063:16:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint256_$returns$_t_uint8_$_t_uint256_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata,uint256) pure returns (uint8,uint256)"}},"id":627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6063:25:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint8_$_t_uint256_$","typeString":"tuple(uint8,uint256)"}},"src":"6044:44:4","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":629,"nodeType":"ExpressionStatement","src":"6044:44:4"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":630,"name":"flags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":619,"src":"6195:5:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30783031","id":631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6203:4:4","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"},"src":"6195:12:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30783031","id":633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6211:4:4","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"},"src":"6195:20:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":662,"nodeType":"Block","src":"6302:115:4","statements":[{"expression":{"id":660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"expression":{"baseExpression":{"expression":{"id":648,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":489,"src":"6348:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}},"id":651,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6357:5:4","memberName":"calls","nodeType":"MemberAccess","referencedDeclaration":406,"src":"6348:14:4","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$397_memory_ptr_$dyn_memory_ptr","typeString":"struct Payload.Call memory[] memory"}},"id":652,"indexExpression":{"id":650,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":609,"src":"6363:1:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6348:17:4","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$397_memory_ptr","typeString":"struct Payload.Call memory"}},"id":653,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6366:2:4","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":384,"src":"6348:20:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":654,"name":"pointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":500,"src":"6370:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":655,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"6347:31:4","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":658,"name":"pointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":500,"src":"6400:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":656,"name":"packed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":485,"src":"6381:6:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6388:11:4","memberName":"readAddress","nodeType":"MemberAccess","referencedDeclaration":1218,"src":"6381:18:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint256_$returns$_t_address_$_t_uint256_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata,uint256) pure returns (address,uint256)"}},"id":659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6381:27:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"src":"6347:61:4","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":661,"nodeType":"ExpressionStatement","src":"6347:61:4"}]},"id":663,"nodeType":"IfStatement","src":"6191:226:4","trueBody":{"id":647,"nodeType":"Block","src":"6217:79:4","statements":[{"expression":{"id":645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":635,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":489,"src":"6251:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}},"id":638,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6260:5:4","memberName":"calls","nodeType":"MemberAccess","referencedDeclaration":406,"src":"6251:14:4","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$397_memory_ptr_$dyn_memory_ptr","typeString":"struct Payload.Call memory[] memory"}},"id":639,"indexExpression":{"id":637,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":609,"src":"6266:1:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6251:17:4","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$397_memory_ptr","typeString":"struct Payload.Call memory"}},"id":640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6269:2:4","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":384,"src":"6251:20:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":643,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6282:4:4","typeDescriptions":{"typeIdentifier":"t_contract$_Payload_$1043","typeString":"library Payload"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Payload_$1043","typeString":"library Payload"}],"id":642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6274:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":641,"name":"address","nodeType":"ElementaryTypeName","src":"6274:7:4","typeDescriptions":{}}},"id":644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6274:13:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6251:36:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":646,"nodeType":"ExpressionStatement","src":"6251:36:4"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":664,"name":"flags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":619,"src":"6489:5:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30783032","id":665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6497:4:4","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"0x02"},"src":"6489:12:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30783032","id":667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6505:4:4","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"0x02"},"src":"6489:20:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":684,"nodeType":"IfStatement","src":"6485:109:4","trueBody":{"id":683,"nodeType":"Block","src":"6511:83:4","statements":[{"expression":{"id":681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"expression":{"baseExpression":{"expression":{"id":669,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":489,"src":"6522:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}},"id":672,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6531:5:4","memberName":"calls","nodeType":"MemberAccess","referencedDeclaration":406,"src":"6522:14:4","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$397_memory_ptr_$dyn_memory_ptr","typeString":"struct Payload.Call memory[] memory"}},"id":673,"indexExpression":{"id":671,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":609,"src":"6537:1:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6522:17:4","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$397_memory_ptr","typeString":"struct Payload.Call memory"}},"id":674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6540:5:4","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":386,"src":"6522:23:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":675,"name":"pointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":500,"src":"6547:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":676,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"6521:34:4","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":679,"name":"pointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":500,"src":"6577:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":677,"name":"packed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":485,"src":"6558:6:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6565:11:4","memberName":"readUint256","nodeType":"MemberAccess","referencedDeclaration":1164,"src":"6558:18:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint256_$returns$_t_uint256_$_t_uint256_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata,uint256) pure returns (uint256,uint256)"}},"id":680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6558:27:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"6521:64:4","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":682,"nodeType":"ExpressionStatement","src":"6521:64:4"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":685,"name":"flags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":619,"src":"6664:5:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30783034","id":686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6672:4:4","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"0x04"},"src":"6664:12:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30783034","id":688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6680:4:4","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"0x04"},"src":"6664:20:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":721,"nodeType":"IfStatement","src":"6660:287:4","trueBody":{"id":720,"nodeType":"Block","src":"6686:261:4","statements":[{"assignments":[691],"declarations":[{"constant":false,"id":691,"mutability":"mutable","name":"calldataSize","nameLocation":"6758:12:4","nodeType":"VariableDeclaration","scope":720,"src":"6750:20:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":690,"name":"uint256","nodeType":"ElementaryTypeName","src":"6750:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":692,"nodeType":"VariableDeclarationStatement","src":"6750:20:4"},{"expression":{"id":700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":693,"name":"calldataSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":691,"src":"6781:12:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":694,"name":"pointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":500,"src":"6795:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":695,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"6780:23:4","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":698,"name":"pointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":500,"src":"6824:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":696,"name":"packed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":485,"src":"6806:6:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6813:10:4","memberName":"readUint24","nodeType":"MemberAccess","referencedDeclaration":1125,"src":"6806:17:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint256_$returns$_t_uint24_$_t_uint256_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata,uint256) pure returns (uint24,uint256)"}},"id":699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6806:26:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint24_$_t_uint256_$","typeString":"tuple(uint24,uint256)"}},"src":"6780:52:4","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":701,"nodeType":"ExpressionStatement","src":"6780:52:4"},{"expression":{"id":714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":702,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":489,"src":"6842:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}},"id":705,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6851:5:4","memberName":"calls","nodeType":"MemberAccess","referencedDeclaration":406,"src":"6842:14:4","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$397_memory_ptr_$dyn_memory_ptr","typeString":"struct Payload.Call memory[] memory"}},"id":706,"indexExpression":{"id":704,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":609,"src":"6857:1:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6842:17:4","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$397_memory_ptr","typeString":"struct Payload.Call memory"}},"id":707,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6860:4:4","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":388,"src":"6842:22:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":708,"name":"packed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":485,"src":"6867:6:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":710,"name":"pointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":500,"src":"6882:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":711,"name":"calldataSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":691,"src":"6892:12:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6882:22:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"6867:38:4","startExpression":{"id":709,"name":"pointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":500,"src":"6874:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}},"src":"6842:63:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":715,"nodeType":"ExpressionStatement","src":"6842:63:4"},{"expression":{"id":718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":716,"name":"pointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":500,"src":"6915:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":717,"name":"calldataSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":691,"src":"6926:12:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6915:23:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":719,"nodeType":"ExpressionStatement","src":"6915:23:4"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":722,"name":"flags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":619,"src":"7025:5:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30783038","id":723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7033:4:4","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"0x08"},"src":"7025:12:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30783038","id":725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7041:4:4","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"0x08"},"src":"7025:20:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":742,"nodeType":"IfStatement","src":"7021:112:4","trueBody":{"id":741,"nodeType":"Block","src":"7047:86:4","statements":[{"expression":{"id":739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"expression":{"baseExpression":{"expression":{"id":727,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":489,"src":"7058:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}},"id":730,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7067:5:4","memberName":"calls","nodeType":"MemberAccess","referencedDeclaration":406,"src":"7058:14:4","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$397_memory_ptr_$dyn_memory_ptr","typeString":"struct Payload.Call memory[] memory"}},"id":731,"indexExpression":{"id":729,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":609,"src":"7073:1:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7058:17:4","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$397_memory_ptr","typeString":"struct Payload.Call memory"}},"id":732,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7076:8:4","memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":390,"src":"7058:26:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":733,"name":"pointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":500,"src":"7086:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":734,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"7057:37:4","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":737,"name":"pointer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":500,"src":"7116:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":735,"name":"packed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":485,"src":"7097:6:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7104:11:4","memberName":"readUint256","nodeType":"MemberAccess","referencedDeclaration":1164,"src":"7097:18:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint256_$returns$_t_uint256_$_t_uint256_$attached_to$_t_bytes_calldata_ptr_$","typeString":"function (bytes calldata,uint256) pure returns (uint256,uint256)"}},"id":738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7097:27:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"7057:67:4","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":740,"nodeType":"ExpressionStatement","src":"7057:67:4"}]}},{"expression":{"id":755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":743,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":489,"src":"7209:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}},"id":746,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7218:5:4","memberName":"calls","nodeType":"MemberAccess","referencedDeclaration":406,"src":"7209:14:4","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$397_memory_ptr_$dyn_memory_ptr","typeString":"struct Payload.Call memory[] memory"}},"id":747,"indexExpression":{"id":745,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":609,"src":"7224:1:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7209:17:4","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$397_memory_ptr","typeString":"struct Payload.Call memory"}},"id":748,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7227:12:4","memberName":"delegateCall","nodeType":"MemberAccess","referencedDeclaration":392,"src":"7209:30:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":749,"name":"flags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":619,"src":"7243:5:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30783130","id":750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7251:4:4","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"0x10"},"src":"7243:12:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30783130","id":752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7259:4:4","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"0x10"},"src":"7243:20:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":754,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7242:22:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7209:55:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":756,"nodeType":"ExpressionStatement","src":"7209:55:4"},{"expression":{"id":769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":757,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":489,"src":"7332:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}},"id":760,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7341:5:4","memberName":"calls","nodeType":"MemberAccess","referencedDeclaration":406,"src":"7332:14:4","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$397_memory_ptr_$dyn_memory_ptr","typeString":"struct Payload.Call memory[] memory"}},"id":761,"indexExpression":{"id":759,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":609,"src":"7347:1:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7332:17:4","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$397_memory_ptr","typeString":"struct Payload.Call memory"}},"id":762,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7350:12:4","memberName":"onlyFallback","nodeType":"MemberAccess","referencedDeclaration":394,"src":"7332:30:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":763,"name":"flags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":619,"src":"7366:5:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30783230","id":764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7374:4:4","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"0x20"},"src":"7366:12:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30783230","id":766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7382:4:4","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"0x20"},"src":"7366:20:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":768,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7365:22:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7332:55:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":770,"nodeType":"ExpressionStatement","src":"7332:55:4"},{"expression":{"id":783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"expression":{"id":771,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":489,"src":"7462:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}},"id":774,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7471:5:4","memberName":"calls","nodeType":"MemberAccess","referencedDeclaration":406,"src":"7462:14:4","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$397_memory_ptr_$dyn_memory_ptr","typeString":"struct Payload.Call memory[] memory"}},"id":775,"indexExpression":{"id":773,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":609,"src":"7477:1:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7462:17:4","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$397_memory_ptr","typeString":"struct Payload.Call memory"}},"id":776,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7480:15:4","memberName":"behaviorOnError","nodeType":"MemberAccess","referencedDeclaration":396,"src":"7462:33:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":777,"name":"flags","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":619,"src":"7499:5:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30784330","id":778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7507:4:4","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"0xC0"},"src":"7499:12:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":780,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7498:14:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"36","id":781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7516:1:4","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"7498:19:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"7462:55:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":784,"nodeType":"ExpressionStatement","src":"7462:55:4"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":612,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":609,"src":"5998:1:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":613,"name":"numCalls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":557,"src":"6002:8:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5998:12:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":786,"initializationExpression":{"assignments":[609],"declarations":[{"constant":false,"id":609,"mutability":"mutable","name":"i","nameLocation":"5991:1:4","nodeType":"VariableDeclaration","scope":786,"src":"5983:9:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":608,"name":"uint256","nodeType":"ElementaryTypeName","src":"5983:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":611,"initialValue":{"hexValue":"30","id":610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5995:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5983:13:4"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6012:3:4","subExpression":{"id":615,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":609,"src":"6012:1:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":617,"nodeType":"ExpressionStatement","src":"6012:3:4"},"nodeType":"ForStatement","src":"5978:1546:4"}]},"implemented":true,"kind":"function","modifiers":[],"name":"fromPackedCalls","nameLocation":"4836:15:4","parameters":{"id":486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":485,"mutability":"mutable","name":"packed","nameLocation":"4872:6:4","nodeType":"VariableDeclaration","scope":788,"src":"4857:21:4","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":484,"name":"bytes","nodeType":"ElementaryTypeName","src":"4857:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4851:31:4"},"returnParameters":{"id":490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":489,"mutability":"mutable","name":"_decoded","nameLocation":"4921:8:4","nodeType":"VariableDeclaration","scope":788,"src":"4906:23:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded"},"typeName":{"id":488,"nodeType":"UserDefinedTypeName","pathNode":{"id":487,"name":"Decoded","nameLocations":["4906:7:4"],"nodeType":"IdentifierPath","referencedDeclaration":420,"src":"4906:7:4"},"referencedDeclaration":420,"src":"4906:7:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_storage_ptr","typeString":"struct Payload.Decoded"}},"visibility":"internal"}],"src":"4905:25:4"},"scope":1043,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":820,"nodeType":"FunctionDefinition","src":"7532:252:4","nodes":[],"body":{"id":819,"nodeType":"Block","src":"7605:179:4","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":799,"name":"CALL_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":341,"src":"7655:13:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":800,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":791,"src":"7670:1:4","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$397_memory_ptr","typeString":"struct Payload.Call memory"}},"id":801,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7672:2:4","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":384,"src":"7670:4:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":802,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":791,"src":"7676:1:4","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$397_memory_ptr","typeString":"struct Payload.Call memory"}},"id":803,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7678:5:4","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":386,"src":"7676:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"expression":{"id":805,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":791,"src":"7695:1:4","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$397_memory_ptr","typeString":"struct Payload.Call memory"}},"id":806,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7697:4:4","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":388,"src":"7695:6:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":804,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7685:9:4","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7685:17:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":808,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":791,"src":"7704:1:4","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$397_memory_ptr","typeString":"struct Payload.Call memory"}},"id":809,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7706:8:4","memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":390,"src":"7704:10:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":810,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":791,"src":"7716:1:4","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$397_memory_ptr","typeString":"struct Payload.Call memory"}},"id":811,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7718:12:4","memberName":"delegateCall","nodeType":"MemberAccess","referencedDeclaration":392,"src":"7716:14:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":812,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":791,"src":"7732:1:4","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$397_memory_ptr","typeString":"struct Payload.Call memory"}},"id":813,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7734:12:4","memberName":"onlyFallback","nodeType":"MemberAccess","referencedDeclaration":394,"src":"7732:14:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":814,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":791,"src":"7748:1:4","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$397_memory_ptr","typeString":"struct Payload.Call memory"}},"id":815,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7750:15:4","memberName":"behaviorOnError","nodeType":"MemberAccess","referencedDeclaration":396,"src":"7748:17:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":797,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7635:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":798,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7639:6:4","memberName":"encode","nodeType":"MemberAccess","src":"7635:10:4","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7635:138:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":796,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7618:9:4","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7618:161:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":795,"id":818,"nodeType":"Return","src":"7611:168:4"}]},"implemented":true,"kind":"function","modifiers":[],"name":"hashCall","nameLocation":"7541:8:4","parameters":{"id":792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":791,"mutability":"mutable","name":"c","nameLocation":"7567:1:4","nodeType":"VariableDeclaration","scope":820,"src":"7555:13:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$397_memory_ptr","typeString":"struct Payload.Call"},"typeName":{"id":790,"nodeType":"UserDefinedTypeName","pathNode":{"id":789,"name":"Call","nameLocations":["7555:4:4"],"nodeType":"IdentifierPath","referencedDeclaration":397,"src":"7555:4:4"},"referencedDeclaration":397,"src":"7555:4:4","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$397_storage_ptr","typeString":"struct Payload.Call"}},"visibility":"internal"}],"src":"7549:23:4"},"returnParameters":{"id":795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":794,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":820,"src":"7596:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":793,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7596:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7595:9:4"},"scope":1043,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":872,"nodeType":"FunctionDefinition","src":"7788:454:4","nodes":[],"body":{"id":871,"nodeType":"Block","src":"7868:374:4","nodes":[],"statements":[{"assignments":[833],"declarations":[{"constant":false,"id":833,"mutability":"mutable","name":"callHashes","nameLocation":"8048:10:4","nodeType":"VariableDeclaration","scope":871,"src":"8031:27:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":831,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8031:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":832,"nodeType":"ArrayTypeName","src":"8031:9:4","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":840,"initialValue":{"arguments":[{"expression":{"id":837,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":824,"src":"8075:5:4","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$397_memory_ptr_$dyn_memory_ptr","typeString":"struct Payload.Call memory[] memory"}},"id":838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8081:6:4","memberName":"length","nodeType":"MemberAccess","src":"8075:12:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8061:13:4","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":834,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8065:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":835,"nodeType":"ArrayTypeName","src":"8065:9:4","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8061:27:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"8031:57:4"},{"body":{"id":862,"nodeType":"Block","src":"8137:49:4","statements":[{"expression":{"id":860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":852,"name":"callHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":833,"src":"8145:10:4","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":854,"indexExpression":{"id":853,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":842,"src":"8156:1:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8145:13:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":856,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":824,"src":"8170:5:4","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$397_memory_ptr_$dyn_memory_ptr","typeString":"struct Payload.Call memory[] memory"}},"id":858,"indexExpression":{"id":857,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":842,"src":"8176:1:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8170:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$397_memory_ptr","typeString":"struct Payload.Call memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Call_$397_memory_ptr","typeString":"struct Payload.Call memory"}],"id":855,"name":"hashCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":820,"src":"8161:8:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Call_$397_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Payload.Call memory) pure returns (bytes32)"}},"id":859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8161:18:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"8145:34:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":861,"nodeType":"ExpressionStatement","src":"8145:34:4"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":845,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":842,"src":"8114:1:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":846,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":824,"src":"8118:5:4","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$397_memory_ptr_$dyn_memory_ptr","typeString":"struct Payload.Call memory[] memory"}},"id":847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8124:6:4","memberName":"length","nodeType":"MemberAccess","src":"8118:12:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8114:16:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":863,"initializationExpression":{"assignments":[842],"declarations":[{"constant":false,"id":842,"mutability":"mutable","name":"i","nameLocation":"8107:1:4","nodeType":"VariableDeclaration","scope":863,"src":"8099:9:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":841,"name":"uint256","nodeType":"ElementaryTypeName","src":"8099:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":844,"initialValue":{"hexValue":"30","id":843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8111:1:4","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8099:13:4"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8132:3:4","subExpression":{"id":849,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":842,"src":"8132:1:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":851,"nodeType":"ExpressionStatement","src":"8132:3:4"},"nodeType":"ForStatement","src":"8094:92:4"},{"expression":{"arguments":[{"arguments":[{"id":867,"name":"callHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":833,"src":"8225:10:4","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"expression":{"id":865,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8208:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":866,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8212:12:4","memberName":"encodePacked","nodeType":"MemberAccess","src":"8208:16:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8208:28:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":864,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8198:9:4","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8198:39:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":828,"id":870,"nodeType":"Return","src":"8191:46:4"}]},"implemented":true,"kind":"function","modifiers":[],"name":"hashCalls","nameLocation":"7797:9:4","parameters":{"id":825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":824,"mutability":"mutable","name":"calls","nameLocation":"7826:5:4","nodeType":"VariableDeclaration","scope":872,"src":"7812:19:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$397_memory_ptr_$dyn_memory_ptr","typeString":"struct Payload.Call[]"},"typeName":{"baseType":{"id":822,"nodeType":"UserDefinedTypeName","pathNode":{"id":821,"name":"Call","nameLocations":["7812:4:4"],"nodeType":"IdentifierPath","referencedDeclaration":397,"src":"7812:4:4"},"referencedDeclaration":397,"src":"7812:4:4","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$397_storage_ptr","typeString":"struct Payload.Call"}},"id":823,"nodeType":"ArrayTypeName","src":"7812:6:4","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$397_storage_$dyn_storage_ptr","typeString":"struct Payload.Call[]"}},"visibility":"internal"}],"src":"7806:29:4"},"returnParameters":{"id":828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":827,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":872,"src":"7859:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":826,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7859:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7858:9:4"},"scope":1043,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":973,"nodeType":"FunctionDefinition","src":"8246:1282:4","nodes":[],"body":{"id":972,"nodeType":"Block","src":"8329:1199:4","nodes":[],"statements":[{"assignments":[881],"declarations":[{"constant":false,"id":881,"mutability":"mutable","name":"walletsHash","nameLocation":"8343:11:4","nodeType":"VariableDeclaration","scope":972,"src":"8335:19:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":880,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8335:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":889,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":885,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":875,"src":"8384:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}},"id":886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8393:13:4","memberName":"parentWallets","nodeType":"MemberAccess","referencedDeclaration":419,"src":"8384:22:4","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":883,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8367:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8371:12:4","memberName":"encodePacked","nodeType":"MemberAccess","src":"8367:16:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8367:40:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":882,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8357:9:4","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8357:51:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8335:73:4"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":890,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":875,"src":"8419:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}},"id":891,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8428:4:4","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":400,"src":"8419:13:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":892,"name":"KIND_TRANSACTIONS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":357,"src":"8436:17:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"8419:34:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":915,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":875,"src":"8780:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}},"id":916,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8789:4:4","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":400,"src":"8780:13:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":917,"name":"KIND_MESSAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":361,"src":"8797:12:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"8780:29:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":932,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":875,"src":"9015:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}},"id":933,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9024:4:4","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":400,"src":"9015:13:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":934,"name":"KIND_CONFIG_UPDATE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":365,"src":"9032:18:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9015:35:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":947,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":875,"src":"9234:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}},"id":948,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9243:4:4","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":400,"src":"9234:13:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":949,"name":"KIND_DIGEST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":369,"src":"9251:11:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9234:28:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":967,"nodeType":"Block","src":"9454:70:4","statements":[{"errorCall":{"arguments":[{"expression":{"id":963,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":875,"src":"9503:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}},"id":964,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9512:4:4","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":400,"src":"9503:13:4","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":962,"name":"InvalidKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":294,"src":"9491:11:4","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$returns$_t_error_$","typeString":"function (uint8) pure returns (error)"}},"id":965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9491:26:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":966,"nodeType":"RevertStatement","src":"9484:33:4"}]},"id":968,"nodeType":"IfStatement","src":"9230:294:4","trueBody":{"id":961,"nodeType":"Block","src":"9264:184:4","statements":[{"expression":{"arguments":[{"arguments":[{"id":954,"name":"MESSAGE_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":349,"src":"9393:16:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":955,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":875,"src":"9411:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}},"id":956,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9420:6:4","memberName":"digest","nodeType":"MemberAccess","referencedDeclaration":416,"src":"9411:15:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":957,"name":"walletsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":881,"src":"9428:11:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":952,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9382:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9386:6:4","memberName":"encode","nodeType":"MemberAccess","src":"9382:10:4","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9382:58:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":951,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9372:9:4","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9372:69:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":879,"id":960,"nodeType":"Return","src":"9365:76:4"}]}},"id":969,"nodeType":"IfStatement","src":"9011:513:4","trueBody":{"id":946,"nodeType":"Block","src":"9052:172:4","statements":[{"expression":{"arguments":[{"arguments":[{"id":939,"name":"CONFIG_UPDATE_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":353,"src":"9160:22:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":940,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":875,"src":"9184:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}},"id":941,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9193:9:4","memberName":"imageHash","nodeType":"MemberAccess","referencedDeclaration":414,"src":"9184:18:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":942,"name":"walletsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":881,"src":"9204:11:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":937,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9149:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":938,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9153:6:4","memberName":"encode","nodeType":"MemberAccess","src":"9149:10:4","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9149:67:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":936,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9139:9:4","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9139:78:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":879,"id":945,"nodeType":"Return","src":"9132:85:4"}]}},"id":970,"nodeType":"IfStatement","src":"8776:748:4","trueBody":{"id":931,"nodeType":"Block","src":"8811:194:4","statements":[{"expression":{"arguments":[{"arguments":[{"id":922,"name":"MESSAGE_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":349,"src":"8938:16:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"expression":{"id":924,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":875,"src":"8966:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}},"id":925,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8975:7:4","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":412,"src":"8966:16:4","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":923,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8956:9:4","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8956:27:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":927,"name":"walletsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":881,"src":"8985:11:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":920,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8927:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":921,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8931:6:4","memberName":"encode","nodeType":"MemberAccess","src":"8927:10:4","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8927:70:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":919,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8917:9:4","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8917:81:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":879,"id":930,"nodeType":"Return","src":"8910:88:4"}]}},"id":971,"nodeType":"IfStatement","src":"8415:1109:4","trueBody":{"id":914,"nodeType":"Block","src":"8455:315:4","statements":[{"assignments":[895],"declarations":[{"constant":false,"id":895,"mutability":"mutable","name":"callsHash","nameLocation":"8471:9:4","nodeType":"VariableDeclaration","scope":914,"src":"8463:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":894,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8463:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":900,"initialValue":{"arguments":[{"expression":{"id":897,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":875,"src":"8493:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}},"id":898,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8502:5:4","memberName":"calls","nodeType":"MemberAccess","referencedDeclaration":406,"src":"8493:14:4","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$397_memory_ptr_$dyn_memory_ptr","typeString":"struct Payload.Call memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Call_$397_memory_ptr_$dyn_memory_ptr","typeString":"struct Payload.Call memory[] memory"}],"id":896,"name":"hashCalls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":872,"src":"8483:9:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_Call_$397_memory_ptr_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Payload.Call memory[] memory) pure returns (bytes32)"}},"id":899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8483:25:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8463:45:4"},{"expression":{"arguments":[{"arguments":[{"id":904,"name":"CALLS_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":345,"src":"8691:14:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":905,"name":"callsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":895,"src":"8707:9:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":906,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":875,"src":"8718:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}},"id":907,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8727:5:4","memberName":"space","nodeType":"MemberAccess","referencedDeclaration":408,"src":"8718:14:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":908,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":875,"src":"8734:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}},"id":909,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8743:5:4","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":410,"src":"8734:14:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":910,"name":"walletsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":881,"src":"8750:11:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":902,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8680:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":903,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8684:6:4","memberName":"encode","nodeType":"MemberAccess","src":"8680:10:4","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8680:82:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":901,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8670:9:4","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8670:93:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":879,"id":913,"nodeType":"Return","src":"8663:100:4"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"toEIP712","nameLocation":"8255:8:4","parameters":{"id":876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":875,"mutability":"mutable","name":"_decoded","nameLocation":"8284:8:4","nodeType":"VariableDeclaration","scope":973,"src":"8269:23:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded"},"typeName":{"id":874,"nodeType":"UserDefinedTypeName","pathNode":{"id":873,"name":"Decoded","nameLocations":["8269:7:4"],"nodeType":"IdentifierPath","referencedDeclaration":420,"src":"8269:7:4"},"referencedDeclaration":420,"src":"8269:7:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_storage_ptr","typeString":"struct Payload.Decoded"}},"visibility":"internal"}],"src":"8263:33:4"},"returnParameters":{"id":879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":878,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":973,"src":"8320:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":877,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8320:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8319:9:4"},"scope":1043,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1008,"nodeType":"FunctionDefinition","src":"9532:274:4","nodes":[],"body":{"id":1007,"nodeType":"Block","src":"9611:195:4","nodes":[],"statements":[{"assignments":[982],"declarations":[{"constant":false,"id":982,"mutability":"mutable","name":"domain","nameLocation":"9625:6:4","nodeType":"VariableDeclaration","scope":1007,"src":"9617:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":981,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9617:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":991,"initialValue":{"arguments":[{"expression":{"id":984,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":976,"src":"9650:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}},"id":985,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9659:9:4","memberName":"noChainId","nodeType":"MemberAccess","referencedDeclaration":402,"src":"9650:18:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":988,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"9678:4:4","typeDescriptions":{"typeIdentifier":"t_contract$_Payload_$1043","typeString":"library Payload"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Payload_$1043","typeString":"library Payload"}],"id":987,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9670:7:4","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":986,"name":"address","nodeType":"ElementaryTypeName","src":"9670:7:4","typeDescriptions":{}}},"id":989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9670:13:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"id":983,"name":"domainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"9634:15:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bool_$_t_address_$returns$_t_bytes32_$","typeString":"function (bool,address) view returns (bytes32)"}},"id":990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9634:50:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9617:67:4"},{"assignments":[993],"declarations":[{"constant":false,"id":993,"mutability":"mutable","name":"structHash","nameLocation":"9698:10:4","nodeType":"VariableDeclaration","scope":1007,"src":"9690:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":992,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9690:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":997,"initialValue":{"arguments":[{"id":995,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":976,"src":"9720:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}],"id":994,"name":"toEIP712","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"9711:8:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Decoded_$420_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Payload.Decoded memory) pure returns (bytes32)"}},"id":996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9711:18:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9690:39:4"},{"expression":{"arguments":[{"arguments":[{"hexValue":"1901","id":1001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9769:10:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},"value":"\u0019\u0001"},{"id":1002,"name":"domain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":982,"src":"9781:6:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1003,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":993,"src":"9789:10:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":999,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9752:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1000,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9756:12:4","memberName":"encodePacked","nodeType":"MemberAccess","src":"9752:16:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9752:48:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":998,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"9742:9:4","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9742:59:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":980,"id":1006,"nodeType":"Return","src":"9735:66:4"}]},"implemented":true,"kind":"function","modifiers":[],"name":"hash","nameLocation":"9541:4:4","parameters":{"id":977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":976,"mutability":"mutable","name":"_decoded","nameLocation":"9566:8:4","nodeType":"VariableDeclaration","scope":1008,"src":"9551:23:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded"},"typeName":{"id":975,"nodeType":"UserDefinedTypeName","pathNode":{"id":974,"name":"Decoded","nameLocations":["9551:7:4"],"nodeType":"IdentifierPath","referencedDeclaration":420,"src":"9551:7:4"},"referencedDeclaration":420,"src":"9551:7:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_storage_ptr","typeString":"struct Payload.Decoded"}},"visibility":"internal"}],"src":"9545:33:4"},"returnParameters":{"id":980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":979,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1008,"src":"9602:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":978,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9602:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9601:9:4"},"scope":1043,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":1042,"nodeType":"FunctionDefinition","src":"9810:280:4","nodes":[],"body":{"id":1041,"nodeType":"Block","src":"9901:189:4","nodes":[],"statements":[{"assignments":[1019],"declarations":[{"constant":false,"id":1019,"mutability":"mutable","name":"domain","nameLocation":"9915:6:4","nodeType":"VariableDeclaration","scope":1041,"src":"9907:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1018,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9907:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1025,"initialValue":{"arguments":[{"expression":{"id":1021,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1011,"src":"9940:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}},"id":1022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9949:9:4","memberName":"noChainId","nodeType":"MemberAccess","referencedDeclaration":402,"src":"9940:18:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":1023,"name":"_wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1013,"src":"9960:7:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1020,"name":"domainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"9924:15:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bool_$_t_address_$returns$_t_bytes32_$","typeString":"function (bool,address) view returns (bytes32)"}},"id":1024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9924:44:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9907:61:4"},{"assignments":[1027],"declarations":[{"constant":false,"id":1027,"mutability":"mutable","name":"structHash","nameLocation":"9982:10:4","nodeType":"VariableDeclaration","scope":1041,"src":"9974:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1026,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9974:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1031,"initialValue":{"arguments":[{"id":1029,"name":"_decoded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1011,"src":"10004:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded memory"}],"id":1028,"name":"toEIP712","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"9995:8:4","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Decoded_$420_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Payload.Decoded memory) pure returns (bytes32)"}},"id":1030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9995:18:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9974:39:4"},{"expression":{"arguments":[{"arguments":[{"hexValue":"1901","id":1035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10053:10:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},"value":"\u0019\u0001"},{"id":1036,"name":"domain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1019,"src":"10065:6:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1037,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1027,"src":"10073:10:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":1033,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10036:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1034,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10040:12:4","memberName":"encodePacked","nodeType":"MemberAccess","src":"10036:16:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10036:48:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1032,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10026:9:4","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10026:59:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1017,"id":1040,"nodeType":"Return","src":"10019:66:4"}]},"implemented":true,"kind":"function","modifiers":[],"name":"hashFor","nameLocation":"9819:7:4","parameters":{"id":1014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1011,"mutability":"mutable","name":"_decoded","nameLocation":"9842:8:4","nodeType":"VariableDeclaration","scope":1042,"src":"9827:23:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_memory_ptr","typeString":"struct Payload.Decoded"},"typeName":{"id":1010,"nodeType":"UserDefinedTypeName","pathNode":{"id":1009,"name":"Decoded","nameLocations":["9827:7:4"],"nodeType":"IdentifierPath","referencedDeclaration":420,"src":"9827:7:4"},"referencedDeclaration":420,"src":"9827:7:4","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_storage_ptr","typeString":"struct Payload.Decoded"}},"visibility":"internal"},{"constant":false,"id":1013,"mutability":"mutable","name":"_wallet","nameLocation":"9860:7:4","nodeType":"VariableDeclaration","scope":1042,"src":"9852:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1012,"name":"address","nodeType":"ElementaryTypeName","src":"9852:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9826:42:4"},"returnParameters":{"id":1017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1016,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1042,"src":"9892:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1015,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9892:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9891:9:4"},"scope":1043,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Payload","contractDependencies":[],"contractKind":"library","documentation":{"id":289,"nodeType":"StructuredDocumentation","src":"143:132:4","text":"@title Payload\n @author Agustin Aguilar, Michael Standen, William Hua\n @notice Library for encoding and decoding payloads"},"fullyImplemented":true,"linearizedBaseContracts":[1043],"name":"Payload","nameLocation":"283:7:4","scope":1044,"usedErrors":[294],"usedEvents":[]}],"license":"Apache-2.0"}},"lib/wallet-contracts-v3/src/modules/interfaces/ISapient.sol":{"id":5,"ast":{"absolutePath":"lib/wallet-contracts-v3/src/modules/interfaces/ISapient.sol","id":1073,"exportedSymbols":{"ISapient":[1060],"ISapientCompact":[1072],"Payload":[1043]},"nodeType":"SourceUnit","src":"39:1460:5","nodes":[{"id":1045,"nodeType":"PragmaDirective","src":"39:24:5","nodes":[],"literals":["solidity","^","0.8",".27"]},{"id":1047,"nodeType":"ImportDirective","src":"65:41:5","nodes":[],"absolutePath":"lib/wallet-contracts-v3/src/modules/Payload.sol","file":"../Payload.sol","nameLocation":"-1:-1:-1","scope":1073,"sourceUnit":1044,"symbolAliases":[{"foreign":{"id":1046,"name":"Payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1043,"src":"74:7:5","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1060,"nodeType":"ContractDefinition","src":"384:413:5","nodes":[{"id":1059,"nodeType":"FunctionDefinition","src":"647:147:5","nodes":[],"documentation":{"id":1049,"nodeType":"StructuredDocumentation","src":"408:236:5","text":"@notice Recovers the image hash of a given signature\n @param payload The payload to recover the signature from\n @param signature The signature to recover the image hash from\n @return imageHash The recovered image hash"},"functionSelector":"13792a4a","implemented":false,"kind":"function","modifiers":[],"name":"recoverSapientSignature","nameLocation":"656:23:5","parameters":{"id":1055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1052,"mutability":"mutable","name":"payload","nameLocation":"710:7:5","nodeType":"VariableDeclaration","scope":1059,"src":"685:32:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_calldata_ptr","typeString":"struct Payload.Decoded"},"typeName":{"id":1051,"nodeType":"UserDefinedTypeName","pathNode":{"id":1050,"name":"Payload.Decoded","nameLocations":["685:7:5","693:7:5"],"nodeType":"IdentifierPath","referencedDeclaration":420,"src":"685:15:5"},"referencedDeclaration":420,"src":"685:15:5","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_storage_ptr","typeString":"struct Payload.Decoded"}},"visibility":"internal"},{"constant":false,"id":1054,"mutability":"mutable","name":"signature","nameLocation":"738:9:5","nodeType":"VariableDeclaration","scope":1059,"src":"723:24:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1053,"name":"bytes","nodeType":"ElementaryTypeName","src":"723:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"679:72:5"},"returnParameters":{"id":1058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1057,"mutability":"mutable","name":"imageHash","nameLocation":"783:9:5","nodeType":"VariableDeclaration","scope":1059,"src":"775:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1056,"name":"bytes32","nodeType":"ElementaryTypeName","src":"775:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"774:19:5"},"scope":1060,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ISapient","contractDependencies":[],"contractKind":"interface","documentation":{"id":1048,"nodeType":"StructuredDocumentation","src":"108:276:5","text":"@title ISapient\n @author Agustin Aguilar, Michael Standen\n @notice Sapient signers take an explicit payload and return their own \"imageHash\" as result\n @dev The consumer of this signer must validate if the imageHash is valid or not, for the desired configuration"},"fullyImplemented":false,"linearizedBaseContracts":[1060],"name":"ISapient","nameLocation":"394:8:5","scope":1073,"usedErrors":[],"usedEvents":[]},{"id":1072,"nodeType":"ContractDefinition","src":"1082:416:5","nodes":[{"id":1071,"nodeType":"FunctionDefinition","src":"1359:136:5","nodes":[],"documentation":{"id":1062,"nodeType":"StructuredDocumentation","src":"1113:243:5","text":"@notice Recovers the image hash of a given signature, using a hashed payload\n @param digest The digest of the payload\n @param signature The signature to recover the image hash from\n @return imageHash The recovered image hash"},"functionSelector":"898bd921","implemented":false,"kind":"function","modifiers":[],"name":"recoverSapientSignatureCompact","nameLocation":"1368:30:5","parameters":{"id":1067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1064,"mutability":"mutable","name":"digest","nameLocation":"1412:6:5","nodeType":"VariableDeclaration","scope":1071,"src":"1404:14:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1063,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1404:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1066,"mutability":"mutable","name":"signature","nameLocation":"1439:9:5","nodeType":"VariableDeclaration","scope":1071,"src":"1424:24:5","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1065,"name":"bytes","nodeType":"ElementaryTypeName","src":"1424:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1398:54:5"},"returnParameters":{"id":1070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1069,"mutability":"mutable","name":"imageHash","nameLocation":"1484:9:5","nodeType":"VariableDeclaration","scope":1071,"src":"1476:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1068,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1476:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1475:19:5"},"scope":1072,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ISapientCompact","contractDependencies":[],"contractKind":"interface","documentation":{"id":1061,"nodeType":"StructuredDocumentation","src":"799:283:5","text":"@title ISapientCompact\n @author Agustin Aguilar, Michael Standen\n @notice Sapient signers take a compacted payload and return their own \"imageHash\" as result\n @dev The consumer of this signer must validate if the imageHash is valid or not, for the desired configuration"},"fullyImplemented":false,"linearizedBaseContracts":[1072],"name":"ISapientCompact","nameLocation":"1092:15:5","scope":1073,"usedErrors":[],"usedEvents":[]}],"license":"Apache-2.0"}},"lib/wallet-contracts-v3/src/utils/LibBytes.sol":{"id":6,"ast":{"absolutePath":"lib/wallet-contracts-v3/src/utils/LibBytes.sol","id":1277,"exportedSymbols":{"LibBytes":[1276]},"nodeType":"SourceUnit","src":"39:3970:6","nodes":[{"id":1074,"nodeType":"PragmaDirective","src":"39:24:6","nodes":[],"literals":["solidity","^","0.8",".18"]},{"id":1276,"nodeType":"ContractDefinition","src":"432:3576:6","nodes":[{"id":1086,"nodeType":"FunctionDefinition","src":"454:225:6","nodes":[],"body":{"id":1085,"nodeType":"Block","src":"560:119:6","nodes":[],"statements":[{"AST":{"nativeSrc":"575:100:6","nodeType":"YulBlock","src":"575:100:6","statements":[{"nativeSrc":"583:38:6","nodeType":"YulVariableDeclaration","src":"583:38:6","value":{"arguments":[{"name":"_data.offset","nativeSrc":"608:12:6","nodeType":"YulIdentifier","src":"608:12:6"}],"functionName":{"name":"calldataload","nativeSrc":"595:12:6","nodeType":"YulIdentifier","src":"595:12:6"},"nativeSrc":"595:26:6","nodeType":"YulFunctionCall","src":"595:26:6"},"variables":[{"name":"word","nativeSrc":"587:4:6","nodeType":"YulTypedName","src":"587:4:6","type":""}]},{"nativeSrc":"628:19:6","nodeType":"YulAssignment","src":"628:19:6","value":{"arguments":[{"kind":"number","nativeSrc":"637:3:6","nodeType":"YulLiteral","src":"637:3:6","type":"","value":"248"},{"name":"word","nativeSrc":"642:4:6","nodeType":"YulIdentifier","src":"642:4:6"}],"functionName":{"name":"shr","nativeSrc":"633:3:6","nodeType":"YulIdentifier","src":"633:3:6"},"nativeSrc":"633:14:6","nodeType":"YulFunctionCall","src":"633:14:6"},"variableNames":[{"name":"a","nativeSrc":"628:1:6","nodeType":"YulIdentifier","src":"628:1:6"}]},{"nativeSrc":"654:15:6","nodeType":"YulAssignment","src":"654:15:6","value":{"kind":"number","nativeSrc":"668:1:6","nodeType":"YulLiteral","src":"668:1:6","type":"","value":"1"},"variableNames":[{"name":"newPointer","nativeSrc":"654:10:6","nodeType":"YulIdentifier","src":"654:10:6"}]}]},"evmVersion":"prague","externalReferences":[{"declaration":1077,"isOffset":true,"isSlot":false,"src":"608:12:6","suffix":"offset","valueSize":1},{"declaration":1080,"isOffset":false,"isSlot":false,"src":"628:1:6","valueSize":1},{"declaration":1082,"isOffset":false,"isSlot":false,"src":"654:10:6","valueSize":1}],"id":1084,"nodeType":"InlineAssembly","src":"566:109:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readFirstUint8","nameLocation":"463:14:6","parameters":{"id":1078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1077,"mutability":"mutable","name":"_data","nameLocation":"498:5:6","nodeType":"VariableDeclaration","scope":1086,"src":"483:20:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1076,"name":"bytes","nodeType":"ElementaryTypeName","src":"483:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"477:30:6"},"returnParameters":{"id":1083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1080,"mutability":"mutable","name":"a","nameLocation":"537:1:6","nodeType":"VariableDeclaration","scope":1086,"src":"531:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1079,"name":"uint8","nodeType":"ElementaryTypeName","src":"531:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":1082,"mutability":"mutable","name":"newPointer","nameLocation":"548:10:6","nodeType":"VariableDeclaration","scope":1086,"src":"540:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1081,"name":"uint256","nodeType":"ElementaryTypeName","src":"540:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"530:29:6"},"scope":1276,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1099,"nodeType":"FunctionDefinition","src":"683:254:6","nodes":[],"body":{"id":1098,"nodeType":"Block","src":"792:145:6","nodes":[],"statements":[{"AST":{"nativeSrc":"807:126:6","nodeType":"YulBlock","src":"807:126:6","statements":[{"nativeSrc":"815:51:6","nodeType":"YulVariableDeclaration","src":"815:51:6","value":{"arguments":[{"arguments":[{"name":"_index","nativeSrc":"844:6:6","nodeType":"YulIdentifier","src":"844:6:6"},{"name":"_data.offset","nativeSrc":"852:12:6","nodeType":"YulIdentifier","src":"852:12:6"}],"functionName":{"name":"add","nativeSrc":"840:3:6","nodeType":"YulIdentifier","src":"840:3:6"},"nativeSrc":"840:25:6","nodeType":"YulFunctionCall","src":"840:25:6"}],"functionName":{"name":"calldataload","nativeSrc":"827:12:6","nodeType":"YulIdentifier","src":"827:12:6"},"nativeSrc":"827:39:6","nodeType":"YulFunctionCall","src":"827:39:6"},"variables":[{"name":"word","nativeSrc":"819:4:6","nodeType":"YulTypedName","src":"819:4:6","type":""}]},{"nativeSrc":"873:19:6","nodeType":"YulAssignment","src":"873:19:6","value":{"arguments":[{"kind":"number","nativeSrc":"882:3:6","nodeType":"YulLiteral","src":"882:3:6","type":"","value":"248"},{"name":"word","nativeSrc":"887:4:6","nodeType":"YulIdentifier","src":"887:4:6"}],"functionName":{"name":"shr","nativeSrc":"878:3:6","nodeType":"YulIdentifier","src":"878:3:6"},"nativeSrc":"878:14:6","nodeType":"YulFunctionCall","src":"878:14:6"},"variableNames":[{"name":"a","nativeSrc":"873:1:6","nodeType":"YulIdentifier","src":"873:1:6"}]},{"nativeSrc":"899:28:6","nodeType":"YulAssignment","src":"899:28:6","value":{"arguments":[{"name":"_index","nativeSrc":"917:6:6","nodeType":"YulIdentifier","src":"917:6:6"},{"kind":"number","nativeSrc":"925:1:6","nodeType":"YulLiteral","src":"925:1:6","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"913:3:6","nodeType":"YulIdentifier","src":"913:3:6"},"nativeSrc":"913:14:6","nodeType":"YulFunctionCall","src":"913:14:6"},"variableNames":[{"name":"newPointer","nativeSrc":"899:10:6","nodeType":"YulIdentifier","src":"899:10:6"}]}]},"evmVersion":"prague","externalReferences":[{"declaration":1088,"isOffset":true,"isSlot":false,"src":"852:12:6","suffix":"offset","valueSize":1},{"declaration":1090,"isOffset":false,"isSlot":false,"src":"844:6:6","valueSize":1},{"declaration":1090,"isOffset":false,"isSlot":false,"src":"917:6:6","valueSize":1},{"declaration":1093,"isOffset":false,"isSlot":false,"src":"873:1:6","valueSize":1},{"declaration":1095,"isOffset":false,"isSlot":false,"src":"899:10:6","valueSize":1}],"id":1097,"nodeType":"InlineAssembly","src":"798:135:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readUint8","nameLocation":"692:9:6","parameters":{"id":1091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1088,"mutability":"mutable","name":"_data","nameLocation":"717:5:6","nodeType":"VariableDeclaration","scope":1099,"src":"702:20:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1087,"name":"bytes","nodeType":"ElementaryTypeName","src":"702:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1090,"mutability":"mutable","name":"_index","nameLocation":"732:6:6","nodeType":"VariableDeclaration","scope":1099,"src":"724:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1089,"name":"uint256","nodeType":"ElementaryTypeName","src":"724:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"701:38:6"},"returnParameters":{"id":1096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1093,"mutability":"mutable","name":"a","nameLocation":"769:1:6","nodeType":"VariableDeclaration","scope":1099,"src":"763:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1092,"name":"uint8","nodeType":"ElementaryTypeName","src":"763:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":1095,"mutability":"mutable","name":"newPointer","nameLocation":"780:10:6","nodeType":"VariableDeclaration","scope":1099,"src":"772:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1094,"name":"uint256","nodeType":"ElementaryTypeName","src":"772:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"762:29:6"},"scope":1276,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1112,"nodeType":"FunctionDefinition","src":"941:256:6","nodes":[],"body":{"id":1111,"nodeType":"Block","src":"1052:145:6","nodes":[],"statements":[{"AST":{"nativeSrc":"1067:126:6","nodeType":"YulBlock","src":"1067:126:6","statements":[{"nativeSrc":"1075:51:6","nodeType":"YulVariableDeclaration","src":"1075:51:6","value":{"arguments":[{"arguments":[{"name":"_index","nativeSrc":"1104:6:6","nodeType":"YulIdentifier","src":"1104:6:6"},{"name":"_data.offset","nativeSrc":"1112:12:6","nodeType":"YulIdentifier","src":"1112:12:6"}],"functionName":{"name":"add","nativeSrc":"1100:3:6","nodeType":"YulIdentifier","src":"1100:3:6"},"nativeSrc":"1100:25:6","nodeType":"YulFunctionCall","src":"1100:25:6"}],"functionName":{"name":"calldataload","nativeSrc":"1087:12:6","nodeType":"YulIdentifier","src":"1087:12:6"},"nativeSrc":"1087:39:6","nodeType":"YulFunctionCall","src":"1087:39:6"},"variables":[{"name":"word","nativeSrc":"1079:4:6","nodeType":"YulTypedName","src":"1079:4:6","type":""}]},{"nativeSrc":"1133:19:6","nodeType":"YulAssignment","src":"1133:19:6","value":{"arguments":[{"kind":"number","nativeSrc":"1142:3:6","nodeType":"YulLiteral","src":"1142:3:6","type":"","value":"240"},{"name":"word","nativeSrc":"1147:4:6","nodeType":"YulIdentifier","src":"1147:4:6"}],"functionName":{"name":"shr","nativeSrc":"1138:3:6","nodeType":"YulIdentifier","src":"1138:3:6"},"nativeSrc":"1138:14:6","nodeType":"YulFunctionCall","src":"1138:14:6"},"variableNames":[{"name":"a","nativeSrc":"1133:1:6","nodeType":"YulIdentifier","src":"1133:1:6"}]},{"nativeSrc":"1159:28:6","nodeType":"YulAssignment","src":"1159:28:6","value":{"arguments":[{"name":"_index","nativeSrc":"1177:6:6","nodeType":"YulIdentifier","src":"1177:6:6"},{"kind":"number","nativeSrc":"1185:1:6","nodeType":"YulLiteral","src":"1185:1:6","type":"","value":"2"}],"functionName":{"name":"add","nativeSrc":"1173:3:6","nodeType":"YulIdentifier","src":"1173:3:6"},"nativeSrc":"1173:14:6","nodeType":"YulFunctionCall","src":"1173:14:6"},"variableNames":[{"name":"newPointer","nativeSrc":"1159:10:6","nodeType":"YulIdentifier","src":"1159:10:6"}]}]},"evmVersion":"prague","externalReferences":[{"declaration":1101,"isOffset":true,"isSlot":false,"src":"1112:12:6","suffix":"offset","valueSize":1},{"declaration":1103,"isOffset":false,"isSlot":false,"src":"1104:6:6","valueSize":1},{"declaration":1103,"isOffset":false,"isSlot":false,"src":"1177:6:6","valueSize":1},{"declaration":1106,"isOffset":false,"isSlot":false,"src":"1133:1:6","valueSize":1},{"declaration":1108,"isOffset":false,"isSlot":false,"src":"1159:10:6","valueSize":1}],"id":1110,"nodeType":"InlineAssembly","src":"1058:135:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readUint16","nameLocation":"950:10:6","parameters":{"id":1104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1101,"mutability":"mutable","name":"_data","nameLocation":"976:5:6","nodeType":"VariableDeclaration","scope":1112,"src":"961:20:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1100,"name":"bytes","nodeType":"ElementaryTypeName","src":"961:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1103,"mutability":"mutable","name":"_index","nameLocation":"991:6:6","nodeType":"VariableDeclaration","scope":1112,"src":"983:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1102,"name":"uint256","nodeType":"ElementaryTypeName","src":"983:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"960:38:6"},"returnParameters":{"id":1109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1106,"mutability":"mutable","name":"a","nameLocation":"1029:1:6","nodeType":"VariableDeclaration","scope":1112,"src":"1022:8:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1105,"name":"uint16","nodeType":"ElementaryTypeName","src":"1022:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1108,"mutability":"mutable","name":"newPointer","nameLocation":"1040:10:6","nodeType":"VariableDeclaration","scope":1112,"src":"1032:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1107,"name":"uint256","nodeType":"ElementaryTypeName","src":"1032:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1021:30:6"},"scope":1276,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1125,"nodeType":"FunctionDefinition","src":"1201:256:6","nodes":[],"body":{"id":1124,"nodeType":"Block","src":"1312:145:6","nodes":[],"statements":[{"AST":{"nativeSrc":"1327:126:6","nodeType":"YulBlock","src":"1327:126:6","statements":[{"nativeSrc":"1335:51:6","nodeType":"YulVariableDeclaration","src":"1335:51:6","value":{"arguments":[{"arguments":[{"name":"_index","nativeSrc":"1364:6:6","nodeType":"YulIdentifier","src":"1364:6:6"},{"name":"_data.offset","nativeSrc":"1372:12:6","nodeType":"YulIdentifier","src":"1372:12:6"}],"functionName":{"name":"add","nativeSrc":"1360:3:6","nodeType":"YulIdentifier","src":"1360:3:6"},"nativeSrc":"1360:25:6","nodeType":"YulFunctionCall","src":"1360:25:6"}],"functionName":{"name":"calldataload","nativeSrc":"1347:12:6","nodeType":"YulIdentifier","src":"1347:12:6"},"nativeSrc":"1347:39:6","nodeType":"YulFunctionCall","src":"1347:39:6"},"variables":[{"name":"word","nativeSrc":"1339:4:6","nodeType":"YulTypedName","src":"1339:4:6","type":""}]},{"nativeSrc":"1393:19:6","nodeType":"YulAssignment","src":"1393:19:6","value":{"arguments":[{"kind":"number","nativeSrc":"1402:3:6","nodeType":"YulLiteral","src":"1402:3:6","type":"","value":"232"},{"name":"word","nativeSrc":"1407:4:6","nodeType":"YulIdentifier","src":"1407:4:6"}],"functionName":{"name":"shr","nativeSrc":"1398:3:6","nodeType":"YulIdentifier","src":"1398:3:6"},"nativeSrc":"1398:14:6","nodeType":"YulFunctionCall","src":"1398:14:6"},"variableNames":[{"name":"a","nativeSrc":"1393:1:6","nodeType":"YulIdentifier","src":"1393:1:6"}]},{"nativeSrc":"1419:28:6","nodeType":"YulAssignment","src":"1419:28:6","value":{"arguments":[{"name":"_index","nativeSrc":"1437:6:6","nodeType":"YulIdentifier","src":"1437:6:6"},{"kind":"number","nativeSrc":"1445:1:6","nodeType":"YulLiteral","src":"1445:1:6","type":"","value":"3"}],"functionName":{"name":"add","nativeSrc":"1433:3:6","nodeType":"YulIdentifier","src":"1433:3:6"},"nativeSrc":"1433:14:6","nodeType":"YulFunctionCall","src":"1433:14:6"},"variableNames":[{"name":"newPointer","nativeSrc":"1419:10:6","nodeType":"YulIdentifier","src":"1419:10:6"}]}]},"evmVersion":"prague","externalReferences":[{"declaration":1114,"isOffset":true,"isSlot":false,"src":"1372:12:6","suffix":"offset","valueSize":1},{"declaration":1116,"isOffset":false,"isSlot":false,"src":"1364:6:6","valueSize":1},{"declaration":1116,"isOffset":false,"isSlot":false,"src":"1437:6:6","valueSize":1},{"declaration":1119,"isOffset":false,"isSlot":false,"src":"1393:1:6","valueSize":1},{"declaration":1121,"isOffset":false,"isSlot":false,"src":"1419:10:6","valueSize":1}],"id":1123,"nodeType":"InlineAssembly","src":"1318:135:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readUint24","nameLocation":"1210:10:6","parameters":{"id":1117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1114,"mutability":"mutable","name":"_data","nameLocation":"1236:5:6","nodeType":"VariableDeclaration","scope":1125,"src":"1221:20:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1113,"name":"bytes","nodeType":"ElementaryTypeName","src":"1221:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1116,"mutability":"mutable","name":"_index","nameLocation":"1251:6:6","nodeType":"VariableDeclaration","scope":1125,"src":"1243:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1115,"name":"uint256","nodeType":"ElementaryTypeName","src":"1243:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1220:38:6"},"returnParameters":{"id":1122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1119,"mutability":"mutable","name":"a","nameLocation":"1289:1:6","nodeType":"VariableDeclaration","scope":1125,"src":"1282:8:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":1118,"name":"uint24","nodeType":"ElementaryTypeName","src":"1282:6:6","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"},{"constant":false,"id":1121,"mutability":"mutable","name":"newPointer","nameLocation":"1300:10:6","nodeType":"VariableDeclaration","scope":1125,"src":"1292:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1120,"name":"uint256","nodeType":"ElementaryTypeName","src":"1292:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1281:30:6"},"scope":1276,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1138,"nodeType":"FunctionDefinition","src":"1461:256:6","nodes":[],"body":{"id":1137,"nodeType":"Block","src":"1572:145:6","nodes":[],"statements":[{"AST":{"nativeSrc":"1587:126:6","nodeType":"YulBlock","src":"1587:126:6","statements":[{"nativeSrc":"1595:51:6","nodeType":"YulVariableDeclaration","src":"1595:51:6","value":{"arguments":[{"arguments":[{"name":"_index","nativeSrc":"1624:6:6","nodeType":"YulIdentifier","src":"1624:6:6"},{"name":"_data.offset","nativeSrc":"1632:12:6","nodeType":"YulIdentifier","src":"1632:12:6"}],"functionName":{"name":"add","nativeSrc":"1620:3:6","nodeType":"YulIdentifier","src":"1620:3:6"},"nativeSrc":"1620:25:6","nodeType":"YulFunctionCall","src":"1620:25:6"}],"functionName":{"name":"calldataload","nativeSrc":"1607:12:6","nodeType":"YulIdentifier","src":"1607:12:6"},"nativeSrc":"1607:39:6","nodeType":"YulFunctionCall","src":"1607:39:6"},"variables":[{"name":"word","nativeSrc":"1599:4:6","nodeType":"YulTypedName","src":"1599:4:6","type":""}]},{"nativeSrc":"1653:19:6","nodeType":"YulAssignment","src":"1653:19:6","value":{"arguments":[{"kind":"number","nativeSrc":"1662:3:6","nodeType":"YulLiteral","src":"1662:3:6","type":"","value":"192"},{"name":"word","nativeSrc":"1667:4:6","nodeType":"YulIdentifier","src":"1667:4:6"}],"functionName":{"name":"shr","nativeSrc":"1658:3:6","nodeType":"YulIdentifier","src":"1658:3:6"},"nativeSrc":"1658:14:6","nodeType":"YulFunctionCall","src":"1658:14:6"},"variableNames":[{"name":"a","nativeSrc":"1653:1:6","nodeType":"YulIdentifier","src":"1653:1:6"}]},{"nativeSrc":"1679:28:6","nodeType":"YulAssignment","src":"1679:28:6","value":{"arguments":[{"name":"_index","nativeSrc":"1697:6:6","nodeType":"YulIdentifier","src":"1697:6:6"},{"kind":"number","nativeSrc":"1705:1:6","nodeType":"YulLiteral","src":"1705:1:6","type":"","value":"8"}],"functionName":{"name":"add","nativeSrc":"1693:3:6","nodeType":"YulIdentifier","src":"1693:3:6"},"nativeSrc":"1693:14:6","nodeType":"YulFunctionCall","src":"1693:14:6"},"variableNames":[{"name":"newPointer","nativeSrc":"1679:10:6","nodeType":"YulIdentifier","src":"1679:10:6"}]}]},"evmVersion":"prague","externalReferences":[{"declaration":1127,"isOffset":true,"isSlot":false,"src":"1632:12:6","suffix":"offset","valueSize":1},{"declaration":1129,"isOffset":false,"isSlot":false,"src":"1624:6:6","valueSize":1},{"declaration":1129,"isOffset":false,"isSlot":false,"src":"1697:6:6","valueSize":1},{"declaration":1132,"isOffset":false,"isSlot":false,"src":"1653:1:6","valueSize":1},{"declaration":1134,"isOffset":false,"isSlot":false,"src":"1679:10:6","valueSize":1}],"id":1136,"nodeType":"InlineAssembly","src":"1578:135:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readUint64","nameLocation":"1470:10:6","parameters":{"id":1130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1127,"mutability":"mutable","name":"_data","nameLocation":"1496:5:6","nodeType":"VariableDeclaration","scope":1138,"src":"1481:20:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1126,"name":"bytes","nodeType":"ElementaryTypeName","src":"1481:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1129,"mutability":"mutable","name":"_index","nameLocation":"1511:6:6","nodeType":"VariableDeclaration","scope":1138,"src":"1503:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1128,"name":"uint256","nodeType":"ElementaryTypeName","src":"1503:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1480:38:6"},"returnParameters":{"id":1135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1132,"mutability":"mutable","name":"a","nameLocation":"1549:1:6","nodeType":"VariableDeclaration","scope":1138,"src":"1542:8:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":1131,"name":"uint64","nodeType":"ElementaryTypeName","src":"1542:6:6","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":1134,"mutability":"mutable","name":"newPointer","nameLocation":"1560:10:6","nodeType":"VariableDeclaration","scope":1138,"src":"1552:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1133,"name":"uint256","nodeType":"ElementaryTypeName","src":"1552:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1541:30:6"},"scope":1276,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1151,"nodeType":"FunctionDefinition","src":"1721:258:6","nodes":[],"body":{"id":1150,"nodeType":"Block","src":"1834:145:6","nodes":[],"statements":[{"AST":{"nativeSrc":"1849:126:6","nodeType":"YulBlock","src":"1849:126:6","statements":[{"nativeSrc":"1857:51:6","nodeType":"YulVariableDeclaration","src":"1857:51:6","value":{"arguments":[{"arguments":[{"name":"_index","nativeSrc":"1886:6:6","nodeType":"YulIdentifier","src":"1886:6:6"},{"name":"_data.offset","nativeSrc":"1894:12:6","nodeType":"YulIdentifier","src":"1894:12:6"}],"functionName":{"name":"add","nativeSrc":"1882:3:6","nodeType":"YulIdentifier","src":"1882:3:6"},"nativeSrc":"1882:25:6","nodeType":"YulFunctionCall","src":"1882:25:6"}],"functionName":{"name":"calldataload","nativeSrc":"1869:12:6","nodeType":"YulIdentifier","src":"1869:12:6"},"nativeSrc":"1869:39:6","nodeType":"YulFunctionCall","src":"1869:39:6"},"variables":[{"name":"word","nativeSrc":"1861:4:6","nodeType":"YulTypedName","src":"1861:4:6","type":""}]},{"nativeSrc":"1915:18:6","nodeType":"YulAssignment","src":"1915:18:6","value":{"arguments":[{"kind":"number","nativeSrc":"1924:2:6","nodeType":"YulLiteral","src":"1924:2:6","type":"","value":"96"},{"name":"word","nativeSrc":"1928:4:6","nodeType":"YulIdentifier","src":"1928:4:6"}],"functionName":{"name":"shr","nativeSrc":"1920:3:6","nodeType":"YulIdentifier","src":"1920:3:6"},"nativeSrc":"1920:13:6","nodeType":"YulFunctionCall","src":"1920:13:6"},"variableNames":[{"name":"a","nativeSrc":"1915:1:6","nodeType":"YulIdentifier","src":"1915:1:6"}]},{"nativeSrc":"1940:29:6","nodeType":"YulAssignment","src":"1940:29:6","value":{"arguments":[{"name":"_index","nativeSrc":"1958:6:6","nodeType":"YulIdentifier","src":"1958:6:6"},{"kind":"number","nativeSrc":"1966:2:6","nodeType":"YulLiteral","src":"1966:2:6","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"1954:3:6","nodeType":"YulIdentifier","src":"1954:3:6"},"nativeSrc":"1954:15:6","nodeType":"YulFunctionCall","src":"1954:15:6"},"variableNames":[{"name":"newPointer","nativeSrc":"1940:10:6","nodeType":"YulIdentifier","src":"1940:10:6"}]}]},"evmVersion":"prague","externalReferences":[{"declaration":1140,"isOffset":true,"isSlot":false,"src":"1894:12:6","suffix":"offset","valueSize":1},{"declaration":1142,"isOffset":false,"isSlot":false,"src":"1886:6:6","valueSize":1},{"declaration":1142,"isOffset":false,"isSlot":false,"src":"1958:6:6","valueSize":1},{"declaration":1145,"isOffset":false,"isSlot":false,"src":"1915:1:6","valueSize":1},{"declaration":1147,"isOffset":false,"isSlot":false,"src":"1940:10:6","valueSize":1}],"id":1149,"nodeType":"InlineAssembly","src":"1840:135:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readUint160","nameLocation":"1730:11:6","parameters":{"id":1143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1140,"mutability":"mutable","name":"_data","nameLocation":"1757:5:6","nodeType":"VariableDeclaration","scope":1151,"src":"1742:20:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1139,"name":"bytes","nodeType":"ElementaryTypeName","src":"1742:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1142,"mutability":"mutable","name":"_index","nameLocation":"1772:6:6","nodeType":"VariableDeclaration","scope":1151,"src":"1764:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1141,"name":"uint256","nodeType":"ElementaryTypeName","src":"1764:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1741:38:6"},"returnParameters":{"id":1148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1145,"mutability":"mutable","name":"a","nameLocation":"1811:1:6","nodeType":"VariableDeclaration","scope":1151,"src":"1803:9:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":1144,"name":"uint160","nodeType":"ElementaryTypeName","src":"1803:7:6","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"},{"constant":false,"id":1147,"mutability":"mutable","name":"newPointer","nameLocation":"1822:10:6","nodeType":"VariableDeclaration","scope":1151,"src":"1814:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1146,"name":"uint256","nodeType":"ElementaryTypeName","src":"1814:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1802:31:6"},"scope":1276,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1164,"nodeType":"FunctionDefinition","src":"1983:226:6","nodes":[],"body":{"id":1163,"nodeType":"Block","src":"2096:113:6","nodes":[],"statements":[{"AST":{"nativeSrc":"2111:94:6","nodeType":"YulBlock","src":"2111:94:6","statements":[{"nativeSrc":"2119:44:6","nodeType":"YulAssignment","src":"2119:44:6","value":{"arguments":[{"arguments":[{"name":"_index","nativeSrc":"2141:6:6","nodeType":"YulIdentifier","src":"2141:6:6"},{"name":"_data.offset","nativeSrc":"2149:12:6","nodeType":"YulIdentifier","src":"2149:12:6"}],"functionName":{"name":"add","nativeSrc":"2137:3:6","nodeType":"YulIdentifier","src":"2137:3:6"},"nativeSrc":"2137:25:6","nodeType":"YulFunctionCall","src":"2137:25:6"}],"functionName":{"name":"calldataload","nativeSrc":"2124:12:6","nodeType":"YulIdentifier","src":"2124:12:6"},"nativeSrc":"2124:39:6","nodeType":"YulFunctionCall","src":"2124:39:6"},"variableNames":[{"name":"a","nativeSrc":"2119:1:6","nodeType":"YulIdentifier","src":"2119:1:6"}]},{"nativeSrc":"2170:29:6","nodeType":"YulAssignment","src":"2170:29:6","value":{"arguments":[{"name":"_index","nativeSrc":"2188:6:6","nodeType":"YulIdentifier","src":"2188:6:6"},{"kind":"number","nativeSrc":"2196:2:6","nodeType":"YulLiteral","src":"2196:2:6","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2184:3:6","nodeType":"YulIdentifier","src":"2184:3:6"},"nativeSrc":"2184:15:6","nodeType":"YulFunctionCall","src":"2184:15:6"},"variableNames":[{"name":"newPointer","nativeSrc":"2170:10:6","nodeType":"YulIdentifier","src":"2170:10:6"}]}]},"evmVersion":"prague","externalReferences":[{"declaration":1153,"isOffset":true,"isSlot":false,"src":"2149:12:6","suffix":"offset","valueSize":1},{"declaration":1155,"isOffset":false,"isSlot":false,"src":"2141:6:6","valueSize":1},{"declaration":1155,"isOffset":false,"isSlot":false,"src":"2188:6:6","valueSize":1},{"declaration":1158,"isOffset":false,"isSlot":false,"src":"2119:1:6","valueSize":1},{"declaration":1160,"isOffset":false,"isSlot":false,"src":"2170:10:6","valueSize":1}],"id":1162,"nodeType":"InlineAssembly","src":"2102:103:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readUint256","nameLocation":"1992:11:6","parameters":{"id":1156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1153,"mutability":"mutable","name":"_data","nameLocation":"2019:5:6","nodeType":"VariableDeclaration","scope":1164,"src":"2004:20:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1152,"name":"bytes","nodeType":"ElementaryTypeName","src":"2004:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1155,"mutability":"mutable","name":"_index","nameLocation":"2034:6:6","nodeType":"VariableDeclaration","scope":1164,"src":"2026:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1154,"name":"uint256","nodeType":"ElementaryTypeName","src":"2026:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2003:38:6"},"returnParameters":{"id":1161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1158,"mutability":"mutable","name":"a","nameLocation":"2073:1:6","nodeType":"VariableDeclaration","scope":1164,"src":"2065:9:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1157,"name":"uint256","nodeType":"ElementaryTypeName","src":"2065:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1160,"mutability":"mutable","name":"newPointer","nameLocation":"2084:10:6","nodeType":"VariableDeclaration","scope":1164,"src":"2076:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1159,"name":"uint256","nodeType":"ElementaryTypeName","src":"2076:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2064:31:6"},"scope":1276,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1179,"nodeType":"FunctionDefinition","src":"2213:380:6","nodes":[],"body":{"id":1178,"nodeType":"Block","src":"2357:236:6","nodes":[],"statements":[{"AST":{"nativeSrc":"2372:217:6","nodeType":"YulBlock","src":"2372:217:6","statements":[{"nativeSrc":"2380:51:6","nodeType":"YulVariableDeclaration","src":"2380:51:6","value":{"arguments":[{"arguments":[{"name":"_index","nativeSrc":"2409:6:6","nodeType":"YulIdentifier","src":"2409:6:6"},{"name":"_data.offset","nativeSrc":"2417:12:6","nodeType":"YulIdentifier","src":"2417:12:6"}],"functionName":{"name":"add","nativeSrc":"2405:3:6","nodeType":"YulIdentifier","src":"2405:3:6"},"nativeSrc":"2405:25:6","nodeType":"YulFunctionCall","src":"2405:25:6"}],"functionName":{"name":"calldataload","nativeSrc":"2392:12:6","nodeType":"YulIdentifier","src":"2392:12:6"},"nativeSrc":"2392:39:6","nodeType":"YulFunctionCall","src":"2392:39:6"},"variables":[{"name":"word","nativeSrc":"2384:4:6","nodeType":"YulTypedName","src":"2384:4:6","type":""}]},{"nativeSrc":"2438:38:6","nodeType":"YulVariableDeclaration","src":"2438:38:6","value":{"arguments":[{"kind":"number","nativeSrc":"2455:3:6","nodeType":"YulLiteral","src":"2455:3:6","type":"","value":"256"},{"arguments":[{"name":"_length","nativeSrc":"2464:7:6","nodeType":"YulIdentifier","src":"2464:7:6"},{"kind":"number","nativeSrc":"2473:1:6","nodeType":"YulLiteral","src":"2473:1:6","type":"","value":"8"}],"functionName":{"name":"mul","nativeSrc":"2460:3:6","nodeType":"YulIdentifier","src":"2460:3:6"},"nativeSrc":"2460:15:6","nodeType":"YulFunctionCall","src":"2460:15:6"}],"functionName":{"name":"sub","nativeSrc":"2451:3:6","nodeType":"YulIdentifier","src":"2451:3:6"},"nativeSrc":"2451:25:6","nodeType":"YulFunctionCall","src":"2451:25:6"},"variables":[{"name":"shift","nativeSrc":"2442:5:6","nodeType":"YulTypedName","src":"2442:5:6","type":""}]},{"nativeSrc":"2483:59:6","nodeType":"YulAssignment","src":"2483:59:6","value":{"arguments":[{"arguments":[{"name":"shift","nativeSrc":"2496:5:6","nodeType":"YulIdentifier","src":"2496:5:6"},{"name":"word","nativeSrc":"2503:4:6","nodeType":"YulIdentifier","src":"2503:4:6"}],"functionName":{"name":"shr","nativeSrc":"2492:3:6","nodeType":"YulIdentifier","src":"2492:3:6"},"nativeSrc":"2492:16:6","nodeType":"YulFunctionCall","src":"2492:16:6"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"2522:1:6","nodeType":"YulLiteral","src":"2522:1:6","type":"","value":"8"},{"name":"_length","nativeSrc":"2525:7:6","nodeType":"YulIdentifier","src":"2525:7:6"}],"functionName":{"name":"mul","nativeSrc":"2518:3:6","nodeType":"YulIdentifier","src":"2518:3:6"},"nativeSrc":"2518:15:6","nodeType":"YulFunctionCall","src":"2518:15:6"},{"kind":"number","nativeSrc":"2535:1:6","nodeType":"YulLiteral","src":"2535:1:6","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"2514:3:6","nodeType":"YulIdentifier","src":"2514:3:6"},"nativeSrc":"2514:23:6","nodeType":"YulFunctionCall","src":"2514:23:6"},{"kind":"number","nativeSrc":"2539:1:6","nodeType":"YulLiteral","src":"2539:1:6","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"2510:3:6","nodeType":"YulIdentifier","src":"2510:3:6"},"nativeSrc":"2510:31:6","nodeType":"YulFunctionCall","src":"2510:31:6"}],"functionName":{"name":"and","nativeSrc":"2488:3:6","nodeType":"YulIdentifier","src":"2488:3:6"},"nativeSrc":"2488:54:6","nodeType":"YulFunctionCall","src":"2488:54:6"},"variableNames":[{"name":"a","nativeSrc":"2483:1:6","nodeType":"YulIdentifier","src":"2483:1:6"}]},{"nativeSrc":"2549:34:6","nodeType":"YulAssignment","src":"2549:34:6","value":{"arguments":[{"name":"_index","nativeSrc":"2567:6:6","nodeType":"YulIdentifier","src":"2567:6:6"},{"name":"_length","nativeSrc":"2575:7:6","nodeType":"YulIdentifier","src":"2575:7:6"}],"functionName":{"name":"add","nativeSrc":"2563:3:6","nodeType":"YulIdentifier","src":"2563:3:6"},"nativeSrc":"2563:20:6","nodeType":"YulFunctionCall","src":"2563:20:6"},"variableNames":[{"name":"newPointer","nativeSrc":"2549:10:6","nodeType":"YulIdentifier","src":"2549:10:6"}]}]},"evmVersion":"prague","externalReferences":[{"declaration":1166,"isOffset":true,"isSlot":false,"src":"2417:12:6","suffix":"offset","valueSize":1},{"declaration":1168,"isOffset":false,"isSlot":false,"src":"2409:6:6","valueSize":1},{"declaration":1168,"isOffset":false,"isSlot":false,"src":"2567:6:6","valueSize":1},{"declaration":1170,"isOffset":false,"isSlot":false,"src":"2464:7:6","valueSize":1},{"declaration":1170,"isOffset":false,"isSlot":false,"src":"2525:7:6","valueSize":1},{"declaration":1170,"isOffset":false,"isSlot":false,"src":"2575:7:6","valueSize":1},{"declaration":1173,"isOffset":false,"isSlot":false,"src":"2483:1:6","valueSize":1},{"declaration":1175,"isOffset":false,"isSlot":false,"src":"2549:10:6","valueSize":1}],"id":1177,"nodeType":"InlineAssembly","src":"2363:226:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readUintX","nameLocation":"2222:9:6","parameters":{"id":1171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1166,"mutability":"mutable","name":"_data","nameLocation":"2252:5:6","nodeType":"VariableDeclaration","scope":1179,"src":"2237:20:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1165,"name":"bytes","nodeType":"ElementaryTypeName","src":"2237:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1168,"mutability":"mutable","name":"_index","nameLocation":"2271:6:6","nodeType":"VariableDeclaration","scope":1179,"src":"2263:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1167,"name":"uint256","nodeType":"ElementaryTypeName","src":"2263:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1170,"mutability":"mutable","name":"_length","nameLocation":"2291:7:6","nodeType":"VariableDeclaration","scope":1179,"src":"2283:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1169,"name":"uint256","nodeType":"ElementaryTypeName","src":"2283:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2231:71:6"},"returnParameters":{"id":1176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1173,"mutability":"mutable","name":"a","nameLocation":"2334:1:6","nodeType":"VariableDeclaration","scope":1179,"src":"2326:9:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1172,"name":"uint256","nodeType":"ElementaryTypeName","src":"2326:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1175,"mutability":"mutable","name":"newPointer","nameLocation":"2345:10:6","nodeType":"VariableDeclaration","scope":1179,"src":"2337:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1174,"name":"uint256","nodeType":"ElementaryTypeName","src":"2337:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2325:31:6"},"scope":1276,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1192,"nodeType":"FunctionDefinition","src":"2597:325:6","nodes":[],"body":{"id":1191,"nodeType":"Block","src":"2710:212:6","nodes":[],"statements":[{"AST":{"nativeSrc":"2725:193:6","nodeType":"YulBlock","src":"2725:193:6","statements":[{"nativeSrc":"2733:53:6","nodeType":"YulVariableDeclaration","src":"2733:53:6","value":{"arguments":[{"arguments":[{"name":"_pointer","nativeSrc":"2762:8:6","nodeType":"YulIdentifier","src":"2762:8:6"},{"name":"_data.offset","nativeSrc":"2772:12:6","nodeType":"YulIdentifier","src":"2772:12:6"}],"functionName":{"name":"add","nativeSrc":"2758:3:6","nodeType":"YulIdentifier","src":"2758:3:6"},"nativeSrc":"2758:27:6","nodeType":"YulFunctionCall","src":"2758:27:6"}],"functionName":{"name":"calldataload","nativeSrc":"2745:12:6","nodeType":"YulIdentifier","src":"2745:12:6"},"nativeSrc":"2745:41:6","nodeType":"YulFunctionCall","src":"2745:41:6"},"variables":[{"name":"word","nativeSrc":"2737:4:6","nodeType":"YulTypedName","src":"2737:4:6","type":""}]},{"nativeSrc":"2793:82:6","nodeType":"YulAssignment","src":"2793:82:6","value":{"arguments":[{"name":"word","nativeSrc":"2802:4:6","nodeType":"YulIdentifier","src":"2802:4:6"},{"kind":"number","nativeSrc":"2808:66:6","nodeType":"YulLiteral","src":"2808:66:6","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"2798:3:6","nodeType":"YulIdentifier","src":"2798:3:6"},"nativeSrc":"2798:77:6","nodeType":"YulFunctionCall","src":"2798:77:6"},"variableNames":[{"name":"a","nativeSrc":"2793:1:6","nodeType":"YulIdentifier","src":"2793:1:6"}]},{"nativeSrc":"2882:30:6","nodeType":"YulAssignment","src":"2882:30:6","value":{"arguments":[{"name":"_pointer","nativeSrc":"2900:8:6","nodeType":"YulIdentifier","src":"2900:8:6"},{"kind":"number","nativeSrc":"2910:1:6","nodeType":"YulLiteral","src":"2910:1:6","type":"","value":"4"}],"functionName":{"name":"add","nativeSrc":"2896:3:6","nodeType":"YulIdentifier","src":"2896:3:6"},"nativeSrc":"2896:16:6","nodeType":"YulFunctionCall","src":"2896:16:6"},"variableNames":[{"name":"newPointer","nativeSrc":"2882:10:6","nodeType":"YulIdentifier","src":"2882:10:6"}]}]},"evmVersion":"prague","externalReferences":[{"declaration":1181,"isOffset":true,"isSlot":false,"src":"2772:12:6","suffix":"offset","valueSize":1},{"declaration":1183,"isOffset":false,"isSlot":false,"src":"2762:8:6","valueSize":1},{"declaration":1183,"isOffset":false,"isSlot":false,"src":"2900:8:6","valueSize":1},{"declaration":1186,"isOffset":false,"isSlot":false,"src":"2793:1:6","valueSize":1},{"declaration":1188,"isOffset":false,"isSlot":false,"src":"2882:10:6","valueSize":1}],"id":1190,"nodeType":"InlineAssembly","src":"2716:202:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readBytes4","nameLocation":"2606:10:6","parameters":{"id":1184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1181,"mutability":"mutable","name":"_data","nameLocation":"2632:5:6","nodeType":"VariableDeclaration","scope":1192,"src":"2617:20:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1180,"name":"bytes","nodeType":"ElementaryTypeName","src":"2617:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1183,"mutability":"mutable","name":"_pointer","nameLocation":"2647:8:6","nodeType":"VariableDeclaration","scope":1192,"src":"2639:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1182,"name":"uint256","nodeType":"ElementaryTypeName","src":"2639:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2616:40:6"},"returnParameters":{"id":1189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1186,"mutability":"mutable","name":"a","nameLocation":"2687:1:6","nodeType":"VariableDeclaration","scope":1192,"src":"2680:8:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1185,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2680:6:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":1188,"mutability":"mutable","name":"newPointer","nameLocation":"2698:10:6","nodeType":"VariableDeclaration","scope":1192,"src":"2690:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1187,"name":"uint256","nodeType":"ElementaryTypeName","src":"2690:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2679:30:6"},"scope":1276,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1205,"nodeType":"FunctionDefinition","src":"2926:232:6","nodes":[],"body":{"id":1204,"nodeType":"Block","src":"3041:117:6","nodes":[],"statements":[{"AST":{"nativeSrc":"3056:98:6","nodeType":"YulBlock","src":"3056:98:6","statements":[{"nativeSrc":"3064:46:6","nodeType":"YulAssignment","src":"3064:46:6","value":{"arguments":[{"arguments":[{"name":"_pointer","nativeSrc":"3086:8:6","nodeType":"YulIdentifier","src":"3086:8:6"},{"name":"_data.offset","nativeSrc":"3096:12:6","nodeType":"YulIdentifier","src":"3096:12:6"}],"functionName":{"name":"add","nativeSrc":"3082:3:6","nodeType":"YulIdentifier","src":"3082:3:6"},"nativeSrc":"3082:27:6","nodeType":"YulFunctionCall","src":"3082:27:6"}],"functionName":{"name":"calldataload","nativeSrc":"3069:12:6","nodeType":"YulIdentifier","src":"3069:12:6"},"nativeSrc":"3069:41:6","nodeType":"YulFunctionCall","src":"3069:41:6"},"variableNames":[{"name":"a","nativeSrc":"3064:1:6","nodeType":"YulIdentifier","src":"3064:1:6"}]},{"nativeSrc":"3117:31:6","nodeType":"YulAssignment","src":"3117:31:6","value":{"arguments":[{"name":"_pointer","nativeSrc":"3135:8:6","nodeType":"YulIdentifier","src":"3135:8:6"},{"kind":"number","nativeSrc":"3145:2:6","nodeType":"YulLiteral","src":"3145:2:6","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3131:3:6","nodeType":"YulIdentifier","src":"3131:3:6"},"nativeSrc":"3131:17:6","nodeType":"YulFunctionCall","src":"3131:17:6"},"variableNames":[{"name":"newPointer","nativeSrc":"3117:10:6","nodeType":"YulIdentifier","src":"3117:10:6"}]}]},"evmVersion":"prague","externalReferences":[{"declaration":1194,"isOffset":true,"isSlot":false,"src":"3096:12:6","suffix":"offset","valueSize":1},{"declaration":1196,"isOffset":false,"isSlot":false,"src":"3086:8:6","valueSize":1},{"declaration":1196,"isOffset":false,"isSlot":false,"src":"3135:8:6","valueSize":1},{"declaration":1199,"isOffset":false,"isSlot":false,"src":"3064:1:6","valueSize":1},{"declaration":1201,"isOffset":false,"isSlot":false,"src":"3117:10:6","valueSize":1}],"id":1203,"nodeType":"InlineAssembly","src":"3047:107:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readBytes32","nameLocation":"2935:11:6","parameters":{"id":1197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1194,"mutability":"mutable","name":"_data","nameLocation":"2962:5:6","nodeType":"VariableDeclaration","scope":1205,"src":"2947:20:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1193,"name":"bytes","nodeType":"ElementaryTypeName","src":"2947:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1196,"mutability":"mutable","name":"_pointer","nameLocation":"2977:8:6","nodeType":"VariableDeclaration","scope":1205,"src":"2969:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1195,"name":"uint256","nodeType":"ElementaryTypeName","src":"2969:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2946:40:6"},"returnParameters":{"id":1202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1199,"mutability":"mutable","name":"a","nameLocation":"3018:1:6","nodeType":"VariableDeclaration","scope":1205,"src":"3010:9:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1198,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3010:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1201,"mutability":"mutable","name":"newPointer","nameLocation":"3029:10:6","nodeType":"VariableDeclaration","scope":1205,"src":"3021:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1200,"name":"uint256","nodeType":"ElementaryTypeName","src":"3021:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3009:31:6"},"scope":1276,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1218,"nodeType":"FunctionDefinition","src":"3162:307:6","nodes":[],"body":{"id":1217,"nodeType":"Block","src":"3275:194:6","nodes":[],"statements":[{"AST":{"nativeSrc":"3290:175:6","nodeType":"YulBlock","src":"3290:175:6","statements":[{"nativeSrc":"3298:51:6","nodeType":"YulVariableDeclaration","src":"3298:51:6","value":{"arguments":[{"arguments":[{"name":"_index","nativeSrc":"3327:6:6","nodeType":"YulIdentifier","src":"3327:6:6"},{"name":"_data.offset","nativeSrc":"3335:12:6","nodeType":"YulIdentifier","src":"3335:12:6"}],"functionName":{"name":"add","nativeSrc":"3323:3:6","nodeType":"YulIdentifier","src":"3323:3:6"},"nativeSrc":"3323:25:6","nodeType":"YulFunctionCall","src":"3323:25:6"}],"functionName":{"name":"calldataload","nativeSrc":"3310:12:6","nodeType":"YulIdentifier","src":"3310:12:6"},"nativeSrc":"3310:39:6","nodeType":"YulFunctionCall","src":"3310:39:6"},"variables":[{"name":"word","nativeSrc":"3302:4:6","nodeType":"YulTypedName","src":"3302:4:6","type":""}]},{"nativeSrc":"3356:67:6","nodeType":"YulAssignment","src":"3356:67:6","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3369:2:6","nodeType":"YulLiteral","src":"3369:2:6","type":"","value":"96"},{"name":"word","nativeSrc":"3373:4:6","nodeType":"YulIdentifier","src":"3373:4:6"}],"functionName":{"name":"shr","nativeSrc":"3365:3:6","nodeType":"YulIdentifier","src":"3365:3:6"},"nativeSrc":"3365:13:6","nodeType":"YulFunctionCall","src":"3365:13:6"},{"kind":"number","nativeSrc":"3380:42:6","nodeType":"YulLiteral","src":"3380:42:6","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"3361:3:6","nodeType":"YulIdentifier","src":"3361:3:6"},"nativeSrc":"3361:62:6","nodeType":"YulFunctionCall","src":"3361:62:6"},"variableNames":[{"name":"a","nativeSrc":"3356:1:6","nodeType":"YulIdentifier","src":"3356:1:6"}]},{"nativeSrc":"3430:29:6","nodeType":"YulAssignment","src":"3430:29:6","value":{"arguments":[{"name":"_index","nativeSrc":"3448:6:6","nodeType":"YulIdentifier","src":"3448:6:6"},{"kind":"number","nativeSrc":"3456:2:6","nodeType":"YulLiteral","src":"3456:2:6","type":"","value":"20"}],"functionName":{"name":"add","nativeSrc":"3444:3:6","nodeType":"YulIdentifier","src":"3444:3:6"},"nativeSrc":"3444:15:6","nodeType":"YulFunctionCall","src":"3444:15:6"},"variableNames":[{"name":"newPointer","nativeSrc":"3430:10:6","nodeType":"YulIdentifier","src":"3430:10:6"}]}]},"evmVersion":"prague","externalReferences":[{"declaration":1207,"isOffset":true,"isSlot":false,"src":"3335:12:6","suffix":"offset","valueSize":1},{"declaration":1209,"isOffset":false,"isSlot":false,"src":"3327:6:6","valueSize":1},{"declaration":1209,"isOffset":false,"isSlot":false,"src":"3448:6:6","valueSize":1},{"declaration":1212,"isOffset":false,"isSlot":false,"src":"3356:1:6","valueSize":1},{"declaration":1214,"isOffset":false,"isSlot":false,"src":"3430:10:6","valueSize":1}],"id":1216,"nodeType":"InlineAssembly","src":"3281:184:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readAddress","nameLocation":"3171:11:6","parameters":{"id":1210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1207,"mutability":"mutable","name":"_data","nameLocation":"3198:5:6","nodeType":"VariableDeclaration","scope":1218,"src":"3183:20:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1206,"name":"bytes","nodeType":"ElementaryTypeName","src":"3183:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1209,"mutability":"mutable","name":"_index","nameLocation":"3213:6:6","nodeType":"VariableDeclaration","scope":1218,"src":"3205:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1208,"name":"uint256","nodeType":"ElementaryTypeName","src":"3205:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3182:38:6"},"returnParameters":{"id":1215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1212,"mutability":"mutable","name":"a","nameLocation":"3252:1:6","nodeType":"VariableDeclaration","scope":1218,"src":"3244:9:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1211,"name":"address","nodeType":"ElementaryTypeName","src":"3244:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1214,"mutability":"mutable","name":"newPointer","nameLocation":"3263:10:6","nodeType":"VariableDeclaration","scope":1218,"src":"3255:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1213,"name":"uint256","nodeType":"ElementaryTypeName","src":"3255:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3243:31:6"},"scope":1276,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1275,"nodeType":"FunctionDefinition","src":"3511:494:6","nodes":[],"body":{"id":1274,"nodeType":"Block","src":"3659:346:6","nodes":[],"statements":[{"assignments":[1235],"declarations":[{"constant":false,"id":1235,"mutability":"mutable","name":"yParityAndS","nameLocation":"3673:11:6","nodeType":"VariableDeclaration","scope":1274,"src":"3665:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1234,"name":"uint256","nodeType":"ElementaryTypeName","src":"3665:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1236,"nodeType":"VariableDeclarationStatement","src":"3665:19:6"},{"AST":{"nativeSrc":"3699:164:6","nodeType":"YulBlock","src":"3699:164:6","statements":[{"nativeSrc":"3707:44:6","nodeType":"YulAssignment","src":"3707:44:6","value":{"arguments":[{"arguments":[{"name":"_index","nativeSrc":"3729:6:6","nodeType":"YulIdentifier","src":"3729:6:6"},{"name":"_data.offset","nativeSrc":"3737:12:6","nodeType":"YulIdentifier","src":"3737:12:6"}],"functionName":{"name":"add","nativeSrc":"3725:3:6","nodeType":"YulIdentifier","src":"3725:3:6"},"nativeSrc":"3725:25:6","nodeType":"YulFunctionCall","src":"3725:25:6"}],"functionName":{"name":"calldataload","nativeSrc":"3712:12:6","nodeType":"YulIdentifier","src":"3712:12:6"},"nativeSrc":"3712:39:6","nodeType":"YulFunctionCall","src":"3712:39:6"},"variableNames":[{"name":"r","nativeSrc":"3707:1:6","nodeType":"YulIdentifier","src":"3707:1:6"}]},{"nativeSrc":"3758:63:6","nodeType":"YulAssignment","src":"3758:63:6","value":{"arguments":[{"arguments":[{"name":"_index","nativeSrc":"3790:6:6","nodeType":"YulIdentifier","src":"3790:6:6"},{"arguments":[{"name":"_data.offset","nativeSrc":"3802:12:6","nodeType":"YulIdentifier","src":"3802:12:6"},{"kind":"number","nativeSrc":"3816:2:6","nodeType":"YulLiteral","src":"3816:2:6","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3798:3:6","nodeType":"YulIdentifier","src":"3798:3:6"},"nativeSrc":"3798:21:6","nodeType":"YulFunctionCall","src":"3798:21:6"}],"functionName":{"name":"add","nativeSrc":"3786:3:6","nodeType":"YulIdentifier","src":"3786:3:6"},"nativeSrc":"3786:34:6","nodeType":"YulFunctionCall","src":"3786:34:6"}],"functionName":{"name":"calldataload","nativeSrc":"3773:12:6","nodeType":"YulIdentifier","src":"3773:12:6"},"nativeSrc":"3773:48:6","nodeType":"YulFunctionCall","src":"3773:48:6"},"variableNames":[{"name":"yParityAndS","nativeSrc":"3758:11:6","nodeType":"YulIdentifier","src":"3758:11:6"}]},{"nativeSrc":"3828:29:6","nodeType":"YulAssignment","src":"3828:29:6","value":{"arguments":[{"name":"_index","nativeSrc":"3846:6:6","nodeType":"YulIdentifier","src":"3846:6:6"},{"kind":"number","nativeSrc":"3854:2:6","nodeType":"YulLiteral","src":"3854:2:6","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"3842:3:6","nodeType":"YulIdentifier","src":"3842:3:6"},"nativeSrc":"3842:15:6","nodeType":"YulFunctionCall","src":"3842:15:6"},"variableNames":[{"name":"newPointer","nativeSrc":"3828:10:6","nodeType":"YulIdentifier","src":"3828:10:6"}]}]},"evmVersion":"prague","externalReferences":[{"declaration":1221,"isOffset":true,"isSlot":false,"src":"3737:12:6","suffix":"offset","valueSize":1},{"declaration":1221,"isOffset":true,"isSlot":false,"src":"3802:12:6","suffix":"offset","valueSize":1},{"declaration":1223,"isOffset":false,"isSlot":false,"src":"3729:6:6","valueSize":1},{"declaration":1223,"isOffset":false,"isSlot":false,"src":"3790:6:6","valueSize":1},{"declaration":1223,"isOffset":false,"isSlot":false,"src":"3846:6:6","valueSize":1},{"declaration":1232,"isOffset":false,"isSlot":false,"src":"3828:10:6","valueSize":1},{"declaration":1226,"isOffset":false,"isSlot":false,"src":"3707:1:6","valueSize":1},{"declaration":1235,"isOffset":false,"isSlot":false,"src":"3758:11:6","valueSize":1}],"id":1237,"nodeType":"InlineAssembly","src":"3690:173:6"},{"assignments":[1239],"declarations":[{"constant":false,"id":1239,"mutability":"mutable","name":"yParity","nameLocation":"3876:7:6","nodeType":"VariableDeclaration","scope":1274,"src":"3868:15:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1238,"name":"uint256","nodeType":"ElementaryTypeName","src":"3868:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1246,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1242,"name":"yParityAndS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1235,"src":"3894:11:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":1243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3909:3:6","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"3894:18:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1241,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3886:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1240,"name":"uint256","nodeType":"ElementaryTypeName","src":"3886:7:6","typeDescriptions":{}}},"id":1245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3886:27:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3868:45:6"},{"expression":{"id":1263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1247,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1228,"src":"3919:1:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1252,"name":"yParityAndS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1235,"src":"3939:11:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1251,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3931:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1250,"name":"uint256","nodeType":"ElementaryTypeName","src":"3931:7:6","typeDescriptions":{}}},"id":1253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3931:20:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1","typeString":"int_const 5789...(69 digits omitted)...9967"},"id":1259,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const 5789...(69 digits omitted)...9968"},"id":1256,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":1254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3956:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"323535","id":1255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3961:3:6","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"3956:8:6","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const 5789...(69 digits omitted)...9968"}}],"id":1257,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3955:10:6","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const 5789...(69 digits omitted)...9968"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3968:1:6","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3955:14:6","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1","typeString":"int_const 5789...(69 digits omitted)...9967"}}],"id":1260,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3954:16:6","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1","typeString":"int_const 5789...(69 digits omitted)...9967"}},"src":"3931:39:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1249,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3923:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1248,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3923:7:6","typeDescriptions":{}}},"id":1262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3923:48:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3919:52:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1264,"nodeType":"ExpressionStatement","src":"3919:52:6"},{"expression":{"id":1272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1265,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1230,"src":"3977:1:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1268,"name":"yParity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1239,"src":"3987:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1267,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3981:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":1266,"name":"uint8","nodeType":"ElementaryTypeName","src":"3981:5:6","typeDescriptions":{}}},"id":1269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3981:14:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3237","id":1270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3998:2:6","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"3981:19:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3977:23:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1273,"nodeType":"ExpressionStatement","src":"3977:23:6"}]},"documentation":{"id":1219,"nodeType":"StructuredDocumentation","src":"3473:35:6","text":"@dev ERC-2098 Compact Signature"},"implemented":true,"kind":"function","modifiers":[],"name":"readRSVCompact","nameLocation":"3520:14:6","parameters":{"id":1224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1221,"mutability":"mutable","name":"_data","nameLocation":"3555:5:6","nodeType":"VariableDeclaration","scope":1275,"src":"3540:20:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1220,"name":"bytes","nodeType":"ElementaryTypeName","src":"3540:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1223,"mutability":"mutable","name":"_index","nameLocation":"3574:6:6","nodeType":"VariableDeclaration","scope":1275,"src":"3566:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1222,"name":"uint256","nodeType":"ElementaryTypeName","src":"3566:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3534:50:6"},"returnParameters":{"id":1233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1226,"mutability":"mutable","name":"r","nameLocation":"3616:1:6","nodeType":"VariableDeclaration","scope":1275,"src":"3608:9:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1225,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3608:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1228,"mutability":"mutable","name":"s","nameLocation":"3627:1:6","nodeType":"VariableDeclaration","scope":1275,"src":"3619:9:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1227,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3619:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1230,"mutability":"mutable","name":"v","nameLocation":"3636:1:6","nodeType":"VariableDeclaration","scope":1275,"src":"3630:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1229,"name":"uint8","nodeType":"ElementaryTypeName","src":"3630:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":1232,"mutability":"mutable","name":"newPointer","nameLocation":"3647:10:6","nodeType":"VariableDeclaration","scope":1275,"src":"3639:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1231,"name":"uint256","nodeType":"ElementaryTypeName","src":"3639:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3607:51:6"},"scope":1276,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"LibBytes","contractDependencies":[],"contractKind":"library","documentation":{"id":1075,"nodeType":"StructuredDocumentation","src":"65:367:6","text":"@title Library for reading data from bytes arrays\n @author Agustin Aguilar (aa@horizon.io), Michael Standen (mstan@horizon.io)\n @notice This library contains functions for reading data from bytes arrays.\n @dev These functions do not check if the input index is within the bounds of the data array.\n @dev Reading out of bounds may return dirty values."},"fullyImplemented":true,"linearizedBaseContracts":[1276],"name":"LibBytes","nameLocation":"440:8:6","scope":1277,"usedErrors":[],"usedEvents":[]}],"license":"Apache-2.0"}},"src/autoRecovery/Allowlist.sol":{"id":7,"ast":{"absolutePath":"src/autoRecovery/Allowlist.sol","id":1606,"exportedSymbols":{"Allowlist":[1605],"Ownable":[147]},"nodeType":"SourceUnit","src":"39:3665:7","nodes":[{"id":1278,"nodeType":"PragmaDirective","src":"39:24:7","nodes":[],"literals":["solidity","^","0.8",".27"]},{"id":1280,"nodeType":"ImportDirective","src":"65:67:7","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":1606,"sourceUnit":148,"symbolAliases":[{"foreign":{"id":1279,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":147,"src":"73:7:7","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1605,"nodeType":"ContractDefinition","src":"241:3462:7","nodes":[{"id":1286,"nodeType":"ErrorDefinition","src":"353:20:7","nodes":[],"documentation":{"id":1284,"nodeType":"StructuredDocumentation","src":"275:75:7","text":"@notice A zero address was provided where a signer address is required."},"errorSelector":"d92e233d","name":"ZeroAddress","nameLocation":"359:11:7","parameters":{"id":1285,"nodeType":"ParameterList","parameters":[],"src":"370:2:7"}},{"id":1291,"nodeType":"ErrorDefinition","src":"439:35:7","nodes":[],"documentation":{"id":1287,"nodeType":"StructuredDocumentation","src":"376:60:7","text":"@notice The address is already present in the allowlist."},"errorSelector":"0e8a4941","name":"AlreadyAllowed","nameLocation":"445:14:7","parameters":{"id":1290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1289,"mutability":"mutable","name":"addr","nameLocation":"468:4:7","nodeType":"VariableDeclaration","scope":1291,"src":"460:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1288,"name":"address","nodeType":"ElementaryTypeName","src":"460:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"459:14:7"}},{"id":1296,"nodeType":"ErrorDefinition","src":"536:31:7","nodes":[],"documentation":{"id":1292,"nodeType":"StructuredDocumentation","src":"477:56:7","text":"@notice The address is not present in the allowlist."},"errorSelector":"fa5cd00f","name":"NotAllowed","nameLocation":"542:10:7","parameters":{"id":1295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1294,"mutability":"mutable","name":"addr","nameLocation":"561:4:7","nodeType":"VariableDeclaration","scope":1296,"src":"553:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1293,"name":"address","nodeType":"ElementaryTypeName","src":"553:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"552:14:7"}},{"id":1305,"nodeType":"ErrorDefinition","src":"648:69:7","nodes":[],"documentation":{"id":1297,"nodeType":"StructuredDocumentation","src":"570:75:7","text":"@notice The provided index hint does not point at the expected address."},"errorSelector":"bf2671c2","name":"IndexMismatch","nameLocation":"654:13:7","parameters":{"id":1304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1299,"mutability":"mutable","name":"index","nameLocation":"676:5:7","nodeType":"VariableDeclaration","scope":1305,"src":"668:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1298,"name":"uint256","nodeType":"ElementaryTypeName","src":"668:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1301,"mutability":"mutable","name":"expected","nameLocation":"691:8:7","nodeType":"VariableDeclaration","scope":1305,"src":"683:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1300,"name":"address","nodeType":"ElementaryTypeName","src":"683:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1303,"mutability":"mutable","name":"actual","nameLocation":"709:6:7","nodeType":"VariableDeclaration","scope":1305,"src":"701:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1302,"name":"address","nodeType":"ElementaryTypeName","src":"701:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"667:49:7"}},{"id":1309,"nodeType":"VariableDeclaration","src":"721:41:7","nodes":[],"constant":false,"mutability":"mutable","name":"_allowed","nameLocation":"754:8:7","scope":1605,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":1308,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1306,"name":"address","nodeType":"ElementaryTypeName","src":"729:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"721:24:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1307,"name":"bool","nodeType":"ElementaryTypeName","src":"740:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"private"},{"id":1312,"nodeType":"VariableDeclaration","src":"766:26:7","nodes":[],"constant":false,"mutability":"mutable","name":"_entries","nameLocation":"784:8:7","scope":1605,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[]"},"typeName":{"baseType":{"id":1310,"name":"address","nodeType":"ElementaryTypeName","src":"766:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1311,"nodeType":"ArrayTypeName","src":"766:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"private"},{"id":1317,"nodeType":"EventDefinition","src":"862:41:7","nodes":[],"anonymous":false,"documentation":{"id":1313,"nodeType":"StructuredDocumentation","src":"797:62:7","text":"@notice Emitted when an address is added to the allowlist."},"eventSelector":"a226db3f664042183ee0281230bba26cbf7b5057e50aee7f25a175ff45ce4d7f","name":"AddressAdded","nameLocation":"868:12:7","parameters":{"id":1316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1315,"indexed":true,"mutability":"mutable","name":"addr","nameLocation":"897:4:7","nodeType":"VariableDeclaration","scope":1317,"src":"881:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1314,"name":"address","nodeType":"ElementaryTypeName","src":"881:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"880:22:7"}},{"id":1322,"nodeType":"EventDefinition","src":"975:43:7","nodes":[],"anonymous":false,"documentation":{"id":1318,"nodeType":"StructuredDocumentation","src":"906:66:7","text":"@notice Emitted when an address is removed from the allowlist."},"eventSelector":"24a12366c02e13fe4a9e03d86a8952e85bb74a456c16e4a18b6d8295700b74bb","name":"AddressRemoved","nameLocation":"981:14:7","parameters":{"id":1321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1320,"indexed":true,"mutability":"mutable","name":"addr","nameLocation":"1012:4:7","nodeType":"VariableDeclaration","scope":1322,"src":"996:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1319,"name":"address","nodeType":"ElementaryTypeName","src":"996:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"995:22:7"}},{"id":1353,"nodeType":"FunctionDefinition","src":"1226:152:7","nodes":[],"body":{"id":1352,"nodeType":"Block","src":"1296:82:7","nodes":[],"statements":[{"body":{"id":1350,"nodeType":"Block","src":"1343:31:7","statements":[{"expression":{"arguments":[{"baseExpression":{"id":1345,"name":"initial","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1328,"src":"1356:7:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":1347,"indexExpression":{"id":1346,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1335,"src":"1364:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1356:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1344,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1502,"src":"1351:4:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1351:16:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1349,"nodeType":"ExpressionStatement","src":"1351:16:7"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1337,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1335,"src":"1318:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":1338,"name":"initial","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1328,"src":"1322:7:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":1339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1330:6:7","memberName":"length","nodeType":"MemberAccess","src":"1322:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1318:18:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1351,"initializationExpression":{"assignments":[1335],"declarations":[{"constant":false,"id":1335,"mutability":"mutable","name":"i","nameLocation":"1315:1:7","nodeType":"VariableDeclaration","scope":1351,"src":"1307:9:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1334,"name":"uint256","nodeType":"ElementaryTypeName","src":"1307:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1336,"nodeType":"VariableDeclarationStatement","src":"1307:9:7"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":1342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1338:3:7","subExpression":{"id":1341,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1335,"src":"1338:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1343,"nodeType":"ExpressionStatement","src":"1338:3:7"},"nodeType":"ForStatement","src":"1302:72:7"}]},"documentation":{"id":1323,"nodeType":"StructuredDocumentation","src":"1022:201:7","text":"@notice Initializes the allowlist owner and optional initial entries.\n @param owner_ The account allowed to mutate the allowlist.\n @param initial The initial addresses to mark as allowed."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":1331,"name":"owner_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1325,"src":"1288:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":1332,"kind":"baseConstructorSpecifier","modifierName":{"id":1330,"name":"Ownable","nameLocations":["1280:7:7"],"nodeType":"IdentifierPath","referencedDeclaration":147,"src":"1280:7:7"},"nodeType":"ModifierInvocation","src":"1280:15:7"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":1329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1325,"mutability":"mutable","name":"owner_","nameLocation":"1246:6:7","nodeType":"VariableDeclaration","scope":1353,"src":"1238:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1324,"name":"address","nodeType":"ElementaryTypeName","src":"1238:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1328,"mutability":"mutable","name":"initial","nameLocation":"1271:7:7","nodeType":"VariableDeclaration","scope":1353,"src":"1254:24:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1326,"name":"address","nodeType":"ElementaryTypeName","src":"1254:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1327,"nodeType":"ArrayTypeName","src":"1254:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1237:42:7"},"returnParameters":{"id":1333,"nodeType":"ParameterList","parameters":[],"src":"1296:0:7"},"scope":1605,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":1366,"nodeType":"FunctionDefinition","src":"1464:67:7","nodes":[],"body":{"id":1365,"nodeType":"Block","src":"1510:21:7","nodes":[],"statements":[{"expression":{"arguments":[{"id":1362,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1356,"src":"1521:4:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1361,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1502,"src":"1516:4:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1516:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1364,"nodeType":"ExpressionStatement","src":"1516:10:7"}]},"documentation":{"id":1354,"nodeType":"StructuredDocumentation","src":"1382:79:7","text":"@notice Adds `addr` to the allowlist.\n @param addr The address to add."},"functionSelector":"0a3b0a4f","implemented":true,"kind":"function","modifiers":[{"id":1359,"kind":"modifierInvocation","modifierName":{"id":1358,"name":"onlyOwner","nameLocations":["1500:9:7"],"nodeType":"IdentifierPath","referencedDeclaration":58,"src":"1500:9:7"},"nodeType":"ModifierInvocation","src":"1500:9:7"}],"name":"add","nameLocation":"1473:3:7","parameters":{"id":1357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1356,"mutability":"mutable","name":"addr","nameLocation":"1485:4:7","nodeType":"VariableDeclaration","scope":1366,"src":"1477:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1355,"name":"address","nodeType":"ElementaryTypeName","src":"1477:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1476:14:7"},"returnParameters":{"id":1360,"nodeType":"ParameterList","parameters":[],"src":"1510:0:7"},"scope":1605,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":1394,"nodeType":"FunctionDefinition","src":"1637:136:7","nodes":[],"body":{"id":1393,"nodeType":"Block","src":"1695:78:7","nodes":[],"statements":[{"body":{"id":1391,"nodeType":"Block","src":"1740:29:7","statements":[{"expression":{"arguments":[{"baseExpression":{"id":1386,"name":"addrs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1370,"src":"1753:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1388,"indexExpression":{"id":1387,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1376,"src":"1759:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1753:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1385,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1502,"src":"1748:4:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1748:14:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1390,"nodeType":"ExpressionStatement","src":"1748:14:7"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1378,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1376,"src":"1717:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":1379,"name":"addrs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1370,"src":"1721:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1727:6:7","memberName":"length","nodeType":"MemberAccess","src":"1721:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1717:16:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1392,"initializationExpression":{"assignments":[1376],"declarations":[{"constant":false,"id":1376,"mutability":"mutable","name":"i","nameLocation":"1714:1:7","nodeType":"VariableDeclaration","scope":1392,"src":"1706:9:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1375,"name":"uint256","nodeType":"ElementaryTypeName","src":"1706:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1377,"nodeType":"VariableDeclarationStatement","src":"1706:9:7"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":1383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1735:3:7","subExpression":{"id":1382,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1376,"src":"1735:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1384,"nodeType":"ExpressionStatement","src":"1735:3:7"},"nodeType":"ForStatement","src":"1701:68:7"}]},"documentation":{"id":1367,"nodeType":"StructuredDocumentation","src":"1535:99:7","text":"@notice Adds each address in `addrs` to the allowlist.\n @param addrs The addresses to add."},"functionSelector":"c4c1c94f","implemented":true,"kind":"function","modifiers":[{"id":1373,"kind":"modifierInvocation","modifierName":{"id":1372,"name":"onlyOwner","nameLocations":["1685:9:7"],"nodeType":"IdentifierPath","referencedDeclaration":58,"src":"1685:9:7"},"nodeType":"ModifierInvocation","src":"1685:9:7"}],"name":"add","nameLocation":"1646:3:7","parameters":{"id":1371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1370,"mutability":"mutable","name":"addrs","nameLocation":"1669:5:7","nodeType":"VariableDeclaration","scope":1394,"src":"1650:24:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1368,"name":"address","nodeType":"ElementaryTypeName","src":"1650:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1369,"nodeType":"ArrayTypeName","src":"1650:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1649:26:7"},"returnParameters":{"id":1374,"nodeType":"ParameterList","parameters":[],"src":"1695:0:7"},"scope":1605,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":1410,"nodeType":"FunctionDefinition","src":"2036:95:7","nodes":[],"body":{"id":1409,"nodeType":"Block","src":"2100:31:7","nodes":[],"statements":[{"expression":{"arguments":[{"id":1405,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1397,"src":"2114:4:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1406,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1399,"src":"2120:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1404,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1604,"src":"2106:7:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2106:20:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1408,"nodeType":"ExpressionStatement","src":"2106:20:7"}]},"documentation":{"id":1395,"nodeType":"StructuredDocumentation","src":"1777:256:7","text":"@notice Removes `addr` from the allowlist.\n @param addr The address to remove.\n @param index Optional index hint into `getAllowed()`. Pass `0` to use search mode.\n @dev Removal uses swap-and-pop, so `getAllowed()` ordering is not stable."},"functionSelector":"abe7f1ab","implemented":true,"kind":"function","modifiers":[{"id":1402,"kind":"modifierInvocation","modifierName":{"id":1401,"name":"onlyOwner","nameLocations":["2090:9:7"],"nodeType":"IdentifierPath","referencedDeclaration":58,"src":"2090:9:7"},"nodeType":"ModifierInvocation","src":"2090:9:7"}],"name":"remove","nameLocation":"2045:6:7","parameters":{"id":1400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1397,"mutability":"mutable","name":"addr","nameLocation":"2060:4:7","nodeType":"VariableDeclaration","scope":1410,"src":"2052:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1396,"name":"address","nodeType":"ElementaryTypeName","src":"2052:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1399,"mutability":"mutable","name":"index","nameLocation":"2074:5:7","nodeType":"VariableDeclaration","scope":1410,"src":"2066:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1398,"name":"uint256","nodeType":"ElementaryTypeName","src":"2066:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2051:29:7"},"returnParameters":{"id":1403,"nodeType":"ParameterList","parameters":[],"src":"2100:0:7"},"scope":1605,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":1439,"nodeType":"FunctionDefinition","src":"2343:145:7","nodes":[],"body":{"id":1438,"nodeType":"Block","src":"2404:84:7","nodes":[],"statements":[{"body":{"id":1436,"nodeType":"Block","src":"2449:35:7","statements":[{"expression":{"arguments":[{"baseExpression":{"id":1430,"name":"addrs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1414,"src":"2465:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1432,"indexExpression":{"id":1431,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1420,"src":"2471:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2465:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":1433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2475:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1429,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1604,"src":"2457:7:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2457:20:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1435,"nodeType":"ExpressionStatement","src":"2457:20:7"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1422,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1420,"src":"2426:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":1423,"name":"addrs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1414,"src":"2430:5:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2436:6:7","memberName":"length","nodeType":"MemberAccess","src":"2430:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2426:16:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1437,"initializationExpression":{"assignments":[1420],"declarations":[{"constant":false,"id":1420,"mutability":"mutable","name":"i","nameLocation":"2423:1:7","nodeType":"VariableDeclaration","scope":1437,"src":"2415:9:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1419,"name":"uint256","nodeType":"ElementaryTypeName","src":"2415:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1421,"nodeType":"VariableDeclarationStatement","src":"2415:9:7"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":1427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2444:3:7","subExpression":{"id":1426,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1420,"src":"2444:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1428,"nodeType":"ExpressionStatement","src":"2444:3:7"},"nodeType":"ForStatement","src":"2410:74:7"}]},"documentation":{"id":1411,"nodeType":"StructuredDocumentation","src":"2135:205:7","text":"@notice Removes each address in `addrs` from the allowlist using search mode.\n @param addrs The addresses to remove.\n @dev Removal uses swap-and-pop, so `getAllowed()` ordering is not stable."},"functionSelector":"5e4ba17c","implemented":true,"kind":"function","modifiers":[{"id":1417,"kind":"modifierInvocation","modifierName":{"id":1416,"name":"onlyOwner","nameLocations":["2394:9:7"],"nodeType":"IdentifierPath","referencedDeclaration":58,"src":"2394:9:7"},"nodeType":"ModifierInvocation","src":"2394:9:7"}],"name":"remove","nameLocation":"2352:6:7","parameters":{"id":1415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1414,"mutability":"mutable","name":"addrs","nameLocation":"2378:5:7","nodeType":"VariableDeclaration","scope":1439,"src":"2359:24:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1412,"name":"address","nodeType":"ElementaryTypeName","src":"2359:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1413,"nodeType":"ArrayTypeName","src":"2359:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2358:26:7"},"returnParameters":{"id":1418,"nodeType":"ParameterList","parameters":[],"src":"2404:0:7"},"scope":1605,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":1452,"nodeType":"FunctionDefinition","src":"2551:94:7","nodes":[],"body":{"id":1451,"nodeType":"Block","src":"2613:32:7","nodes":[],"statements":[{"expression":{"baseExpression":{"id":1447,"name":"_allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1309,"src":"2626:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":1449,"indexExpression":{"id":1448,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1442,"src":"2635:4:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2626:14:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1446,"id":1450,"nodeType":"Return","src":"2619:21:7"}]},"documentation":{"id":1440,"nodeType":"StructuredDocumentation","src":"2492:56:7","text":"@notice Returns whether `addr` is currently allowed."},"functionSelector":"babcc539","implemented":true,"kind":"function","modifiers":[],"name":"isAllowed","nameLocation":"2560:9:7","parameters":{"id":1443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1442,"mutability":"mutable","name":"addr","nameLocation":"2578:4:7","nodeType":"VariableDeclaration","scope":1452,"src":"2570:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1441,"name":"address","nodeType":"ElementaryTypeName","src":"2570:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2569:14:7"},"returnParameters":{"id":1446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1445,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1452,"src":"2607:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1444,"name":"bool","nodeType":"ElementaryTypeName","src":"2607:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2606:6:7"},"scope":1605,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1462,"nodeType":"FunctionDefinition","src":"2788:89:7","nodes":[],"body":{"id":1461,"nodeType":"Block","src":"2851:26:7","nodes":[],"statements":[{"expression":{"id":1459,"name":"_entries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1312,"src":"2864:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":1458,"id":1460,"nodeType":"Return","src":"2857:15:7"}]},"documentation":{"id":1453,"nodeType":"StructuredDocumentation","src":"2649:136:7","text":"@notice Returns the current allowlist entries in storage order.\n @dev Ordering is not stable because removals use swap-and-pop."},"functionSelector":"03fced0c","implemented":true,"kind":"function","modifiers":[],"name":"getAllowed","nameLocation":"2797:10:7","parameters":{"id":1454,"nodeType":"ParameterList","parameters":[],"src":"2807:2:7"},"returnParameters":{"id":1458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1457,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1462,"src":"2833:16:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1455,"name":"address","nodeType":"ElementaryTypeName","src":"2833:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1456,"nodeType":"ArrayTypeName","src":"2833:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2832:18:7"},"scope":1605,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1502,"nodeType":"FunctionDefinition","src":"2881:227:7","nodes":[],"body":{"id":1501,"nodeType":"Block","src":"2917:191:7","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1467,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1464,"src":"2927:4:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2943:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1469,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2935:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1468,"name":"address","nodeType":"ElementaryTypeName","src":"2935:7:7","typeDescriptions":{}}},"id":1471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2935:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2927:18:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1476,"nodeType":"IfStatement","src":"2923:44:7","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1473,"name":"ZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1286,"src":"2954:11:7","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":1474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2954:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1475,"nodeType":"RevertStatement","src":"2947:20:7"}},{"condition":{"baseExpression":{"id":1477,"name":"_allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1309,"src":"2977:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":1479,"indexExpression":{"id":1478,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1464,"src":"2986:4:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2977:14:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1484,"nodeType":"IfStatement","src":"2973:47:7","trueBody":{"errorCall":{"arguments":[{"id":1481,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1464,"src":"3015:4:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1480,"name":"AlreadyAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1291,"src":"3000:14:7","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":1482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3000:20:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1483,"nodeType":"RevertStatement","src":"2993:27:7"}},{"expression":{"id":1489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1485,"name":"_allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1309,"src":"3027:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":1487,"indexExpression":{"id":1486,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1464,"src":"3036:4:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3027:14:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":1488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3044:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3027:21:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1490,"nodeType":"ExpressionStatement","src":"3027:21:7"},{"expression":{"arguments":[{"id":1494,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1464,"src":"3068:4:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1491,"name":"_entries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1312,"src":"3054:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3063:4:7","memberName":"push","nodeType":"MemberAccess","src":"3054:13:7","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer,address)"}},"id":1495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3054:19:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1496,"nodeType":"ExpressionStatement","src":"3054:19:7"},{"eventCall":{"arguments":[{"id":1498,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1464,"src":"3098:4:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1497,"name":"AddressAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1317,"src":"3085:12:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3085:18:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1500,"nodeType":"EmitStatement","src":"3080:23:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_add","nameLocation":"2890:4:7","parameters":{"id":1465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1464,"mutability":"mutable","name":"addr","nameLocation":"2903:4:7","nodeType":"VariableDeclaration","scope":1502,"src":"2895:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1463,"name":"address","nodeType":"ElementaryTypeName","src":"2895:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2894:14:7"},"returnParameters":{"id":1466,"nodeType":"ParameterList","parameters":[],"src":"2917:0:7"},"scope":1605,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":1604,"nodeType":"FunctionDefinition","src":"3112:589:7","nodes":[],"body":{"id":1603,"nodeType":"Block","src":"3166:535:7","nodes":[],"statements":[{"condition":{"id":1512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3176:15:7","subExpression":{"baseExpression":{"id":1509,"name":"_allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1309,"src":"3177:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":1511,"indexExpression":{"id":1510,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1504,"src":"3186:4:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3177:14:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1517,"nodeType":"IfStatement","src":"3172:44:7","trueBody":{"errorCall":{"arguments":[{"id":1514,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1504,"src":"3211:4:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1513,"name":"NotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1296,"src":"3200:10:7","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":1515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3200:16:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1516,"nodeType":"RevertStatement","src":"3193:23:7"}},{"expression":{"id":1522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1518,"name":"_allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1309,"src":"3222:8:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":1520,"indexExpression":{"id":1519,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1504,"src":"3231:4:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3222:14:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":1521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3239:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"3222:22:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1523,"nodeType":"ExpressionStatement","src":"3222:22:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1524,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1506,"src":"3255:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3264:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3255:10:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1597,"nodeType":"Block","src":"3444:221:7","statements":[{"assignments":[1559],"declarations":[{"constant":false,"id":1559,"mutability":"mutable","name":"len","nameLocation":"3460:3:7","nodeType":"VariableDeclaration","scope":1597,"src":"3452:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1558,"name":"uint256","nodeType":"ElementaryTypeName","src":"3452:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1562,"initialValue":{"expression":{"id":1560,"name":"_entries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1312,"src":"3466:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3475:6:7","memberName":"length","nodeType":"MemberAccess","src":"3466:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3452:29:7"},{"body":{"id":1595,"nodeType":"Block","src":"3519:140:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":1572,"name":"_entries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1312,"src":"3533:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1574,"indexExpression":{"id":1573,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1564,"src":"3542:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3533:11:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1575,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1504,"src":"3548:4:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3533:19:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1594,"nodeType":"IfStatement","src":"3529:122:7","trueBody":{"id":1593,"nodeType":"Block","src":"3554:97:7","statements":[{"expression":{"id":1585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1577,"name":"_entries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1312,"src":"3566:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1579,"indexExpression":{"id":1578,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1564,"src":"3575:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3566:11:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":1580,"name":"_entries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1312,"src":"3580:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1584,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1581,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1559,"src":"3589:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3595:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3589:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3580:17:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3566:31:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1586,"nodeType":"ExpressionStatement","src":"3566:31:7"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1587,"name":"_entries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1312,"src":"3609:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3618:3:7","memberName":"pop","nodeType":"MemberAccess","src":"3609:12:7","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer)"}},"id":1590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3609:14:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1591,"nodeType":"ExpressionStatement","src":"3609:14:7"},{"id":1592,"nodeType":"Break","src":"3635:5:7"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1566,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1564,"src":"3505:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1567,"name":"len","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1559,"src":"3509:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3505:7:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1596,"initializationExpression":{"assignments":[1564],"declarations":[{"constant":false,"id":1564,"mutability":"mutable","name":"i","nameLocation":"3502:1:7","nodeType":"VariableDeclaration","scope":1596,"src":"3494:9:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1563,"name":"uint256","nodeType":"ElementaryTypeName","src":"3494:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1565,"nodeType":"VariableDeclarationStatement","src":"3494:9:7"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":1570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3514:3:7","subExpression":{"id":1569,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1564,"src":"3514:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1571,"nodeType":"ExpressionStatement","src":"3514:3:7"},"nodeType":"ForStatement","src":"3489:170:7"}]},"id":1598,"nodeType":"IfStatement","src":"3251:414:7","trueBody":{"id":1557,"nodeType":"Block","src":"3267:171:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":1527,"name":"_entries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1312,"src":"3279:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1529,"indexExpression":{"id":1528,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1506,"src":"3288:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3279:15:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":1530,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1504,"src":"3298:4:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3279:23:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1540,"nodeType":"IfStatement","src":"3275:79:7","trueBody":{"errorCall":{"arguments":[{"id":1533,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1506,"src":"3325:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1534,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1504,"src":"3332:4:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":1535,"name":"_entries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1312,"src":"3338:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1537,"indexExpression":{"id":1536,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1506,"src":"3347:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3338:15:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1532,"name":"IndexMismatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1305,"src":"3311:13:7","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_address_$_t_address_$returns$_t_error_$","typeString":"function (uint256,address,address) pure returns (error)"}},"id":1538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3311:43:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1539,"nodeType":"RevertStatement","src":"3304:50:7"}},{"expression":{"id":1550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1541,"name":"_entries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1312,"src":"3362:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1543,"indexExpression":{"id":1542,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1506,"src":"3371:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3362:15:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":1544,"name":"_entries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1312,"src":"3380:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1549,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1545,"name":"_entries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1312,"src":"3389:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3398:6:7","memberName":"length","nodeType":"MemberAccess","src":"3389:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3407:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3389:19:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3380:29:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3362:47:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1551,"nodeType":"ExpressionStatement","src":"3362:47:7"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":1552,"name":"_entries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1312,"src":"3417:8:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":1554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3426:3:7","memberName":"pop","nodeType":"MemberAccess","src":"3417:12:7","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer)"}},"id":1555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3417:14:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1556,"nodeType":"ExpressionStatement","src":"3417:14:7"}]}},{"eventCall":{"arguments":[{"id":1600,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1504,"src":"3691:4:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1599,"name":"AddressRemoved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1322,"src":"3676:14:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3676:20:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1602,"nodeType":"EmitStatement","src":"3671:25:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_remove","nameLocation":"3121:7:7","parameters":{"id":1507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1504,"mutability":"mutable","name":"addr","nameLocation":"3137:4:7","nodeType":"VariableDeclaration","scope":1604,"src":"3129:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1503,"name":"address","nodeType":"ElementaryTypeName","src":"3129:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1506,"mutability":"mutable","name":"index","nameLocation":"3151:5:7","nodeType":"VariableDeclaration","scope":1604,"src":"3143:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1505,"name":"uint256","nodeType":"ElementaryTypeName","src":"3143:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3128:29:7"},"returnParameters":{"id":1508,"nodeType":"ParameterList","parameters":[],"src":"3166:0:7"},"scope":1605,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":1282,"name":"Ownable","nameLocations":["263:7:7"],"nodeType":"IdentifierPath","referencedDeclaration":147,"src":"263:7:7"},"id":1283,"nodeType":"InheritanceSpecifier","src":"263:7:7"}],"canonicalName":"Allowlist","contractDependencies":[],"contractKind":"contract","documentation":{"id":1281,"nodeType":"StructuredDocumentation","src":"134:107:7","text":"@title Allowlist\n @notice Owner-managed set of addresses allowed to authorize timed refund batches."},"fullyImplemented":true,"linearizedBaseContracts":[1605,147,281],"name":"Allowlist","nameLocation":"250:9:7","scope":1606,"usedErrors":[13,18,1286,1291,1296,1305],"usedEvents":[24,1317,1322]}],"license":"Apache-2.0"}},"src/autoRecovery/TimedRefundSapient.sol":{"id":8,"ast":{"absolutePath":"src/autoRecovery/TimedRefundSapient.sol","id":2086,"exportedSymbols":{"Allowlist":[1605],"IERC20":[225],"IERC20Metadata":[251],"ISapient":[1060],"Payload":[1043],"TimedRefundSapient":[2085]},"nodeType":"SourceUnit","src":"39:6700:8","nodes":[{"id":1607,"nodeType":"PragmaDirective","src":"39:24:8","nodes":[],"literals":["solidity","^","0.8",".27"]},{"id":1609,"nodeType":"ImportDirective","src":"65:79:8","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":2086,"sourceUnit":226,"symbolAliases":[{"foreign":{"id":1608,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":225,"src":"73:6:8","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1611,"nodeType":"ImportDirective","src":"145:77:8","nodes":[],"absolutePath":"lib/wallet-contracts-v3/src/modules/interfaces/ISapient.sol","file":"wallet-contracts-v3/modules/interfaces/ISapient.sol","nameLocation":"-1:-1:-1","scope":2086,"sourceUnit":1073,"symbolAliases":[{"foreign":{"id":1610,"name":"ISapient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1060,"src":"153:8:8","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1613,"nodeType":"ImportDirective","src":"223:64:8","nodes":[],"absolutePath":"lib/wallet-contracts-v3/src/modules/Payload.sol","file":"wallet-contracts-v3/modules/Payload.sol","nameLocation":"-1:-1:-1","scope":2086,"sourceUnit":1044,"symbolAliases":[{"foreign":{"id":1612,"name":"Payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1043,"src":"231:7:8","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1615,"nodeType":"ImportDirective","src":"288:106:8","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","nameLocation":"-1:-1:-1","scope":2086,"sourceUnit":252,"symbolAliases":[{"foreign":{"id":1614,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":251,"src":"296:14:8","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1617,"nodeType":"ImportDirective","src":"395:42:8","nodes":[],"absolutePath":"src/autoRecovery/Allowlist.sol","file":"./Allowlist.sol","nameLocation":"-1:-1:-1","scope":2086,"sourceUnit":1606,"symbolAliases":[{"foreign":{"id":1616,"name":"Allowlist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1605,"src":"403:9:8","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2085,"nodeType":"ContractDefinition","src":"749:5989:8","nodes":[{"id":1630,"nodeType":"VariableDeclaration","src":"952:111:8","nodes":[],"constant":true,"documentation":{"id":1621,"nodeType":"StructuredDocumentation","src":"793:156:8","text":"@notice Dedicated nonce space for timed refund payloads.\n @dev uint160(uint256(keccak256(\"trails.timed-refund.nonce-space\")) | (uint256(1) << 159))"},"functionSelector":"3512d463","mutability":"constant","name":"TIMED_REFUND_NONCE_SPACE","nameLocation":"976:24:8","scope":2085,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1622,"name":"uint256","nodeType":"ElementaryTypeName","src":"952:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"arguments":[{"arguments":[{"hexValue":"307865463235343530393738303731423762443361316146453538433434383463383442333146614638","id":1627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1019:42:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xeF25450978071B7bD3a1aFE58C4484c84B31FaF8"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1626,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1011:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":1625,"name":"uint160","nodeType":"ElementaryTypeName","src":"1011:7:8","typeDescriptions":{}}},"id":1628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1011:51:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1624,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1003:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1623,"name":"uint256","nodeType":"ElementaryTypeName","src":"1003:7:8","typeDescriptions":{}}},"id":1629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1003:60:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":1635,"nodeType":"VariableDeclaration","src":"1068:74:8","nodes":[],"constant":true,"mutability":"constant","name":"ERC20_TRANSFER_SELECTOR","nameLocation":"1092:23:8","scope":2085,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1631,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1068:6:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"expression":{"expression":{"id":1632,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":225,"src":"1118:6:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$225_$","typeString":"type(contract IERC20)"}},"id":1633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1125:8:8","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":192,"src":"1118:15:8","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function IERC20.transfer(address,uint256) returns (bool)"}},"id":1634,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1134:8:8","memberName":"selector","nodeType":"MemberAccess","src":"1118:24:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"private"},{"id":1638,"nodeType":"VariableDeclaration","src":"1146:54:8","nodes":[],"constant":true,"mutability":"constant","name":"COMPACT_SIGNATURE_LENGTH","nameLocation":"1171:24:8","scope":2085,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1636,"name":"uint256","nodeType":"ElementaryTypeName","src":"1146:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3634","id":1637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1198:2:8","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"visibility":"private"},{"id":1642,"nodeType":"VariableDeclaration","src":"1285:36:8","nodes":[],"constant":false,"documentation":{"id":1639,"nodeType":"StructuredDocumentation","src":"1205:77:8","text":"@notice Allowlist of signers permitted to authorize timed refund batches."},"functionSelector":"2b47da52","mutability":"immutable","name":"allowlist","nameLocation":"1312:9:8","scope":2085,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Allowlist_$1605","typeString":"contract Allowlist"},"typeName":{"id":1641,"nodeType":"UserDefinedTypeName","pathNode":{"id":1640,"name":"Allowlist","nameLocations":["1285:9:8"],"nodeType":"IdentifierPath","referencedDeclaration":1605,"src":"1285:9:8"},"referencedDeclaration":1605,"src":"1285:9:8","typeDescriptions":{"typeIdentifier":"t_contract$_Allowlist_$1605","typeString":"contract Allowlist"}},"visibility":"public"},{"id":1647,"nodeType":"ErrorDefinition","src":"1412:45:8","nodes":[],"documentation":{"id":1643,"nodeType":"StructuredDocumentation","src":"1326:83:8","text":"@notice The payload contains a call outside the approved transfer-only surface."},"errorSelector":"d0effcd1","name":"UnauthorizedTransaction","nameLocation":"1418:23:8","parameters":{"id":1646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1645,"mutability":"mutable","name":"index","nameLocation":"1450:5:8","nodeType":"VariableDeclaration","scope":1647,"src":"1442:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1644,"name":"uint256","nodeType":"ElementaryTypeName","src":"1442:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1441:15:8"}},{"id":1652,"nodeType":"ErrorDefinition","src":"1525:39:8","nodes":[],"documentation":{"id":1648,"nodeType":"StructuredDocumentation","src":"1460:62:8","text":"@notice The recovered signer is not currently allowlisted."},"errorSelector":"24293799","name":"SignerNotAllowed","nameLocation":"1531:16:8","parameters":{"id":1651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1650,"mutability":"mutable","name":"signer","nameLocation":"1556:6:8","nodeType":"VariableDeclaration","scope":1652,"src":"1548:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1649,"name":"address","nodeType":"ElementaryTypeName","src":"1548:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1547:16:8"}},{"id":1659,"nodeType":"ErrorDefinition","src":"1628:76:8","nodes":[],"documentation":{"id":1653,"nodeType":"StructuredDocumentation","src":"1567:58:8","text":"@notice The unlock timestamp has not been reached yet."},"errorSelector":"29162ec3","name":"UnlockTimestampNotReached","nameLocation":"1634:25:8","parameters":{"id":1658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1655,"mutability":"mutable","name":"unlockTimestamp","nameLocation":"1668:15:8","nodeType":"VariableDeclaration","scope":1659,"src":"1660:23:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1654,"name":"uint256","nodeType":"ElementaryTypeName","src":"1660:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1657,"mutability":"mutable","name":"timestamp","nameLocation":"1693:9:8","nodeType":"VariableDeclaration","scope":1659,"src":"1685:17:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1656,"name":"uint256","nodeType":"ElementaryTypeName","src":"1685:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1659:44:8"}},{"id":1664,"nodeType":"ErrorDefinition","src":"1776:37:8","nodes":[],"documentation":{"id":1660,"nodeType":"StructuredDocumentation","src":"1707:66:8","text":"@notice The sapient signer only supports transaction payloads."},"errorSelector":"fdd66817","name":"InvalidPayloadKind","nameLocation":"1782:18:8","parameters":{"id":1663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1662,"mutability":"mutable","name":"kind","nameLocation":"1807:4:8","nodeType":"VariableDeclaration","scope":1664,"src":"1801:10:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1661,"name":"uint8","nodeType":"ElementaryTypeName","src":"1801:5:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1800:12:8"}},{"id":1671,"nodeType":"ErrorDefinition","src":"1902:57:8","nodes":[],"documentation":{"id":1665,"nodeType":"StructuredDocumentation","src":"1816:83:8","text":"@notice The payload used a nonce space outside the dedicated timed refund lane."},"errorSelector":"7b56ac38","name":"InvalidNonceSpace","nameLocation":"1908:17:8","parameters":{"id":1670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1667,"mutability":"mutable","name":"space","nameLocation":"1934:5:8","nodeType":"VariableDeclaration","scope":1671,"src":"1926:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1666,"name":"uint256","nodeType":"ElementaryTypeName","src":"1926:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1669,"mutability":"mutable","name":"expected","nameLocation":"1949:8:8","nodeType":"VariableDeclaration","scope":1671,"src":"1941:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1668,"name":"uint256","nodeType":"ElementaryTypeName","src":"1941:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1925:33:8"}},{"id":1676,"nodeType":"ErrorDefinition","src":"2033:53:8","nodes":[],"documentation":{"id":1672,"nodeType":"StructuredDocumentation","src":"1962:68:8","text":"@notice The compact approval signature has an unexpected length."},"errorSelector":"defdd9a1","name":"InvalidApprovalSignatureLength","nameLocation":"2039:30:8","parameters":{"id":1675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1674,"mutability":"mutable","name":"length","nameLocation":"2078:6:8","nodeType":"VariableDeclaration","scope":1676,"src":"2070:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1673,"name":"uint256","nodeType":"ElementaryTypeName","src":"2070:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2069:16:8"}},{"id":1679,"nodeType":"ErrorDefinition","src":"2160:31:8","nodes":[],"documentation":{"id":1677,"nodeType":"StructuredDocumentation","src":"2089:68:8","text":"@notice The compact approval signature did not recover a signer."},"errorSelector":"546fefe6","name":"InvalidRecoveredSigner","nameLocation":"2166:22:8","parameters":{"id":1678,"nodeType":"ParameterList","parameters":[],"src":"2188:2:8"}},{"id":1686,"nodeType":"ErrorDefinition","src":"2259:69:8","nodes":[],"documentation":{"id":1680,"nodeType":"StructuredDocumentation","src":"2194:62:8","text":"@notice A call used an unsupported `behaviorOnError` mode."},"errorSelector":"953ecc57","name":"InvalidBehaviorOnError","nameLocation":"2265:22:8","parameters":{"id":1685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1682,"mutability":"mutable","name":"index","nameLocation":"2296:5:8","nodeType":"VariableDeclaration","scope":1686,"src":"2288:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1681,"name":"uint256","nodeType":"ElementaryTypeName","src":"2288:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1684,"mutability":"mutable","name":"behaviorOnError","nameLocation":"2311:15:8","nodeType":"VariableDeclaration","scope":1686,"src":"2303:23:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1683,"name":"uint256","nodeType":"ElementaryTypeName","src":"2303:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2287:40:8"}},{"id":1691,"nodeType":"ErrorDefinition","src":"2402:44:8","nodes":[],"documentation":{"id":1687,"nodeType":"StructuredDocumentation","src":"2331:68:8","text":"@notice Delegate calls are not allowed in timed refund payloads."},"errorSelector":"230d1ccc","name":"DelegateCallNotAllowed","nameLocation":"2408:22:8","parameters":{"id":1690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1689,"mutability":"mutable","name":"index","nameLocation":"2439:5:8","nodeType":"VariableDeclaration","scope":1691,"src":"2431:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1688,"name":"uint256","nodeType":"ElementaryTypeName","src":"2431:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2430:15:8"}},{"id":1696,"nodeType":"ErrorDefinition","src":"2525:44:8","nodes":[],"documentation":{"id":1692,"nodeType":"StructuredDocumentation","src":"2449:73:8","text":"@notice Fallback-only calls are not allowed in timed refund payloads."},"errorSelector":"992c80fa","name":"OnlyFallbackNotAllowed","nameLocation":"2531:22:8","parameters":{"id":1695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1694,"mutability":"mutable","name":"index","nameLocation":"2562:5:8","nodeType":"VariableDeclaration","scope":1696,"src":"2554:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1693,"name":"uint256","nodeType":"ElementaryTypeName","src":"2554:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2553:15:8"}},{"id":1703,"nodeType":"ErrorDefinition","src":"2648:55:8","nodes":[],"documentation":{"id":1697,"nodeType":"StructuredDocumentation","src":"2572:73:8","text":"@notice Per-call gas limits are not allowed in timed refund payloads."},"errorSelector":"2e275162","name":"GasLimitNotZero","nameLocation":"2654:15:8","parameters":{"id":1702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1699,"mutability":"mutable","name":"index","nameLocation":"2678:5:8","nodeType":"VariableDeclaration","scope":1703,"src":"2670:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1698,"name":"uint256","nodeType":"ElementaryTypeName","src":"2670:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1701,"mutability":"mutable","name":"gasLimit","nameLocation":"2693:8:8","nodeType":"VariableDeclaration","scope":1703,"src":"2685:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1700,"name":"uint256","nodeType":"ElementaryTypeName","src":"2685:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2669:33:8"}},{"id":1710,"nodeType":"ErrorDefinition","src":"2764:68:8","nodes":[],"documentation":{"id":1704,"nodeType":"StructuredDocumentation","src":"2706:55:8","text":"@notice Native transfers must not include calldata."},"errorSelector":"aa458e88","name":"NativeTransferDataNotEmpty","nameLocation":"2770:26:8","parameters":{"id":1709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1706,"mutability":"mutable","name":"index","nameLocation":"2805:5:8","nodeType":"VariableDeclaration","scope":1710,"src":"2797:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1705,"name":"uint256","nodeType":"ElementaryTypeName","src":"2797:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1708,"mutability":"mutable","name":"dataLength","nameLocation":"2820:10:8","nodeType":"VariableDeclaration","scope":1710,"src":"2812:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1707,"name":"uint256","nodeType":"ElementaryTypeName","src":"2812:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2796:35:8"}},{"id":1722,"nodeType":"FunctionDefinition","src":"2983:67:8","nodes":[],"body":{"id":1721,"nodeType":"Block","src":"3017:33:8","nodes":[],"statements":[{"expression":{"id":1719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1717,"name":"allowlist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1642,"src":"3023:9:8","typeDescriptions":{"typeIdentifier":"t_contract$_Allowlist_$1605","typeString":"contract Allowlist"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1718,"name":"allowlist_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1714,"src":"3035:10:8","typeDescriptions":{"typeIdentifier":"t_contract$_Allowlist_$1605","typeString":"contract Allowlist"}},"src":"3023:22:8","typeDescriptions":{"typeIdentifier":"t_contract$_Allowlist_$1605","typeString":"contract Allowlist"}},"id":1720,"nodeType":"ExpressionStatement","src":"3023:22:8"}]},"documentation":{"id":1711,"nodeType":"StructuredDocumentation","src":"2836:144:8","text":"@notice Initializes the sapient signer with its signer allowlist.\n @param allowlist_ The owner-managed allowlist of refund authorizers."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":1715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1714,"mutability":"mutable","name":"allowlist_","nameLocation":"3005:10:8","nodeType":"VariableDeclaration","scope":1722,"src":"2995:20:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Allowlist_$1605","typeString":"contract Allowlist"},"typeName":{"id":1713,"nodeType":"UserDefinedTypeName","pathNode":{"id":1712,"name":"Allowlist","nameLocations":["2995:9:8"],"nodeType":"IdentifierPath","referencedDeclaration":1605,"src":"2995:9:8"},"referencedDeclaration":1605,"src":"2995:9:8","typeDescriptions":{"typeIdentifier":"t_contract$_Allowlist_$1605","typeString":"contract Allowlist"}},"visibility":"internal"}],"src":"2994:22:8"},"returnParameters":{"id":1716,"nodeType":"ParameterList","parameters":[],"src":"3017:0:8"},"scope":2085,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":1741,"nodeType":"FunctionDefinition","src":"3054:192:8","nodes":[],"body":{"id":1740,"nodeType":"Block","src":"3161:85:8","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"74696d65642d726566756e64","id":1734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3195:14:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_55ae509910032a1a9f3c6abfa280ed0db91ae608436d81fe4d30017d66d390b6","typeString":"literal_string \"timed-refund\""},"value":"timed-refund"},{"id":1735,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1724,"src":"3211:11:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1736,"name":"unlockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1726,"src":"3224:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_55ae509910032a1a9f3c6abfa280ed0db91ae608436d81fe4d30017d66d390b6","typeString":"literal_string \"timed-refund\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1732,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3184:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3188:6:8","memberName":"encode","nodeType":"MemberAccess","src":"3184:10:8","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3184:56:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1731,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3174:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3174:67:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1730,"id":1739,"nodeType":"Return","src":"3167:74:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_rootForTimedRefund","nameLocation":"3063:19:8","parameters":{"id":1727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1724,"mutability":"mutable","name":"destination","nameLocation":"3091:11:8","nodeType":"VariableDeclaration","scope":1741,"src":"3083:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1723,"name":"address","nodeType":"ElementaryTypeName","src":"3083:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1726,"mutability":"mutable","name":"unlockTimestamp","nameLocation":"3112:15:8","nodeType":"VariableDeclaration","scope":1741,"src":"3104:23:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1725,"name":"uint256","nodeType":"ElementaryTypeName","src":"3104:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3082:46:8"},"returnParameters":{"id":1730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1729,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1741,"src":"3152:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1728,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3152:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3151:9:8"},"scope":2085,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1768,"nodeType":"FunctionDefinition","src":"3250:392:8","nodes":[],"body":{"id":1767,"nodeType":"Block","src":"3351:291:8","nodes":[],"statements":[{"assignments":[1751],"declarations":[{"constant":false,"id":1751,"mutability":"mutable","name":"r","nameLocation":"3365:1:8","nodeType":"VariableDeclaration","scope":1767,"src":"3357:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1750,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3357:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1752,"nodeType":"VariableDeclarationStatement","src":"3357:9:8"},{"assignments":[1754],"declarations":[{"constant":false,"id":1754,"mutability":"mutable","name":"s","nameLocation":"3380:1:8","nodeType":"VariableDeclaration","scope":1767,"src":"3372:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1753,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3372:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1755,"nodeType":"VariableDeclarationStatement","src":"3372:9:8"},{"assignments":[1757],"declarations":[{"constant":false,"id":1757,"mutability":"mutable","name":"v","nameLocation":"3393:1:8","nodeType":"VariableDeclaration","scope":1767,"src":"3387:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1756,"name":"uint8","nodeType":"ElementaryTypeName","src":"3387:5:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":1758,"nodeType":"VariableDeclarationStatement","src":"3387:7:8"},{"AST":{"nativeSrc":"3410:190:8","nodeType":"YulBlock","src":"3410:190:8","statements":[{"nativeSrc":"3418:32:8","nodeType":"YulAssignment","src":"3418:32:8","value":{"arguments":[{"arguments":[{"name":"signature","nativeSrc":"3433:9:8","nodeType":"YulIdentifier","src":"3433:9:8"},{"kind":"number","nativeSrc":"3444:4:8","nodeType":"YulLiteral","src":"3444:4:8","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3429:3:8","nodeType":"YulIdentifier","src":"3429:3:8"},"nativeSrc":"3429:20:8","nodeType":"YulFunctionCall","src":"3429:20:8"}],"functionName":{"name":"mload","nativeSrc":"3423:5:8","nodeType":"YulIdentifier","src":"3423:5:8"},"nativeSrc":"3423:27:8","nodeType":"YulFunctionCall","src":"3423:27:8"},"variableNames":[{"name":"r","nativeSrc":"3418:1:8","nodeType":"YulIdentifier","src":"3418:1:8"}]},{"nativeSrc":"3457:46:8","nodeType":"YulVariableDeclaration","src":"3457:46:8","value":{"arguments":[{"arguments":[{"name":"signature","nativeSrc":"3486:9:8","nodeType":"YulIdentifier","src":"3486:9:8"},{"kind":"number","nativeSrc":"3497:4:8","nodeType":"YulLiteral","src":"3497:4:8","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"3482:3:8","nodeType":"YulIdentifier","src":"3482:3:8"},"nativeSrc":"3482:20:8","nodeType":"YulFunctionCall","src":"3482:20:8"}],"functionName":{"name":"mload","nativeSrc":"3476:5:8","nodeType":"YulIdentifier","src":"3476:5:8"},"nativeSrc":"3476:27:8","nodeType":"YulFunctionCall","src":"3476:27:8"},"variables":[{"name":"yParityAndS","nativeSrc":"3461:11:8","nodeType":"YulTypedName","src":"3461:11:8","type":""}]},{"nativeSrc":"3510:35:8","nodeType":"YulAssignment","src":"3510:35:8","value":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3523:3:8","nodeType":"YulLiteral","src":"3523:3:8","type":"","value":"255"},{"name":"yParityAndS","nativeSrc":"3528:11:8","nodeType":"YulIdentifier","src":"3528:11:8"}],"functionName":{"name":"shr","nativeSrc":"3519:3:8","nodeType":"YulIdentifier","src":"3519:3:8"},"nativeSrc":"3519:21:8","nodeType":"YulFunctionCall","src":"3519:21:8"},{"kind":"number","nativeSrc":"3542:2:8","nodeType":"YulLiteral","src":"3542:2:8","type":"","value":"27"}],"functionName":{"name":"add","nativeSrc":"3515:3:8","nodeType":"YulIdentifier","src":"3515:3:8"},"nativeSrc":"3515:30:8","nodeType":"YulFunctionCall","src":"3515:30:8"},"variableNames":[{"name":"v","nativeSrc":"3510:1:8","nodeType":"YulIdentifier","src":"3510:1:8"}]},{"nativeSrc":"3552:42:8","nodeType":"YulAssignment","src":"3552:42:8","value":{"arguments":[{"name":"yParityAndS","nativeSrc":"3561:11:8","nodeType":"YulIdentifier","src":"3561:11:8"},{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"3582:3:8","nodeType":"YulLiteral","src":"3582:3:8","type":"","value":"255"},{"kind":"number","nativeSrc":"3587:1:8","nodeType":"YulLiteral","src":"3587:1:8","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"3578:3:8","nodeType":"YulIdentifier","src":"3578:3:8"},"nativeSrc":"3578:11:8","nodeType":"YulFunctionCall","src":"3578:11:8"},{"kind":"number","nativeSrc":"3591:1:8","nodeType":"YulLiteral","src":"3591:1:8","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"3574:3:8","nodeType":"YulIdentifier","src":"3574:3:8"},"nativeSrc":"3574:19:8","nodeType":"YulFunctionCall","src":"3574:19:8"}],"functionName":{"name":"and","nativeSrc":"3557:3:8","nodeType":"YulIdentifier","src":"3557:3:8"},"nativeSrc":"3557:37:8","nodeType":"YulFunctionCall","src":"3557:37:8"},"variableNames":[{"name":"s","nativeSrc":"3552:1:8","nodeType":"YulIdentifier","src":"3552:1:8"}]}]},"evmVersion":"prague","externalReferences":[{"declaration":1751,"isOffset":false,"isSlot":false,"src":"3418:1:8","valueSize":1},{"declaration":1754,"isOffset":false,"isSlot":false,"src":"3552:1:8","valueSize":1},{"declaration":1745,"isOffset":false,"isSlot":false,"src":"3433:9:8","valueSize":1},{"declaration":1745,"isOffset":false,"isSlot":false,"src":"3486:9:8","valueSize":1},{"declaration":1757,"isOffset":false,"isSlot":false,"src":"3510:1:8","valueSize":1}],"id":1759,"nodeType":"InlineAssembly","src":"3401:199:8"},{"expression":{"arguments":[{"id":1761,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1743,"src":"3623:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1762,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1757,"src":"3629:1:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":1763,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1751,"src":"3632:1:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1764,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1754,"src":"3635:1:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1760,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"3613:9:8","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":1765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3613:24:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1749,"id":1766,"nodeType":"Return","src":"3606:31:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_recoverCompactSigner","nameLocation":"3259:21:8","parameters":{"id":1746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1743,"mutability":"mutable","name":"hash","nameLocation":"3289:4:8","nodeType":"VariableDeclaration","scope":1768,"src":"3281:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1742,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3281:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1745,"mutability":"mutable","name":"signature","nameLocation":"3308:9:8","nodeType":"VariableDeclaration","scope":1768,"src":"3295:22:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1744,"name":"bytes","nodeType":"ElementaryTypeName","src":"3295:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3280:38:8"},"returnParameters":{"id":1749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1748,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1768,"src":"3342:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1747,"name":"address","nodeType":"ElementaryTypeName","src":"3342:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3341:9:8"},"scope":2085,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1797,"nodeType":"FunctionDefinition","src":"3830:234:8","nodes":[],"body":{"id":1796,"nodeType":"Block","src":"3898:166:8","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1777,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1771,"src":"3932:5:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":1780,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":251,"src":"3954:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20Metadata_$251_$","typeString":"type(contract IERC20Metadata)"}},"id":1781,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3969:4:8","memberName":"name","nodeType":"MemberAccess","referencedDeclaration":238,"src":"3954:19:8","typeDescriptions":{"typeIdentifier":"t_function_declaration_view$__$returns$_t_string_memory_ptr_$","typeString":"function IERC20Metadata.name() view returns (string memory)"}},{"components":[],"id":1782,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3975:2:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_view$__$returns$_t_string_memory_ptr_$","typeString":"function IERC20Metadata.name() view returns (string memory)"},{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}],"expression":{"id":1778,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3939:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3943:10:8","memberName":"encodeCall","nodeType":"MemberAccess","src":"3939:14:8","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3939:39:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1776,"name":"_hasNonEmptyResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1823,"src":"3911:20:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,bytes memory) view returns (bool)"}},"id":1784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3911:68:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"id":1786,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1771,"src":"4010:5:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":1789,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":251,"src":"4032:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20Metadata_$251_$","typeString":"type(contract IERC20Metadata)"}},"id":1790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4047:6:8","memberName":"symbol","nodeType":"MemberAccess","referencedDeclaration":244,"src":"4032:21:8","typeDescriptions":{"typeIdentifier":"t_function_declaration_view$__$returns$_t_string_memory_ptr_$","typeString":"function IERC20Metadata.symbol() view returns (string memory)"}},{"components":[],"id":1791,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4055:2:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_view$__$returns$_t_string_memory_ptr_$","typeString":"function IERC20Metadata.symbol() view returns (string memory)"},{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}],"expression":{"id":1787,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4017:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1788,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4021:10:8","memberName":"encodeCall","nodeType":"MemberAccess","src":"4017:14:8","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4017:41:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1785,"name":"_hasNonEmptyResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1823,"src":"3989:20:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,bytes memory) view returns (bool)"}},"id":1793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3989:70:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3911:148:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1775,"id":1795,"nodeType":"Return","src":"3904:155:8"}]},"documentation":{"id":1769,"nodeType":"StructuredDocumentation","src":"3646:181:8","text":"@notice Returns whether `token` responds to the ERC20 metadata probes.\n @dev This is a lightweight heuristic used to distinguish token-like transfers from native transfers."},"functionSelector":"c477c132","implemented":true,"kind":"function","modifiers":[],"name":"hasERC20Metadata","nameLocation":"3839:16:8","parameters":{"id":1772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1771,"mutability":"mutable","name":"token","nameLocation":"3864:5:8","nodeType":"VariableDeclaration","scope":1797,"src":"3856:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1770,"name":"address","nodeType":"ElementaryTypeName","src":"3856:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3855:15:8"},"returnParameters":{"id":1775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1774,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1797,"src":"3892:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1773,"name":"bool","nodeType":"ElementaryTypeName","src":"3892:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3891:6:8"},"scope":2085,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":1823,"nodeType":"FunctionDefinition","src":"4068:223:8","nodes":[],"body":{"id":1822,"nodeType":"Block","src":"4165:126:8","nodes":[],"statements":[{"assignments":[1807,1809],"declarations":[{"constant":false,"id":1807,"mutability":"mutable","name":"success","nameLocation":"4177:7:8","nodeType":"VariableDeclaration","scope":1822,"src":"4172:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1806,"name":"bool","nodeType":"ElementaryTypeName","src":"4172:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1809,"mutability":"mutable","name":"returndata","nameLocation":"4199:10:8","nodeType":"VariableDeclaration","scope":1822,"src":"4186:23:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1808,"name":"bytes","nodeType":"ElementaryTypeName","src":"4186:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1814,"initialValue":{"arguments":[{"id":1812,"name":"callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1801,"src":"4231:8:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":1810,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1799,"src":"4213:6:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4220:10:8","memberName":"staticcall","nodeType":"MemberAccess","src":"4213:17:8","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":1813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4213:27:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"4171:69:8"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1815,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1807,"src":"4253:7:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1816,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1809,"src":"4264:10:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4275:6:8","memberName":"length","nodeType":"MemberAccess","src":"4264:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4285:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4264:22:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4253:33:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1805,"id":1821,"nodeType":"Return","src":"4246:40:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_hasNonEmptyResponse","nameLocation":"4077:20:8","parameters":{"id":1802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1799,"mutability":"mutable","name":"target","nameLocation":"4106:6:8","nodeType":"VariableDeclaration","scope":1823,"src":"4098:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1798,"name":"address","nodeType":"ElementaryTypeName","src":"4098:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1801,"mutability":"mutable","name":"callData","nameLocation":"4127:8:8","nodeType":"VariableDeclaration","scope":1823,"src":"4114:21:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1800,"name":"bytes","nodeType":"ElementaryTypeName","src":"4114:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4097:39:8"},"returnParameters":{"id":1805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1804,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1823,"src":"4159:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1803,"name":"bool","nodeType":"ElementaryTypeName","src":"4159:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4158:6:8"},"scope":2085,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":2084,"nodeType":"FunctionDefinition","src":"4437:2299:8","nodes":[],"body":{"id":2083,"nodeType":"Block","src":"4586:2150:8","nodes":[],"statements":[{"assignments":[1835,1837,1839],"declarations":[{"constant":false,"id":1835,"mutability":"mutable","name":"destination","nameLocation":"4601:11:8","nodeType":"VariableDeclaration","scope":2083,"src":"4593:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1834,"name":"address","nodeType":"ElementaryTypeName","src":"4593:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1837,"mutability":"mutable","name":"unlockTimestamp","nameLocation":"4622:15:8","nodeType":"VariableDeclaration","scope":2083,"src":"4614:23:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1836,"name":"uint256","nodeType":"ElementaryTypeName","src":"4614:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1839,"mutability":"mutable","name":"approvalSignature","nameLocation":"4652:17:8","nodeType":"VariableDeclaration","scope":2083,"src":"4639:30:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1838,"name":"bytes","nodeType":"ElementaryTypeName","src":"4639:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1851,"initialValue":{"arguments":[{"id":1842,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1829,"src":"4690:9:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":1844,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4702:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1843,"name":"address","nodeType":"ElementaryTypeName","src":"4702:7:8","typeDescriptions":{}}},{"id":1846,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4711:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1845,"name":"uint256","nodeType":"ElementaryTypeName","src":"4711:7:8","typeDescriptions":{}}},{"id":1848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4720:5:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1847,"name":"bytes","nodeType":"ElementaryTypeName","src":"4720:5:8","typeDescriptions":{}}}],"id":1849,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4701:25:8","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_uint256_$_$_t_type$_t_bytes_storage_ptr_$_$","typeString":"tuple(type(address),type(uint256),type(bytes storage pointer))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_uint256_$_$_t_type$_t_bytes_storage_ptr_$_$","typeString":"tuple(type(address),type(uint256),type(bytes storage pointer))"}],"expression":{"id":1840,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4679:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4683:6:8","memberName":"decode","nodeType":"MemberAccess","src":"4679:10:8","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":1850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4679:48:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_payable_$_t_uint256_$_t_bytes_memory_ptr_$","typeString":"tuple(address payable,uint256,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"4592:135:8"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1852,"name":"approvalSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1839,"src":"4737:17:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4755:6:8","memberName":"length","nodeType":"MemberAccess","src":"4737:24:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":1854,"name":"COMPACT_SIGNATURE_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1638,"src":"4765:24:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4737:52:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1862,"nodeType":"IfStatement","src":"4733:136:8","trueBody":{"id":1861,"nodeType":"Block","src":"4791:78:8","statements":[{"errorCall":{"arguments":[{"expression":{"id":1857,"name":"approvalSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1839,"src":"4837:17:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4855:6:8","memberName":"length","nodeType":"MemberAccess","src":"4837:24:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1856,"name":"InvalidApprovalSignatureLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1676,"src":"4806:30:8","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$_t_error_$","typeString":"function (uint256) pure returns (error)"}},"id":1859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4806:56:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1860,"nodeType":"RevertStatement","src":"4799:63:8"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":1867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1863,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"4879:7:8","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_calldata_ptr","typeString":"struct Payload.Decoded calldata"}},"id":1864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4887:4:8","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":400,"src":"4879:12:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":1865,"name":"Payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1043,"src":"4895:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Payload_$1043_$","typeString":"type(library Payload)"}},"id":1866,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4903:17:8","memberName":"KIND_TRANSACTIONS","nodeType":"MemberAccess","referencedDeclaration":357,"src":"4895:25:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4879:41:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1873,"nodeType":"IfStatement","src":"4875:86:8","trueBody":{"errorCall":{"arguments":[{"expression":{"id":1869,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"4948:7:8","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_calldata_ptr","typeString":"struct Payload.Decoded calldata"}},"id":1870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4956:4:8","memberName":"kind","nodeType":"MemberAccess","referencedDeclaration":400,"src":"4948:12:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1868,"name":"InvalidPayloadKind","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1664,"src":"4929:18:8","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint8_$returns$_t_error_$","typeString":"function (uint8) pure returns (error)"}},"id":1871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4929:32:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1872,"nodeType":"RevertStatement","src":"4922:39:8"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1874,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"4971:7:8","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_calldata_ptr","typeString":"struct Payload.Decoded calldata"}},"id":1875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4979:5:8","memberName":"space","nodeType":"MemberAccess","referencedDeclaration":408,"src":"4971:13:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":1876,"name":"TIMED_REFUND_NONCE_SPACE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1630,"src":"4988:24:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4971:41:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1885,"nodeType":"IfStatement","src":"4967:127:8","trueBody":{"id":1884,"nodeType":"Block","src":"5014:80:8","statements":[{"errorCall":{"arguments":[{"expression":{"id":1879,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"5047:7:8","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_calldata_ptr","typeString":"struct Payload.Decoded calldata"}},"id":1880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5055:5:8","memberName":"space","nodeType":"MemberAccess","referencedDeclaration":408,"src":"5047:13:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1881,"name":"TIMED_REFUND_NONCE_SPACE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1630,"src":"5062:24:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1878,"name":"InvalidNonceSpace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1671,"src":"5029:17:8","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":1882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5029:58:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1883,"nodeType":"RevertStatement","src":"5022:65:8"}]}},{"assignments":[1887],"declarations":[{"constant":false,"id":1887,"mutability":"mutable","name":"signer","nameLocation":"5108:6:8","nodeType":"VariableDeclaration","scope":2083,"src":"5100:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1886,"name":"address","nodeType":"ElementaryTypeName","src":"5100:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1897,"initialValue":{"arguments":[{"arguments":[{"id":1891,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"5155:7:8","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_calldata_ptr","typeString":"struct Payload.Decoded calldata"}},{"expression":{"id":1892,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5164:3:8","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5168:6:8","memberName":"sender","nodeType":"MemberAccess","src":"5164:10:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Decoded_$420_calldata_ptr","typeString":"struct Payload.Decoded calldata"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1889,"name":"Payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1043,"src":"5139:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Payload_$1043_$","typeString":"type(library Payload)"}},"id":1890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5147:7:8","memberName":"hashFor","nodeType":"MemberAccess","referencedDeclaration":1042,"src":"5139:15:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Decoded_$420_memory_ptr_$_t_address_$returns$_t_bytes32_$","typeString":"function (struct Payload.Decoded memory,address) view returns (bytes32)"}},"id":1894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5139:36:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1895,"name":"approvalSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1839,"src":"5177:17:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1888,"name":"_recoverCompactSigner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1768,"src":"5117:21:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes32,bytes memory) pure returns (address)"}},"id":1896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5117:78:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5100:95:8"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1898,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1887,"src":"5205:6:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5223:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1900,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5215:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1899,"name":"address","nodeType":"ElementaryTypeName","src":"5215:7:8","typeDescriptions":{}}},"id":1902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5215:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5205:20:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1907,"nodeType":"IfStatement","src":"5201:57:8","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1904,"name":"InvalidRecoveredSigner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1679,"src":"5234:22:8","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":1905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5234:24:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1906,"nodeType":"RevertStatement","src":"5227:31:8"}},{"condition":{"id":1912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5268:28:8","subExpression":{"arguments":[{"id":1910,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1887,"src":"5289:6:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1908,"name":"allowlist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1642,"src":"5269:9:8","typeDescriptions":{"typeIdentifier":"t_contract$_Allowlist_$1605","typeString":"contract Allowlist"}},"id":1909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5279:9:8","memberName":"isAllowed","nodeType":"MemberAccess","referencedDeclaration":1452,"src":"5269:19:8","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":1911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5269:27:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1917,"nodeType":"IfStatement","src":"5264:65:8","trueBody":{"errorCall":{"arguments":[{"id":1914,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1887,"src":"5322:6:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1913,"name":"SignerNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1652,"src":"5305:16:8","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":1915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5305:24:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1916,"nodeType":"RevertStatement","src":"5298:31:8"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1918,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5339:5:8","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":1919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5345:9:8","memberName":"timestamp","nodeType":"MemberAccess","src":"5339:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1920,"name":"unlockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1837,"src":"5357:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5339:33:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1928,"nodeType":"IfStatement","src":"5335:105:8","trueBody":{"errorCall":{"arguments":[{"id":1923,"name":"unlockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1837,"src":"5407:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":1924,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5424:5:8","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":1925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5430:9:8","memberName":"timestamp","nodeType":"MemberAccess","src":"5424:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1922,"name":"UnlockTimestampNotReached","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1659,"src":"5381:25:8","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":1926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5381:59:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1927,"nodeType":"RevertStatement","src":"5374:66:8"}},{"body":{"id":2076,"nodeType":"Block","src":"5575:1094:8","statements":[{"assignments":[1945],"declarations":[{"constant":false,"id":1945,"mutability":"mutable","name":"call","nameLocation":"5605:4:8","nodeType":"VariableDeclaration","scope":2076,"src":"5583:26:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$397_calldata_ptr","typeString":"struct Payload.Call"},"typeName":{"id":1944,"nodeType":"UserDefinedTypeName","pathNode":{"id":1943,"name":"Payload.Call","nameLocations":["5583:7:8","5591:4:8"],"nodeType":"IdentifierPath","referencedDeclaration":397,"src":"5583:12:8"},"referencedDeclaration":397,"src":"5583:12:8","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$397_storage_ptr","typeString":"struct Payload.Call"}},"visibility":"internal"}],"id":1950,"initialValue":{"baseExpression":{"expression":{"id":1946,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"5612:7:8","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_calldata_ptr","typeString":"struct Payload.Decoded calldata"}},"id":1947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5620:5:8","memberName":"calls","nodeType":"MemberAccess","referencedDeclaration":406,"src":"5612:13:8","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$397_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Payload.Call calldata[] calldata"}},"id":1949,"indexExpression":{"id":1948,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1930,"src":"5626:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5612:16:8","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$397_calldata_ptr","typeString":"struct Payload.Call calldata"}},"nodeType":"VariableDeclarationStatement","src":"5583:45:8"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1951,"name":"call","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1945,"src":"5640:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$397_calldata_ptr","typeString":"struct Payload.Call calldata"}},"id":1952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5645:15:8","memberName":"behaviorOnError","nodeType":"MemberAccess","referencedDeclaration":396,"src":"5640:20:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":1953,"name":"Payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1043,"src":"5664:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Payload_$1043_$","typeString":"type(library Payload)"}},"id":1954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5672:24:8","memberName":"BEHAVIOR_REVERT_ON_ERROR","nodeType":"MemberAccess","referencedDeclaration":377,"src":"5664:32:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"5640:56:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1963,"nodeType":"IfStatement","src":"5636:135:8","trueBody":{"id":1962,"nodeType":"Block","src":"5698:73:8","statements":[{"errorCall":{"arguments":[{"id":1957,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1930,"src":"5738:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":1958,"name":"call","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1945,"src":"5741:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$397_calldata_ptr","typeString":"struct Payload.Call calldata"}},"id":1959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5746:15:8","memberName":"behaviorOnError","nodeType":"MemberAccess","referencedDeclaration":396,"src":"5741:20:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1956,"name":"InvalidBehaviorOnError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1686,"src":"5715:22:8","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":1960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5715:47:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1961,"nodeType":"RevertStatement","src":"5708:54:8"}]}},{"condition":{"expression":{"id":1964,"name":"call","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1945,"src":"5782:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$397_calldata_ptr","typeString":"struct Payload.Call calldata"}},"id":1965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5787:12:8","memberName":"delegateCall","nodeType":"MemberAccess","referencedDeclaration":392,"src":"5782:17:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1970,"nodeType":"IfStatement","src":"5778:55:8","trueBody":{"errorCall":{"arguments":[{"id":1967,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1930,"src":"5831:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1966,"name":"DelegateCallNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1691,"src":"5808:22:8","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$_t_error_$","typeString":"function (uint256) pure returns (error)"}},"id":1968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5808:25:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1969,"nodeType":"RevertStatement","src":"5801:32:8"}},{"condition":{"expression":{"id":1971,"name":"call","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1945,"src":"5845:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$397_calldata_ptr","typeString":"struct Payload.Call calldata"}},"id":1972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5850:12:8","memberName":"onlyFallback","nodeType":"MemberAccess","referencedDeclaration":394,"src":"5845:17:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1977,"nodeType":"IfStatement","src":"5841:55:8","trueBody":{"errorCall":{"arguments":[{"id":1974,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1930,"src":"5894:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1973,"name":"OnlyFallbackNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1696,"src":"5871:22:8","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$_t_error_$","typeString":"function (uint256) pure returns (error)"}},"id":1975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5871:25:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1976,"nodeType":"RevertStatement","src":"5864:32:8"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1978,"name":"call","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1945,"src":"5908:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$397_calldata_ptr","typeString":"struct Payload.Call calldata"}},"id":1979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5913:8:8","memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":390,"src":"5908:13:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5925:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5908:18:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1988,"nodeType":"IfStatement","src":"5904:64:8","trueBody":{"errorCall":{"arguments":[{"id":1983,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1930,"src":"5951:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":1984,"name":"call","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1945,"src":"5954:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$397_calldata_ptr","typeString":"struct Payload.Call calldata"}},"id":1985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5959:8:8","memberName":"gasLimit","nodeType":"MemberAccess","referencedDeclaration":390,"src":"5954:13:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1982,"name":"GasLimitNotZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1703,"src":"5935:15:8","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":1986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5935:33:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1987,"nodeType":"RevertStatement","src":"5928:40:8"}},{"assignments":[1990],"declarations":[{"constant":false,"id":1990,"mutability":"mutable","name":"data","nameLocation":"5992:4:8","nodeType":"VariableDeclaration","scope":2076,"src":"5977:19:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1989,"name":"bytes","nodeType":"ElementaryTypeName","src":"5977:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1993,"initialValue":{"expression":{"id":1991,"name":"call","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1945,"src":"5999:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$397_calldata_ptr","typeString":"struct Payload.Call calldata"}},"id":1992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6004:4:8","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":388,"src":"5999:9:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"5977:31:8"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1994,"name":"call","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1945,"src":"6021:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$397_calldata_ptr","typeString":"struct Payload.Call calldata"}},"id":1995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6026:5:8","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":386,"src":"6021:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6035:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6021:15:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2074,"nodeType":"Block","src":"6457:206:8","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2054,"name":"call","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1945,"src":"6516:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$397_calldata_ptr","typeString":"struct Payload.Call calldata"}},"id":2055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6521:2:8","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":384,"src":"6516:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":2056,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1835,"src":"6527:11:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6516:22:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2062,"nodeType":"IfStatement","src":"6512:61:8","trueBody":{"errorCall":{"arguments":[{"id":2059,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1930,"src":"6571:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2058,"name":"UnauthorizedTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1647,"src":"6547:23:8","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$_t_error_$","typeString":"function (uint256) pure returns (error)"}},"id":2060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6547:26:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2061,"nodeType":"RevertStatement","src":"6540:33:8"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2063,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1990,"src":"6587:4:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":2064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6592:6:8","memberName":"length","nodeType":"MemberAccess","src":"6587:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6602:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6587:16:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2073,"nodeType":"IfStatement","src":"6583:71:8","trueBody":{"errorCall":{"arguments":[{"id":2068,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1930,"src":"6639:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":2069,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1990,"src":"6642:4:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":2070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6647:6:8","memberName":"length","nodeType":"MemberAccess","src":"6642:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2067,"name":"NativeTransferDataNotEmpty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1710,"src":"6612:26:8","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":2071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6612:42:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2072,"nodeType":"RevertStatement","src":"6605:49:8"}}]},"id":2075,"nodeType":"IfStatement","src":"6017:646:8","trueBody":{"id":2053,"nodeType":"Block","src":"6038:413:8","statements":[{"condition":{"id":2002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6052:26:8","subExpression":{"arguments":[{"expression":{"id":1999,"name":"call","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1945,"src":"6070:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$397_calldata_ptr","typeString":"struct Payload.Call calldata"}},"id":2000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6075:2:8","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":384,"src":"6070:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1998,"name":"hasERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"6053:16:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":2001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6053:25:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2007,"nodeType":"IfStatement","src":"6048:65:8","trueBody":{"errorCall":{"arguments":[{"id":2004,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1930,"src":"6111:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2003,"name":"UnauthorizedTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1647,"src":"6087:23:8","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$_t_error_$","typeString":"function (uint256) pure returns (error)"}},"id":2005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6087:26:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2006,"nodeType":"RevertStatement","src":"6080:33:8"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2008,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1990,"src":"6188:4:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":2009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6193:6:8","memberName":"length","nodeType":"MemberAccess","src":"6188:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3638","id":2010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6203:2:8","typeDescriptions":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"value":"68"},"src":"6188:17:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2016,"nodeType":"IfStatement","src":"6184:56:8","trueBody":{"errorCall":{"arguments":[{"id":2013,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1930,"src":"6238:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2012,"name":"UnauthorizedTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1647,"src":"6214:23:8","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$_t_error_$","typeString":"function (uint256) pure returns (error)"}},"id":2014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6214:26:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2015,"nodeType":"RevertStatement","src":"6207:33:8"}},{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":2024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":2019,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1990,"src":"6261:4:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"34","id":2020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6267:1:8","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"id":2021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"6261:8:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":2018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6254:6:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":2017,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6254:6:8","typeDescriptions":{}}},"id":2022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6254:16:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":2023,"name":"ERC20_TRANSFER_SELECTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1635,"src":"6274:23:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"6254:43:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2029,"nodeType":"IfStatement","src":"6250:82:8","trueBody":{"errorCall":{"arguments":[{"id":2026,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1930,"src":"6330:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2025,"name":"UnauthorizedTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1647,"src":"6306:23:8","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$_t_error_$","typeString":"function (uint256) pure returns (error)"}},"id":2027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6306:26:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2028,"nodeType":"RevertStatement","src":"6299:33:8"}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":2032,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1990,"src":"6354:4:8","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"3336","id":2034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6361:2:8","typeDescriptions":{"typeIdentifier":"t_rational_36_by_1","typeString":"int_const 36"},"value":"36"},"id":2035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"6354:10:8","startExpression":{"hexValue":"34","id":2033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6359:1:8","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":2031,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6346:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2030,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6346:7:8","typeDescriptions":{}}},"id":2036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6346:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"arguments":[{"arguments":[{"id":2043,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1835,"src":"6393:11:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6385:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":2041,"name":"uint160","nodeType":"ElementaryTypeName","src":"6385:7:8","typeDescriptions":{}}},"id":2044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6385:20:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":2040,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6377:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2039,"name":"uint256","nodeType":"ElementaryTypeName","src":"6377:7:8","typeDescriptions":{}}},"id":2045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6377:29:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2038,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6369:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2037,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6369:7:8","typeDescriptions":{}}},"id":2046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6369:38:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6346:61:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2052,"nodeType":"IfStatement","src":"6342:100:8","trueBody":{"errorCall":{"arguments":[{"id":2049,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1930,"src":"6440:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2048,"name":"UnauthorizedTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1647,"src":"6416:23:8","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$_t_error_$","typeString":"function (uint256) pure returns (error)"}},"id":2050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6416:26:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2051,"nodeType":"RevertStatement","src":"6409:33:8"}}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1933,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1930,"src":"5544:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":1934,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"5548:7:8","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_calldata_ptr","typeString":"struct Payload.Decoded calldata"}},"id":1935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5556:5:8","memberName":"calls","nodeType":"MemberAccess","referencedDeclaration":406,"src":"5548:13:8","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$397_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Payload.Call calldata[] calldata"}},"id":1936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5562:6:8","memberName":"length","nodeType":"MemberAccess","src":"5548:20:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5544:24:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2077,"initializationExpression":{"assignments":[1930],"declarations":[{"constant":false,"id":1930,"mutability":"mutable","name":"i","nameLocation":"5537:1:8","nodeType":"VariableDeclaration","scope":2077,"src":"5529:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1929,"name":"uint256","nodeType":"ElementaryTypeName","src":"5529:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1932,"initialValue":{"hexValue":"30","id":1931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5541:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5529:13:8"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":1939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5570:3:8","subExpression":{"id":1938,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1930,"src":"5570:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1940,"nodeType":"ExpressionStatement","src":"5570:3:8"},"nodeType":"ForStatement","src":"5524:1145:8"},{"expression":{"arguments":[{"id":2079,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1835,"src":"6702:11:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2080,"name":"unlockTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1837,"src":"6715:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2078,"name":"_rootForTimedRefund","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1741,"src":"6682:19:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (address,uint256) pure returns (bytes32)"}},"id":2081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6682:49:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1833,"id":2082,"nodeType":"Return","src":"6675:56:8"}]},"baseFunctions":[1059],"documentation":{"id":1824,"nodeType":"StructuredDocumentation","src":"4295:139:8","text":"@inheritdoc ISapient\n @dev `signature` is ABI-encoded as `(address destination, uint256 unlockTimestamp, bytes compactSignature)`."},"functionSelector":"13792a4a","implemented":true,"kind":"function","modifiers":[],"name":"recoverSapientSignature","nameLocation":"4446:23:8","parameters":{"id":1830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1827,"mutability":"mutable","name":"payload","nameLocation":"4495:7:8","nodeType":"VariableDeclaration","scope":2084,"src":"4470:32:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_calldata_ptr","typeString":"struct Payload.Decoded"},"typeName":{"id":1826,"nodeType":"UserDefinedTypeName","pathNode":{"id":1825,"name":"Payload.Decoded","nameLocations":["4470:7:8","4478:7:8"],"nodeType":"IdentifierPath","referencedDeclaration":420,"src":"4470:15:8"},"referencedDeclaration":420,"src":"4470:15:8","typeDescriptions":{"typeIdentifier":"t_struct$_Decoded_$420_storage_ptr","typeString":"struct Payload.Decoded"}},"visibility":"internal"},{"constant":false,"id":1829,"mutability":"mutable","name":"signature","nameLocation":"4519:9:8","nodeType":"VariableDeclaration","scope":2084,"src":"4504:24:8","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1828,"name":"bytes","nodeType":"ElementaryTypeName","src":"4504:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4469:60:8"},"returnParameters":{"id":1833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1832,"mutability":"mutable","name":"imageHash","nameLocation":"4573:9:8","nodeType":"VariableDeclaration","scope":2084,"src":"4565:17:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1831,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4565:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4564:19:8"},"scope":2085,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":1619,"name":"ISapient","nameLocations":["780:8:8"],"nodeType":"IdentifierPath","referencedDeclaration":1060,"src":"780:8:8"},"id":1620,"nodeType":"InheritanceSpecifier","src":"780:8:8"}],"canonicalName":"TimedRefundSapient","contractDependencies":[],"contractKind":"contract","documentation":{"id":1618,"nodeType":"StructuredDocumentation","src":"439:310:8","text":"@title TimedRefundSapient\n @notice Sapient signer that authorizes time-locked refund batches to a fixed destination.\n @dev The returned image hash commits to `(destination, unlockTimestamp)` and only approves\n plain native transfers or ERC20 `transfer(address,uint256)` calls to that destination."},"fullyImplemented":true,"linearizedBaseContracts":[2085,1060],"name":"TimedRefundSapient","nameLocation":"758:18:8","scope":2086,"usedErrors":[294,1647,1652,1659,1664,1671,1676,1679,1686,1691,1696,1703,1710],"usedEvents":[]}],"license":"Apache-2.0"}}}},"solcLongVersion":"0.8.30","solcVersion":"0.8.30"} \ No newline at end of file diff --git a/jobs/trails/timed-refund-1.yaml b/jobs/trails/timed-refund-1.yaml index 64f03ba..1491abf 100644 --- a/jobs/trails/timed-refund-1.yaml +++ b/jobs/trails/timed-refund-1.yaml @@ -9,6 +9,7 @@ constants: - "0xE0b2E56fc8720382502faDd248Bc38F94B3ba188" min_evm_version: "shanghai" +deprecated: true actions: - name: "trails-timed-refund-allowlist" diff --git a/jobs/trails/timed-refund-dev-1.yaml b/jobs/trails/timed-refund-dev-1.yaml new file mode 100644 index 0000000..4b4e2bd --- /dev/null +++ b/jobs/trails/timed-refund-dev-1.yaml @@ -0,0 +1,69 @@ +name: "trails-timed-refund-dev-1" +version: "1" +description: "Deploy timed refund auto-recovery contracts (dev) (commit 3611e8a313793d148eb2b2dbfe4727130c48aa23)" +depends_on: ["era-evm-predeploy-erc2470"] + +constants: + timed-refund-dev-allowlist: + # watchtower EOA + - "0x07F9D6566336C42E70cE6B6faa6cDf78b1f101a7" + # watchtower Sequence v3 RC-5 1/1 wallet: threshold 1, checkpoint 0, checkpointer address(0) + - "0xD81cdeBAe019724fa10C2B7e5d204DB95ae08652" + # API EOA + - "0x54fAE124fE06D157ad9cc898b0D10A027C70d25c" + # API Sequence v3 RC-5 1/1 wallet: threshold 1, checkpoint 0, checkpointer address(0) + - "0xf16BA650fbBcb6ACCB2b475BFE3B143255017868" + +min_evm_version: "prague" + +actions: + - name: "trails-timed-refund-dev-allowlist" + template: "erc-2470" + arguments: + salt: "{{salt-zero}}" + creationCode: + type: "constructor-encode" + arguments: + creationCode: "{{Contract(./build-info/timed-refund-2/timed-refund.json:Allowlist).creationCode}}" + types: ["address", "address[]"] + values: ["{{developer-multisig-01}}", "{{timed-refund-dev-allowlist}}"] + output: true + + - name: "verify-trails-timed-refund-dev-allowlist" + type: "verify-contract" + depends_on: ["trails-timed-refund-dev-allowlist"] + arguments: + address: "{{trails-timed-refund-dev-allowlist.address}}" + contract: "{{Contract(./build-info/timed-refund-2/timed-refund.json:Allowlist)}}" + constructorArguments: + type: "constructor-encode" + arguments: + types: ["address", "address[]"] + values: ["{{developer-multisig-01}}", "{{timed-refund-dev-allowlist}}"] + output: false + + - name: "trails-timed-refund-dev-sapient" + template: "erc-2470" + depends_on: ["trails-timed-refund-dev-allowlist"] + arguments: + salt: "{{salt-zero}}" + creationCode: + type: "constructor-encode" + arguments: + creationCode: "{{Contract(./build-info/timed-refund-2/timed-refund.json:TimedRefundSapient).creationCode}}" + types: ["address"] + values: ["{{trails-timed-refund-dev-allowlist.address}}"] + output: true + + - name: "verify-trails-timed-refund-dev-sapient" + type: "verify-contract" + depends_on: ["trails-timed-refund-dev-sapient"] + arguments: + address: "{{trails-timed-refund-dev-sapient.address}}" + contract: "{{Contract(./build-info/timed-refund-2/timed-refund.json:TimedRefundSapient)}}" + constructorArguments: + type: "constructor-encode" + arguments: + types: ["address"] + values: ["{{trails-timed-refund-dev-allowlist.address}}"] + output: false diff --git a/jobs/trails/timed-refund-prod-1.yaml b/jobs/trails/timed-refund-prod-1.yaml new file mode 100644 index 0000000..bc3008e --- /dev/null +++ b/jobs/trails/timed-refund-prod-1.yaml @@ -0,0 +1,69 @@ +name: "trails-timed-refund-prod-1" +version: "1" +description: "Deploy timed refund auto-recovery contracts (prod) (commit 3611e8a313793d148eb2b2dbfe4727130c48aa23)" +depends_on: ["era-evm-predeploy-erc2470"] + +constants: + timed-refund-prod-allowlist: + # watchtower EOA + - "0x86A697908fFB0F34795E4cD6f7C3E78a59b6226d" + # watchtower Sequence v3 RC-5 1/1 wallet: threshold 1, checkpoint 0, checkpointer address(0) + - "0x64D8a1f6DCe5a702c715FaB25BafD69E262F642d" + # API EOA + - "0x61fDd6eEA8C837303d84899AD0852CcCaAE35964" + # API Sequence v3 RC-5 1/1 wallet: threshold 1, checkpoint 0, checkpointer address(0) + - "0x5c79c1416a6DE9F0649b2AeBcf2311ecFdD8eca2" + +min_evm_version: "prague" + +actions: + - name: "trails-timed-refund-prod-allowlist" + template: "erc-2470" + arguments: + salt: "{{salt-zero}}" + creationCode: + type: "constructor-encode" + arguments: + creationCode: "{{Contract(./build-info/timed-refund-2/timed-refund.json:Allowlist).creationCode}}" + types: ["address", "address[]"] + values: ["{{developer-multisig-01}}", "{{timed-refund-prod-allowlist}}"] + output: true + + - name: "verify-trails-timed-refund-prod-allowlist" + type: "verify-contract" + depends_on: ["trails-timed-refund-prod-allowlist"] + arguments: + address: "{{trails-timed-refund-prod-allowlist.address}}" + contract: "{{Contract(./build-info/timed-refund-2/timed-refund.json:Allowlist)}}" + constructorArguments: + type: "constructor-encode" + arguments: + types: ["address", "address[]"] + values: ["{{developer-multisig-01}}", "{{timed-refund-prod-allowlist}}"] + output: false + + - name: "trails-timed-refund-prod-sapient" + template: "erc-2470" + depends_on: ["trails-timed-refund-prod-allowlist"] + arguments: + salt: "{{salt-zero}}" + creationCode: + type: "constructor-encode" + arguments: + creationCode: "{{Contract(./build-info/timed-refund-2/timed-refund.json:TimedRefundSapient).creationCode}}" + types: ["address"] + values: ["{{trails-timed-refund-prod-allowlist.address}}"] + output: true + + - name: "verify-trails-timed-refund-prod-sapient" + type: "verify-contract" + depends_on: ["trails-timed-refund-prod-sapient"] + arguments: + address: "{{trails-timed-refund-prod-sapient.address}}" + contract: "{{Contract(./build-info/timed-refund-2/timed-refund.json:TimedRefundSapient)}}" + constructorArguments: + type: "constructor-encode" + arguments: + types: ["address"] + values: ["{{trails-timed-refund-prod-allowlist.address}}"] + output: false From d565b4f895e073b2d85ed5ee20ec79f05a815518 Mon Sep 17 00:00:00 2001 From: agusx1211 Date: Wed, 10 Jun 2026 18:55:20 +0000 Subject: [PATCH 2/3] trail jobs should target prague --- jobs/trails/rc-1.yaml | 1 + jobs/trails/rc-2.yaml | 1 + jobs/trails/rc-3.yaml | 1 + jobs/trails/rc-4.yaml | 1 + jobs/trails/rc-5.yaml | 1 + jobs/trails/timed-refund-1.yaml | 2 +- jobs/trails/utils-1.yaml | 2 +- 7 files changed, 7 insertions(+), 2 deletions(-) diff --git a/jobs/trails/rc-1.yaml b/jobs/trails/rc-1.yaml index c9ac95b..30ac75b 100644 --- a/jobs/trails/rc-1.yaml +++ b/jobs/trails/rc-1.yaml @@ -3,6 +3,7 @@ version: "rc-1" description: "Deploy Trails contracts (rc 1)" depends_on: ["era-evm-predeploy-erc2470"] skip_networks: [19011, 40875] +min_evm_version: "prague" deprecated: true actions: diff --git a/jobs/trails/rc-2.yaml b/jobs/trails/rc-2.yaml index fb35564..f4ae820 100644 --- a/jobs/trails/rc-2.yaml +++ b/jobs/trails/rc-2.yaml @@ -3,6 +3,7 @@ version: "rc-2" description: "Deploy Trails contracts (rc 2)" depends_on: ["era-evm-predeploy-erc2470"] skip_networks: [19011, 40875] +min_evm_version: "prague" deprecated: true actions: diff --git a/jobs/trails/rc-3.yaml b/jobs/trails/rc-3.yaml index b4b72e8..0a79658 100644 --- a/jobs/trails/rc-3.yaml +++ b/jobs/trails/rc-3.yaml @@ -3,6 +3,7 @@ version: "rc-3" description: "Deploy Trails contracts (rc 3)" depends_on: ["era-evm-predeploy-erc2470", "multicall3"] skip_networks: [19011, 40875] +min_evm_version: "prague" actions: - name: "trails-router" diff --git a/jobs/trails/rc-4.yaml b/jobs/trails/rc-4.yaml index ee021ff..6e06b0d 100644 --- a/jobs/trails/rc-4.yaml +++ b/jobs/trails/rc-4.yaml @@ -3,6 +3,7 @@ version: "rc-4.2" description: "Deploy Trails contracts (rc 4)" depends_on: ["era-evm-predeploy-erc2470", "multicall3"] skip_networks: [19011, 40875] +min_evm_version: "prague" actions: - name: "trails-router" diff --git a/jobs/trails/rc-5.yaml b/jobs/trails/rc-5.yaml index 7b58d24..b392bb3 100644 --- a/jobs/trails/rc-5.yaml +++ b/jobs/trails/rc-5.yaml @@ -3,6 +3,7 @@ version: "rc-5" description: "Deploy Trails contracts (rc 5)" depends_on: ["era-evm-predeploy-erc2470", "multicall3"] skip_networks: [19011, 40875] +min_evm_version: "prague" actions: - name: "trails-router" diff --git a/jobs/trails/timed-refund-1.yaml b/jobs/trails/timed-refund-1.yaml index 1491abf..f2622a9 100644 --- a/jobs/trails/timed-refund-1.yaml +++ b/jobs/trails/timed-refund-1.yaml @@ -8,7 +8,7 @@ constants: - "0xA73793B25699B21986af43B0b6A1D4F4bebf54b2" - "0xE0b2E56fc8720382502faDd248Bc38F94B3ba188" -min_evm_version: "shanghai" +min_evm_version: "prague" deprecated: true actions: diff --git a/jobs/trails/utils-1.yaml b/jobs/trails/utils-1.yaml index b29bf36..de0fa91 100644 --- a/jobs/trails/utils-1.yaml +++ b/jobs/trails/utils-1.yaml @@ -4,7 +4,7 @@ description: "Deploy TrailsUtils contract (v1)" depends_on: ["era-evm-predeploy-erc2470"] skip_networks: [40, 41] -min_evm_version: "shanghai" +min_evm_version: "prague" actions: - name: "trails-utils" From a8e6ee7a51307bcab907455e7ab868de546eb643 Mon Sep 17 00:00:00 2001 From: agusx1211 Date: Thu, 11 Jun 2026 10:51:35 +0000 Subject: [PATCH 3/3] Deploy timed refund sequence wallets --- .../templates/deploy-wallet-v3.yaml | 60 +++++++++++++++++++ jobs/trails/timed-refund-dev-1.yaml | 27 +++++++-- jobs/trails/timed-refund-prod-1.yaml | 27 +++++++-- 3 files changed, 106 insertions(+), 8 deletions(-) create mode 100644 jobs/sequence_v3/templates/deploy-wallet-v3.yaml diff --git a/jobs/sequence_v3/templates/deploy-wallet-v3.yaml b/jobs/sequence_v3/templates/deploy-wallet-v3.yaml new file mode 100644 index 0000000..199d4e7 --- /dev/null +++ b/jobs/sequence_v3/templates/deploy-wallet-v3.yaml @@ -0,0 +1,60 @@ +name: "deploy-wallet-v3" +version: "1" +type: "template" + +arguments: + mainModule: + type: "address" + salt: + type: "bytes32" + +returns: + address: + type: "address" + +setup: + - type: "job-completed" + arguments: + job: "sequence_v3/rc_5" + +actions: + - name: "deploy" + type: "send-transaction" + arguments: + to: "{{sequence_v3/rc_5.factory.address}}" + value: "0" + data: + type: "abi-encode" + arguments: + signature: "deploy(address,bytes32)" + values: + - "{{mainModule}}" + - "{{salt}}" + +skip_condition: + - type: "contract-exists" + arguments: + address: + type: "compute-create2" + arguments: + deployerAddress: "{{sequence_v3/rc_5.factory.address}}" + salt: "{{salt}}" + initCode: + type: "constructor-encode" + arguments: + creationCode: "0x6041600e3d396021805130553df33d3d36153402601f57363d3d373d363d30545af43d82803e903d91601f57fd5bf3" + types: ["address"] + values: ["{{mainModule}}"] + +outputs: + address: + type: "compute-create2" + arguments: + deployerAddress: "{{sequence_v3/rc_5.factory.address}}" + salt: "{{salt}}" + initCode: + type: "constructor-encode" + arguments: + creationCode: "0x6041600e3d396021805130553df33d3d36153402601f57363d3d373d363d30545af43d82803e903d91601f57fd5bf3" + types: ["address"] + values: ["{{mainModule}}"] diff --git a/jobs/trails/timed-refund-dev-1.yaml b/jobs/trails/timed-refund-dev-1.yaml index 4b4e2bd..592206d 100644 --- a/jobs/trails/timed-refund-dev-1.yaml +++ b/jobs/trails/timed-refund-dev-1.yaml @@ -1,17 +1,17 @@ name: "trails-timed-refund-dev-1" version: "1" -description: "Deploy timed refund auto-recovery contracts (dev) (commit 3611e8a313793d148eb2b2dbfe4727130c48aa23)" -depends_on: ["era-evm-predeploy-erc2470"] +description: "Deploy timed refund auto-recovery contracts (dev) (0xsequence/trails-contracts commit 3611e8a313793d148eb2b2dbfe4727130c48aa23)" +depends_on: ["era-evm-predeploy-erc2470", "sequence_v3/rc_5"] constants: timed-refund-dev-allowlist: # watchtower EOA - "0x07F9D6566336C42E70cE6B6faa6cDf78b1f101a7" - # watchtower Sequence v3 RC-5 1/1 wallet: threshold 1, checkpoint 0, checkpointer address(0) + # watchtower Sequence v3 RC-5 1/1 wallet: threshold 1, checkpoint 0, checkpointer address(0), signer above with weight 1 - "0xD81cdeBAe019724fa10C2B7e5d204DB95ae08652" # API EOA - "0x54fAE124fE06D157ad9cc898b0D10A027C70d25c" - # API Sequence v3 RC-5 1/1 wallet: threshold 1, checkpoint 0, checkpointer address(0) + # API Sequence v3 RC-5 1/1 wallet: threshold 1, checkpoint 0, checkpointer address(0), signer above with weight 1 - "0xf16BA650fbBcb6ACCB2b475BFE3B143255017868" min_evm_version: "prague" @@ -67,3 +67,22 @@ actions: types: ["address"] values: ["{{trails-timed-refund-dev-allowlist.address}}"] output: false + + # Deploys the Sequence v3 wallets used in the allowlist. + # Salt is the imageHash of the wallet's initial configuration. + + - name: "trails-timed-refund-dev-watchtower-wallet" + template: "deploy-wallet-v3" + arguments: + mainModule: "{{sequence_v3/rc_5.stage-1-module.address}}" + # threshold 1, checkpoint 0, checkpointer address(0), signer 0x07F9D6566336C42E70cE6B6faa6cDf78b1f101a7 with weight 1 + salt: "0x7c400dc22a44bb9f0b97fd859271f40ee7593963ff41ec1332cf491088df9541" + output: false + + - name: "trails-timed-refund-dev-api-wallet" + template: "deploy-wallet-v3" + arguments: + mainModule: "{{sequence_v3/rc_5.stage-1-module.address}}" + # threshold 1, checkpoint 0, checkpointer address(0), signer 0x54fAE124fE06D157ad9cc898b0D10A027C70d25c with weight 1 + salt: "0x678c0ca0528005c2b2ff487e8d09df4ec6bfff54e08a03a55876af4e512dae9f" + output: false diff --git a/jobs/trails/timed-refund-prod-1.yaml b/jobs/trails/timed-refund-prod-1.yaml index bc3008e..3489aa0 100644 --- a/jobs/trails/timed-refund-prod-1.yaml +++ b/jobs/trails/timed-refund-prod-1.yaml @@ -1,17 +1,17 @@ name: "trails-timed-refund-prod-1" version: "1" -description: "Deploy timed refund auto-recovery contracts (prod) (commit 3611e8a313793d148eb2b2dbfe4727130c48aa23)" -depends_on: ["era-evm-predeploy-erc2470"] +description: "Deploy timed refund auto-recovery contracts (prod) (0xsequence/trails-contracts commit 3611e8a313793d148eb2b2dbfe4727130c48aa23)" +depends_on: ["era-evm-predeploy-erc2470", "sequence_v3/rc_5"] constants: timed-refund-prod-allowlist: # watchtower EOA - "0x86A697908fFB0F34795E4cD6f7C3E78a59b6226d" - # watchtower Sequence v3 RC-5 1/1 wallet: threshold 1, checkpoint 0, checkpointer address(0) + # watchtower Sequence v3 RC-5 1/1 wallet: threshold 1, checkpoint 0, checkpointer address(0), signer above with weight 1 - "0x64D8a1f6DCe5a702c715FaB25BafD69E262F642d" # API EOA - "0x61fDd6eEA8C837303d84899AD0852CcCaAE35964" - # API Sequence v3 RC-5 1/1 wallet: threshold 1, checkpoint 0, checkpointer address(0) + # API Sequence v3 RC-5 1/1 wallet: threshold 1, checkpoint 0, checkpointer address(0), signer above with weight 1 - "0x5c79c1416a6DE9F0649b2AeBcf2311ecFdD8eca2" min_evm_version: "prague" @@ -67,3 +67,22 @@ actions: types: ["address"] values: ["{{trails-timed-refund-prod-allowlist.address}}"] output: false + + # Deploys the Sequence v3 wallets used in the allowlist. + # Salt is the imageHash of the wallet's initial configuration. + + - name: "trails-timed-refund-prod-watchtower-wallet" + template: "deploy-wallet-v3" + arguments: + mainModule: "{{sequence_v3/rc_5.stage-1-module.address}}" + # threshold 1, checkpoint 0, checkpointer address(0), signer 0x86A697908fFB0F34795E4cD6f7C3E78a59b6226d with weight 1 + salt: "0xa1a2a6d47685f320f9eec88d6e81e783e96ccdb7f59772bb6830905e252697fe" + output: false + + - name: "trails-timed-refund-prod-api-wallet" + template: "deploy-wallet-v3" + arguments: + mainModule: "{{sequence_v3/rc_5.stage-1-module.address}}" + # threshold 1, checkpoint 0, checkpointer address(0), signer 0x61fDd6eEA8C837303d84899AD0852CcCaAE35964 with weight 1 + salt: "0xbf04de474ab5863ce898c67bb2352420e2bf17cec6d42088c088e3f4a58a628b" + output: false