UNPKG

@safe-global/safe-contracts

Version:
165 lines (164 loc) 16.6 kB
{ "_format": "hh-sol-artifact-1", "contractName": "Test4337ModuleAndHandler", "sourceName": "contracts/test/4337/Test4337ModuleAndHandler.sol", "abi": [ { "inputs": [ { "internalType": "address", "name": "entryPointAddress", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "enableMyself", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "entryPoint", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "execTransaction", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "myAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "internalType": "struct UserOperation", "name": "userOp", "type": "tuple" }, { "internalType": "bytes32", "name": "", "type": "bytes32" }, { "internalType": "uint256", "name": "missingAccountFunds", "type": "uint256" } ], "name": "validateUserOp", "outputs": [ { "internalType": "uint256", "name": "validationData", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x60c060405234801561001057600080fd5b50604051610d37380380610d37833981810160405281019061003291906100bb565b8073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250503073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250505061012d565b6000815190506100b581610116565b92915050565b6000602082840312156100cd57600080fd5b60006100db848285016100a6565b91505092915050565b60006100ef826100f6565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b61011f816100e4565b811461012a57600080fd5b50565b60805160601c60a05160601c610bc861016f6000398061017c5280610620525080610117528061023652806102ca5280610401528061049a5250610bc86000f3fe60806040526004361061004a5760003560e01c806326b85ee11461004f5780633a871cdd1461007a578063a798b2b1146100b7578063ab4ed83e146100ce578063b0d691fe146100ea575b600080fd5b34801561005b57600080fd5b50610064610115565b6040516100719190610955565b60405180910390f35b34801561008657600080fd5b506100a1600480360381019061009c91906107ba565b610139565b6040516100ae9190610a68565b60405180910390f35b3480156100c357600080fd5b506100cc61021d565b005b6100e860048036038101906100e39190610725565b610539565b005b3480156100f657600080fd5b506100ff61061e565b60405161010c9190610955565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b60008084600001602081019061014f91906106fc565b9050600081905060008414610210578073ffffffffffffffffffffffffffffffffffffffff1663468721a77f00000000000000000000000000000000000000000000000000000000000000008660006040518463ffffffff1660e01b81526004016101bc939291906109be565b602060405180830381600087803b1580156101d657600080fd5b505af11580156101ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020e9190610791565b505b6000925050509392505050565b3073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614156102ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a390610a48565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461039a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039190610a28565b60405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f000000000000000000000000000000000000000000000000000000000000000060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600033905060008190508073ffffffffffffffffffffffffffffffffffffffff1663468721a78787878760006040518663ffffffff1660e01b8152600401610585959493929190610970565b602060405180830381600087803b15801561059f57600080fd5b505af11580156105b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d79190610791565b610616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060d90610a08565b60405180910390fd5b505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008135905061065181610b36565b92915050565b60008151905061066681610b4d565b92915050565b60008135905061067b81610b64565b92915050565b60008083601f84011261069357600080fd5b8235905067ffffffffffffffff8111156106ac57600080fd5b6020830191508360018202830111156106c457600080fd5b9250929050565b600061016082840312156106de57600080fd5b81905092915050565b6000813590506106f681610b7b565b92915050565b60006020828403121561070e57600080fd5b600061071c84828501610642565b91505092915050565b6000806000806060858703121561073b57600080fd5b600061074987828801610642565b945050602061075a878288016106e7565b935050604085013567ffffffffffffffff81111561077757600080fd5b61078387828801610681565b925092505092959194509250565b6000602082840312156107a357600080fd5b60006107b184828501610657565b91505092915050565b6000806000606084860312156107cf57600080fd5b600084013567ffffffffffffffff8111156107e957600080fd5b6107f5868287016106cb565b93505060206108068682870161066c565b9250506040610817868287016106e7565b9150509250925092565b61082a81610aa5565b82525050565b600061083c8385610a83565b9350610849838584610b16565b61085283610b25565b840190509392505050565b61086681610b04565b82525050565b6000610879600983610a94565b91507f7478206661696c656400000000000000000000000000000000000000000000006000830152602082019050919050565b60006108b9600583610a94565b91507f47533130320000000000000000000000000000000000000000000000000000006000830152602082019050919050565b60006108f9600083610a83565b9150600082019050919050565b6000610913601d83610a94565b91507f596f75206e65656420746f2044454c454741544543414c4c2c207369720000006000830152602082019050919050565b61094f81610aed565b82525050565b600060208201905061096a6000830184610821565b92915050565b60006080820190506109856000830188610821565b6109926020830187610946565b81810360408301526109a5818587610830565b90506109b4606083018461085d565b9695505050505050565b60006080820190506109d36000830186610821565b6109e06020830185610946565b81810360408301526109f1816108ec565b9050610a00606083018461085d565b949350505050565b60006020820190508181036000830152610a218161086c565b9050919050565b60006020820190508181036000830152610a41816108ac565b9050919050565b60006020820190508181036000830152610a6181610906565b9050919050565b6000602082019050610a7d6000830184610946565b92915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000610ab082610acd565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000610b0f82610af7565b9050919050565b82818337600083830152505050565b6000601f19601f8301169050919050565b610b3f81610aa5565b8114610b4a57600080fd5b50565b610b5681610ab7565b8114610b6157600080fd5b50565b610b6d81610ac3565b8114610b7857600080fd5b50565b610b8481610aed565b8114610b8f57600080fd5b5056fea2646970667358221220ac2a03bd49b01f4c1ffaafbc205ba28a857d5c9e03acd2ae04ab1133567ad9ad64736f6c63430007060033", "deployedBytecode": "0x60806040526004361061004a5760003560e01c806326b85ee11461004f5780633a871cdd1461007a578063a798b2b1146100b7578063ab4ed83e146100ce578063b0d691fe146100ea575b600080fd5b34801561005b57600080fd5b50610064610115565b6040516100719190610955565b60405180910390f35b34801561008657600080fd5b506100a1600480360381019061009c91906107ba565b610139565b6040516100ae9190610a68565b60405180910390f35b3480156100c357600080fd5b506100cc61021d565b005b6100e860048036038101906100e39190610725565b610539565b005b3480156100f657600080fd5b506100ff61061e565b60405161010c9190610955565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b60008084600001602081019061014f91906106fc565b9050600081905060008414610210578073ffffffffffffffffffffffffffffffffffffffff1663468721a77f00000000000000000000000000000000000000000000000000000000000000008660006040518463ffffffff1660e01b81526004016101bc939291906109be565b602060405180830381600087803b1580156101d657600080fd5b505af11580156101ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020e9190610791565b505b6000925050509392505050565b3073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614156102ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a390610a48565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600160007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461039a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039190610a28565b60405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f000000000000000000000000000000000000000000000000000000000000000060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600033905060008190508073ffffffffffffffffffffffffffffffffffffffff1663468721a78787878760006040518663ffffffff1660e01b8152600401610585959493929190610970565b602060405180830381600087803b15801561059f57600080fd5b505af11580156105b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d79190610791565b610616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060d90610a08565b60405180910390fd5b505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008135905061065181610b36565b92915050565b60008151905061066681610b4d565b92915050565b60008135905061067b81610b64565b92915050565b60008083601f84011261069357600080fd5b8235905067ffffffffffffffff8111156106ac57600080fd5b6020830191508360018202830111156106c457600080fd5b9250929050565b600061016082840312156106de57600080fd5b81905092915050565b6000813590506106f681610b7b565b92915050565b60006020828403121561070e57600080fd5b600061071c84828501610642565b91505092915050565b6000806000806060858703121561073b57600080fd5b600061074987828801610642565b945050602061075a878288016106e7565b935050604085013567ffffffffffffffff81111561077757600080fd5b61078387828801610681565b925092505092959194509250565b6000602082840312156107a357600080fd5b60006107b184828501610657565b91505092915050565b6000806000606084860312156107cf57600080fd5b600084013567ffffffffffffffff8111156107e957600080fd5b6107f5868287016106cb565b93505060206108068682870161066c565b9250506040610817868287016106e7565b9150509250925092565b61082a81610aa5565b82525050565b600061083c8385610a83565b9350610849838584610b16565b61085283610b25565b840190509392505050565b61086681610b04565b82525050565b6000610879600983610a94565b91507f7478206661696c656400000000000000000000000000000000000000000000006000830152602082019050919050565b60006108b9600583610a94565b91507f47533130320000000000000000000000000000000000000000000000000000006000830152602082019050919050565b60006108f9600083610a83565b9150600082019050919050565b6000610913601d83610a94565b91507f596f75206e65656420746f2044454c454741544543414c4c2c207369720000006000830152602082019050919050565b61094f81610aed565b82525050565b600060208201905061096a6000830184610821565b92915050565b60006080820190506109856000830188610821565b6109926020830187610946565b81810360408301526109a5818587610830565b90506109b4606083018461085d565b9695505050505050565b60006080820190506109d36000830186610821565b6109e06020830185610946565b81810360408301526109f1816108ec565b9050610a00606083018461085d565b949350505050565b60006020820190508181036000830152610a218161086c565b9050919050565b60006020820190508181036000830152610a41816108ac565b9050919050565b60006020820190508181036000830152610a6181610906565b9050919050565b6000602082019050610a7d6000830184610946565b92915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000610ab082610acd565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000610b0f82610af7565b9050919050565b82818337600083830152505050565b6000601f19601f8301169050919050565b610b3f81610aa5565b8114610b4a57600080fd5b50565b610b5681610ab7565b8114610b6157600080fd5b50565b610b6d81610ac3565b8114610b7857600080fd5b50565b610b8481610aed565b8114610b8f57600080fd5b5056fea2646970667358221220ac2a03bd49b01f4c1ffaafbc205ba28a857d5c9e03acd2ae04ab1133567ad9ad64736f6c63430007060033", "linkReferences": {}, "deployedLinkReferences": {} }