@ensuro/account-abstraction
Version:
ERC-4337 related contracts by the Ensuro Team
541 lines • 32.8 kB
JSON
{
"_format": "hh3-artifact-1",
"contractName": "UnifiedForwarderAccount",
"sourceName": "contracts/UnifiedForwarderAccount.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "authority",
"type": "address"
},
{
"internalType": "address",
"name": "erc2771Target_",
"type": "address"
},
{
"internalType": "address[]",
"name": "signers",
"type": "address[]"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "address",
"name": "authority",
"type": "address"
}
],
"name": "AccessManagedInvalidAuthority",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "caller",
"type": "address"
},
{
"internalType": "uint32",
"name": "delay",
"type": "uint32"
}
],
"name": "AccessManagedRequiredDelay",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "caller",
"type": "address"
}
],
"name": "AccessManagedUnauthorized",
"type": "error"
},
{
"inputs": [],
"name": "ECDSAInvalidSignature",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "length",
"type": "uint256"
}
],
"name": "ECDSAInvalidSignatureLength",
"type": "error"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "s",
"type": "bytes32"
}
],
"name": "ECDSAInvalidSignatureS",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint192",
"name": "key",
"type": "uint192"
},
{
"internalType": "uint64",
"name": "expected",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "actual",
"type": "uint64"
}
],
"name": "InvalidNonce",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "InvalidSender",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "recovered",
"type": "address"
},
{
"internalType": "address",
"name": "expected",
"type": "address"
}
],
"name": "InvalidSignature",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "signer",
"type": "address"
}
],
"name": "UnauthorizedSigner",
"type": "error"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "selector",
"type": "bytes4"
}
],
"name": "UnsupportedSelector",
"type": "error"
},
{
"inputs": [],
"name": "ZeroAddress",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "authority",
"type": "address"
}
],
"name": "AuthorityUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "signer",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "authorized",
"type": "bool"
}
],
"name": "AuthorizedSignerSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "userOpHash",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "paymaster",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "nonce",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bool",
"name": "success",
"type": "bool"
},
{
"indexed": false,
"internalType": "uint256",
"name": "actualGasCost",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "actualGasUsed",
"type": "uint256"
}
],
"name": "UserOperationEvent",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "userOpHash",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "nonce",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes",
"name": "revertReason",
"type": "bytes"
}
],
"name": "UserOperationRevertReason",
"type": "event"
},
{
"inputs": [],
"name": "authority",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "signer",
"type": "address"
}
],
"name": "authorizedSigner",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "erc2771Target",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint192",
"name": "key",
"type": "uint192"
}
],
"name": "getNonce",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "uint256",
"name": "nonce",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "initCode",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "callData",
"type": "bytes"
},
{
"internalType": "bytes32",
"name": "accountGasLimits",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "preVerificationGas",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "gasFees",
"type": "bytes32"
},
{
"internalType": "bytes",
"name": "paymasterAndData",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "signature",
"type": "bytes"
}
],
"internalType": "struct PackedUserOperation",
"name": "userOp",
"type": "tuple"
}
],
"name": "getUserOpHash",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "uint256",
"name": "nonce",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "initCode",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "callData",
"type": "bytes"
},
{
"internalType": "bytes32",
"name": "accountGasLimits",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "preVerificationGas",
"type": "uint256"
},
{
"internalType": "bytes32",
"name": "gasFees",
"type": "bytes32"
},
{
"internalType": "bytes",
"name": "paymasterAndData",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "signature",
"type": "bytes"
}
],
"internalType": "struct PackedUserOperation[]",
"name": "ops",
"type": "tuple[]"
},
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "handleOps",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "isConsumingScheduledOp",
"outputs": [
{
"internalType": "bytes4",
"name": "",
"type": "bytes4"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newAuthority",
"type": "address"
}
],
"name": "setAuthority",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "signer",
"type": "address"
},
{
"internalType": "bool",
"name": "authorized",
"type": "bool"
}
],
"name": "setAuthorizedSigner",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
],
"bytecode": "0x60a060405234801561000f575f5ffd5b5060405161160838038061160883398101604081905261002e91610208565b8261003881610186565b506001600160a01b0382166100605760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0382166080525f5b815181101561017d575f6001600160a01b0316828281518110610094576100946102f5565b60200260200101516001600160a01b0316036100c35760405163d92e233d60e01b815260040160405180910390fd5b6001805f8484815181106100d9576100d96102f5565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81548160ff021916908315150217905550818181518110610128576101286102f5565b60200260200101516001600160a01b03167fb3d6ea2f95375108ba2992d1a80c6869790cbc61f9c7bae0b20e2122118429fb600160405161016d911515815260200190565b60405180910390a260010161006f565b50505050610309565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b80516001600160a01b03811681146101ef575f5ffd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5f5f6060848603121561021a575f5ffd5b610223846101d9565b9250610231602085016101d9565b60408501519092506001600160401b0381111561024c575f5ffd5b8401601f8101861361025c575f5ffd5b80516001600160401b03811115610275576102756101f4565b604051600582901b90603f8201601f191681016001600160401b03811182821017156102a3576102a36101f4565b6040529182526020818401810192908101898411156102c0575f5ffd5b6020850194505b838510156102e6576102d8856101d9565b8152602094850194016102c7565b50809450505050509250925092565b634e487b7160e01b5f52603260045260245ffd5b6080516112e16103275f395f818160d5015261099401526112e15ff3fe608060405260043610610087575f3560e01c8063765e827f11610057578063765e827f1461017f5780637a9e5e4b1461019e5780638fb36037146101bd578063b2f398eb146101ea578063bf7e214f14610228575f5ffd5b806322cdde4c146100925780632f33e6c3146100c45780633ae718f01461010f5780633e1b081214610130575f5ffd5b3661008e57005b5f5ffd5b34801561009d575f5ffd5b506100b16100ac366004610e5b565b610244565b6040519081526020015b60405180910390f35b3480156100cf575f5ffd5b506100f77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100bb565b34801561011a575f5ffd5b5061012e610129366004610eb0565b610254565b005b34801561013b575f5ffd5b506100b161014a366004610eeb565b6001600160c01b0381165f9081526002602052604090819020546001600160401b031691901b67ffffffffffffffff19161790565b34801561018a575f5ffd5b5061012e610199366004610f11565b6102e4565b3480156101a9575f5ffd5b5061012e6101b8366004610f91565b6103e4565b3480156101c8575f5ffd5b506101d1610461565b6040516001600160e01b031990911681526020016100bb565b3480156101f5575f5ffd5b50610218610204366004610f91565b60016020525f908152604090205460ff1681565b60405190151581526020016100bb565b348015610233575f5ffd5b505f546001600160a01b03166100f7565b5f61024e82610483565b92915050565b61025f335f366105a4565b6001600160a01b0382166102865760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0382165f81815260016020908152604091829020805460ff191685151590811790915591519182527fb3d6ea2f95375108ba2992d1a80c6869790cbc61f9c7bae0b20e2122118429fb910160405180910390a25050565b5f826001600160401b038111156102fd576102fd610fac565b604051908082528060200260200182016040528015610326578160200160208202803683370190505b5090505f5b838110156103845761035f85858381811061034857610348610fc0565b905060200281019061035a9190610fd4565b610693565b82828151811061037157610371610fc0565b602090810291909101015260010161032b565b505f5b838110156103dd576103d58585838181106103a4576103a4610fc0565b90506020028101906103b69190610fd4565b8383815181106103c8576103c8610fc0565b6020026020010151610970565b600101610387565b5050505050565b5f5433906001600160a01b0316811461041f5760405162d1953b60e31b81526001600160a01b03821660048201526024015b60405180910390fd5b816001600160a01b03163b5f03610454576040516361798f2f60e11b81526001600160a01b0383166004820152602401610416565b61045d82610b56565b5050565b5f8054600160a01b900460ff1661047757505f90565b50638fb3603760e01b90565b5f806104926020840184610f91565b60208401356104a46040860186610ff3565b6040516104b292919061103c565b6040519081900390206104c86060870187610ff3565b6040516104d692919061103c565b604051908190039020608087013560a088013560c08901356104fb60e08b018b610ff3565b60405161050992919061103c565b604080519182900382206001600160a01b0390991660208301528101969096526060860194909452608085019290925260a084015260c083015260e08201526101008101919091526101200160408051601f1981840301815282825280516020918201209083018190523091830191909152466060830152915060800160405160208183030381529060405280519060200120915050919050565b5f5f6105d76105ba5f546001600160a01b031690565b86306105c960045f898b61104b565b6105d291611072565b610ba9565b91509150816103dd5763ffffffff811615610670575f805460ff60a01b198116600160a01b17909155604051634a63ebf760e11b81526001600160a01b03909116906394c7d7ee90610631908890889088906004016110aa565b5f604051808303815f87803b158015610648575f5ffd5b505af115801561065a573d5f5f3e3d5ffd5b50505f805460ff60a01b19169055506103dd9050565b60405162d1953b60e31b81526001600160a01b0386166004820152602401610416565b5f306106a26020840184610f91565b6001600160a01b0316146106b96020840184610f91565b906106e3576040516313053d9360e21b81526001600160a01b039091166004820152602401610416565b505f6106f26060840184610ff3565b610700916004915f9161104b565b61070991611072565b90506001600160e01b0319811663135df5ff60e31b148061073a57506001600160e01b03198116638dd7712f60e01b145b81906107665760405163a519a14f60e01b81526001600160e01b03199091166004820152602401610416565b505f6107756060850185610ff3565b6004906107836020836110fd565b926107909392919061104b565b81019061079d9190610f91565b90506107a884610483565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f908152601c829052603c812091945090610825906107ec610100880188610ff3565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610c3b92505050565b905080826001600160a01b0380831690821614610868576040516310b5d43760e21b81526001600160a01b03928316600482015291166024820152604401610416565b50506001600160a01b0382165f90815260016020526040902054829060ff166108b05760405163e74c68bb60e01b81526001600160a01b039091166004820152602401610416565b50602080860135604081811c5f81815260029094529220546001600160401b03908116908390829084908116821461091d57604051630184c4a560e11b81526001600160c01b0390931660048401526001600160401b039182166024840152166044820152606401610416565b50505080600161092d9190611110565b6001600160c01b03939093165f908152600260205260409020805467ffffffffffffffff19166001600160401b0390941693909317909255509395945050505050565b5f8080806109896109846060880188610ff3565b610c63565b93509350935093505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316146109d157816109f4565b81856040516020016109e4929190611146565b6040516020818303038152906040525b90505f87608001355f1c6fffffffffffffffffffffffffffffffff1690505f5f866001600160a01b0316838786604051610a2e9190611172565b5f60405180830381858888f193505050503d805f8114610a69576040519150601f19603f3d011682016040523d82523d5f602084013e610a6e565b606091505b509150915081158015610a8157505f8151115b15610adb57610a9360208b018b610f91565b6001600160a01b0316897f1c4fada7374c0a9ee8841fc38afe82932dc0f8e69012e927f061a8bae611a2018c6020013584604051610ad292919061117d565b60405180910390a35b5f610ae960208c018c610f91565b6001600160a01b03168a7f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f8d60200135865f5f604051610b42949392919093845291151560208401526040830152606082015260800190565b60405180910390a450505050505050505050565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b6040516001600160a01b038085166024830152831660448201526001600160e01b0319821660648201525f908190819060840160408051601f19818403018152918152602080830180516001600160e01b031663b700961360e01b1781525f808052918290528351939450919290918a5afa15610c31575f516020805191945081901c150291505b5094509492505050565b5f5f5f5f610c498686610c92565b925092509250610c598282610cdb565b5090949350505050565b5f80806060610c75856004818961104b565b810190610c8291906111b9565b9299919850965090945092505050565b5f5f5f8351604103610cc9576020840151604085015160608601515f1a610cbb88828585610d93565b955095509550505050610cd4565b505081515f91506002905b9250925092565b5f826003811115610cee57610cee611297565b03610cf7575050565b6001826003811115610d0b57610d0b611297565b03610d295760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115610d3d57610d3d611297565b03610d5e5760405163fce698f760e01b815260048101829052602401610416565b6003826003811115610d7257610d72611297565b0361045d576040516335e2f38360e21b815260048101829052602401610416565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610dcc57505f91506003905082610e51565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015610e1d573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116610e4857505f925060019150829050610e51565b92505f91508190505b9450945094915050565b5f60208284031215610e6b575f5ffd5b81356001600160401b03811115610e80575f5ffd5b82016101208185031215610e92575f5ffd5b9392505050565b6001600160a01b0381168114610ead575f5ffd5b50565b5f5f60408385031215610ec1575f5ffd5b8235610ecc81610e99565b915060208301358015158114610ee0575f5ffd5b809150509250929050565b5f60208284031215610efb575f5ffd5b81356001600160c01b0381168114610e92575f5ffd5b5f5f5f60408486031215610f23575f5ffd5b83356001600160401b03811115610f38575f5ffd5b8401601f81018613610f48575f5ffd5b80356001600160401b03811115610f5d575f5ffd5b8660208260051b8401011115610f71575f5ffd5b602091820194509250840135610f8681610e99565b809150509250925092565b5f60208284031215610fa1575f5ffd5b8135610e9281610e99565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f823561011e19833603018112610fe9575f5ffd5b9190910192915050565b5f5f8335601e19843603018112611008575f5ffd5b8301803591506001600160401b03821115611021575f5ffd5b602001915036819003821315611035575f5ffd5b9250929050565b818382375f9101908152919050565b5f5f85851115611059575f5ffd5b83861115611065575f5ffd5b5050820193919092039150565b80356001600160e01b031981169060048410156110a3576001600160e01b0319600485900360031b81901b82161691505b5092915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561024e5761024e6110e9565b6001600160401b03818116838216019081111561024e5761024e6110e9565b5f81518060208401855e5f93019283525090919050565b5f611151828561112f565b60609390931b6bffffffffffffffffffffffff191683525050601401919050565b5f610e92828461112f565b828152604060208201525f82518060408401528060208501606085015e5f606082850101526060601f19601f8301168401019150509392505050565b5f5f5f5f608085870312156111cc575f5ffd5b84356111d781610e99565b935060208501356111e781610e99565b92506040850135915060608501356001600160401b03811115611208575f5ffd5b8501601f81018713611218575f5ffd5b80356001600160401b0381111561123157611231610fac565b604051601f8201601f19908116603f011681016001600160401b038111828210171561125f5761125f610fac565b604052818152828201602001891015611276575f5ffd5b816020840160208301375f6020838301015280935050505092959194509250565b634e487b7160e01b5f52602160045260245ffdfea26469706673582212206a326504eea552e7aaa06a7b02399fd232e54eba2b1db6c07bbfe7bc61b6b23764736f6c634300081e0033",
"deployedBytecode": "0x608060405260043610610087575f3560e01c8063765e827f11610057578063765e827f1461017f5780637a9e5e4b1461019e5780638fb36037146101bd578063b2f398eb146101ea578063bf7e214f14610228575f5ffd5b806322cdde4c146100925780632f33e6c3146100c45780633ae718f01461010f5780633e1b081214610130575f5ffd5b3661008e57005b5f5ffd5b34801561009d575f5ffd5b506100b16100ac366004610e5b565b610244565b6040519081526020015b60405180910390f35b3480156100cf575f5ffd5b506100f77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100bb565b34801561011a575f5ffd5b5061012e610129366004610eb0565b610254565b005b34801561013b575f5ffd5b506100b161014a366004610eeb565b6001600160c01b0381165f9081526002602052604090819020546001600160401b031691901b67ffffffffffffffff19161790565b34801561018a575f5ffd5b5061012e610199366004610f11565b6102e4565b3480156101a9575f5ffd5b5061012e6101b8366004610f91565b6103e4565b3480156101c8575f5ffd5b506101d1610461565b6040516001600160e01b031990911681526020016100bb565b3480156101f5575f5ffd5b50610218610204366004610f91565b60016020525f908152604090205460ff1681565b60405190151581526020016100bb565b348015610233575f5ffd5b505f546001600160a01b03166100f7565b5f61024e82610483565b92915050565b61025f335f366105a4565b6001600160a01b0382166102865760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b0382165f81815260016020908152604091829020805460ff191685151590811790915591519182527fb3d6ea2f95375108ba2992d1a80c6869790cbc61f9c7bae0b20e2122118429fb910160405180910390a25050565b5f826001600160401b038111156102fd576102fd610fac565b604051908082528060200260200182016040528015610326578160200160208202803683370190505b5090505f5b838110156103845761035f85858381811061034857610348610fc0565b905060200281019061035a9190610fd4565b610693565b82828151811061037157610371610fc0565b602090810291909101015260010161032b565b505f5b838110156103dd576103d58585838181106103a4576103a4610fc0565b90506020028101906103b69190610fd4565b8383815181106103c8576103c8610fc0565b6020026020010151610970565b600101610387565b5050505050565b5f5433906001600160a01b0316811461041f5760405162d1953b60e31b81526001600160a01b03821660048201526024015b60405180910390fd5b816001600160a01b03163b5f03610454576040516361798f2f60e11b81526001600160a01b0383166004820152602401610416565b61045d82610b56565b5050565b5f8054600160a01b900460ff1661047757505f90565b50638fb3603760e01b90565b5f806104926020840184610f91565b60208401356104a46040860186610ff3565b6040516104b292919061103c565b6040519081900390206104c86060870187610ff3565b6040516104d692919061103c565b604051908190039020608087013560a088013560c08901356104fb60e08b018b610ff3565b60405161050992919061103c565b604080519182900382206001600160a01b0390991660208301528101969096526060860194909452608085019290925260a084015260c083015260e08201526101008101919091526101200160408051601f1981840301815282825280516020918201209083018190523091830191909152466060830152915060800160405160208183030381529060405280519060200120915050919050565b5f5f6105d76105ba5f546001600160a01b031690565b86306105c960045f898b61104b565b6105d291611072565b610ba9565b91509150816103dd5763ffffffff811615610670575f805460ff60a01b198116600160a01b17909155604051634a63ebf760e11b81526001600160a01b03909116906394c7d7ee90610631908890889088906004016110aa565b5f604051808303815f87803b158015610648575f5ffd5b505af115801561065a573d5f5f3e3d5ffd5b50505f805460ff60a01b19169055506103dd9050565b60405162d1953b60e31b81526001600160a01b0386166004820152602401610416565b5f306106a26020840184610f91565b6001600160a01b0316146106b96020840184610f91565b906106e3576040516313053d9360e21b81526001600160a01b039091166004820152602401610416565b505f6106f26060840184610ff3565b610700916004915f9161104b565b61070991611072565b90506001600160e01b0319811663135df5ff60e31b148061073a57506001600160e01b03198116638dd7712f60e01b145b81906107665760405163a519a14f60e01b81526001600160e01b03199091166004820152602401610416565b505f6107756060850185610ff3565b6004906107836020836110fd565b926107909392919061104b565b81019061079d9190610f91565b90506107a884610483565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f908152601c829052603c812091945090610825906107ec610100880188610ff3565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610c3b92505050565b905080826001600160a01b0380831690821614610868576040516310b5d43760e21b81526001600160a01b03928316600482015291166024820152604401610416565b50506001600160a01b0382165f90815260016020526040902054829060ff166108b05760405163e74c68bb60e01b81526001600160a01b039091166004820152602401610416565b50602080860135604081811c5f81815260029094529220546001600160401b03908116908390829084908116821461091d57604051630184c4a560e11b81526001600160c01b0390931660048401526001600160401b039182166024840152166044820152606401610416565b50505080600161092d9190611110565b6001600160c01b03939093165f908152600260205260409020805467ffffffffffffffff19166001600160401b0390941693909317909255509395945050505050565b5f8080806109896109846060880188610ff3565b610c63565b93509350935093505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316146109d157816109f4565b81856040516020016109e4929190611146565b6040516020818303038152906040525b90505f87608001355f1c6fffffffffffffffffffffffffffffffff1690505f5f866001600160a01b0316838786604051610a2e9190611172565b5f60405180830381858888f193505050503d805f8114610a69576040519150601f19603f3d011682016040523d82523d5f602084013e610a6e565b606091505b509150915081158015610a8157505f8151115b15610adb57610a9360208b018b610f91565b6001600160a01b0316897f1c4fada7374c0a9ee8841fc38afe82932dc0f8e69012e927f061a8bae611a2018c6020013584604051610ad292919061117d565b60405180910390a35b5f610ae960208c018c610f91565b6001600160a01b03168a7f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f8d60200135865f5f604051610b42949392919093845291151560208401526040830152606082015260800190565b60405180910390a450505050505050505050565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b6040516001600160a01b038085166024830152831660448201526001600160e01b0319821660648201525f908190819060840160408051601f19818403018152918152602080830180516001600160e01b031663b700961360e01b1781525f808052918290528351939450919290918a5afa15610c31575f516020805191945081901c150291505b5094509492505050565b5f5f5f5f610c498686610c92565b925092509250610c598282610cdb565b5090949350505050565b5f80806060610c75856004818961104b565b810190610c8291906111b9565b9299919850965090945092505050565b5f5f5f8351604103610cc9576020840151604085015160608601515f1a610cbb88828585610d93565b955095509550505050610cd4565b505081515f91506002905b9250925092565b5f826003811115610cee57610cee611297565b03610cf7575050565b6001826003811115610d0b57610d0b611297565b03610d295760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115610d3d57610d3d611297565b03610d5e5760405163fce698f760e01b815260048101829052602401610416565b6003826003811115610d7257610d72611297565b0361045d576040516335e2f38360e21b815260048101829052602401610416565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610dcc57505f91506003905082610e51565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015610e1d573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116610e4857505f925060019150829050610e51565b92505f91508190505b9450945094915050565b5f60208284031215610e6b575f5ffd5b81356001600160401b03811115610e80575f5ffd5b82016101208185031215610e92575f5ffd5b9392505050565b6001600160a01b0381168114610ead575f5ffd5b50565b5f5f60408385031215610ec1575f5ffd5b8235610ecc81610e99565b915060208301358015158114610ee0575f5ffd5b809150509250929050565b5f60208284031215610efb575f5ffd5b81356001600160c01b0381168114610e92575f5ffd5b5f5f5f60408486031215610f23575f5ffd5b83356001600160401b03811115610f38575f5ffd5b8401601f81018613610f48575f5ffd5b80356001600160401b03811115610f5d575f5ffd5b8660208260051b8401011115610f71575f5ffd5b602091820194509250840135610f8681610e99565b809150509250925092565b5f60208284031215610fa1575f5ffd5b8135610e9281610e99565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f823561011e19833603018112610fe9575f5ffd5b9190910192915050565b5f5f8335601e19843603018112611008575f5ffd5b8301803591506001600160401b03821115611021575f5ffd5b602001915036819003821315611035575f5ffd5b9250929050565b818382375f9101908152919050565b5f5f85851115611059575f5ffd5b83861115611065575f5ffd5b5050820193919092039150565b80356001600160e01b031981169060048410156110a3576001600160e01b0319600485900360031b81901b82161691505b5092915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561024e5761024e6110e9565b6001600160401b03818116838216019081111561024e5761024e6110e9565b5f81518060208401855e5f93019283525090919050565b5f611151828561112f565b60609390931b6bffffffffffffffffffffffff191683525050601401919050565b5f610e92828461112f565b828152604060208201525f82518060408401528060208501606085015e5f606082850101526060601f19601f8301168401019150509392505050565b5f5f5f5f608085870312156111cc575f5ffd5b84356111d781610e99565b935060208501356111e781610e99565b92506040850135915060608501356001600160401b03811115611208575f5ffd5b8501601f81018713611218575f5ffd5b80356001600160401b0381111561123157611231610fac565b604051601f8201601f19908116603f011681016001600160401b038111828210171561125f5761125f610fac565b604052818152828201602001891015611276575f5ffd5b816020840160208301375f6020838301015280935050505092959194509250565b634e487b7160e01b5f52602160045260245ffdfea26469706673582212206a326504eea552e7aaa06a7b02399fd232e54eba2b1db6c07bbfe7bc61b6b23764736f6c634300081e0033",
"linkReferences": {},
"deployedLinkReferences": {},
"immutableReferences": {
"15032": [
{
"length": 32,
"start": 213
},
{
"length": 32,
"start": 2452
}
]
},
"inputSourceName": "project/contracts/UnifiedForwarderAccount.sol",
"buildInfoId": "solc-0_8_30-ce7ccc34c8ce5a5834c5c7141e779845a204959a"
}