@safe-global/safe-contracts
Version:
Ethereum multisig contract
165 lines (164 loc) • 16.6 kB
JSON
{
"_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": {}
}