4 txs
5 calls
constructor
constructor(address _masterWallet)
functions
allowedChildren
viewfunction allowedChildren(address) view returns (bool)
checkSignature
purefunction checkSignature(address childWallet, bytes signature, bytes32 messageHash) pure returns (address recoveredSigner, bool isValid)
masterWallet
viewfunction masterWallet() view returns (address)
addChildWallet
nonpayablefunction addChildWallet(address childWallet)
changeMasterAddress
nonpayablefunction changeMasterAddress(address newAddress)
forwardTransaction
nonpayablefunction forwardTransaction(address childWallet, address to, uint256 value, bytes data, bytes signature, bytes32 messageHash) returns (bool, bytes)
events
ChildWalletAdded
event ChildWalletAdded(address indexed childWallet, address indexed addedBy)
ForwardTransactionResult
event ForwardTransactionResult(address indexed target, bool success, bytes returnData)
ForwardTransactionStarted
event ForwardTransactionStarted(address indexed from, address indexed target, uint256 value, bytes data)
MasterWalletChanged
event MasterWalletChanged(address indexed oldMaster, address indexed newMaster)
SignatureVerified
event SignatureVerified(bool isVerified)
errors
ChildWalletAlreadyAdded
error ChildWalletAlreadyAdded(address childWallet)
ChildWalletNotAllowed
error ChildWalletNotAllowed(address childWallet)
InsufficientForwarderBalance
error InsufficientForwarderBalance(uint256 required, uint256 available)
InvalidChildWallet
error InvalidChildWallet(address childWallet)
InvalidSignatureLength
error InvalidSignatureLength(uint256 length, uint256 requiredLength)
InvalidSignatureNullAddress
error InvalidSignatureNullAddress(bytes32 messageHash)
InvalidSignatureVValue
error InvalidSignatureVValue(uint8 v)
InvalidSignatureWrongSigner
error InvalidSignatureWrongSigner(address recovered, address expected)
OnlyMasterWallet
error OnlyMasterWallet(address caller, address masterWallet)
TransactionExecutionFailed
error TransactionExecutionFailed(address target, bytes data, bytes result)
creation bytecode
0x60806040523480156200001157600080fd5b5060405162001560380380620015608339818101604052810190620000379190620000e8565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200011a565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000b08262000083565b9050919050565b620000c281620000a3565b8114620000ce57600080fd5b50565b600081519050620000e281620000b7565b92915050565b6000602082840312156200010157620001006200007e565b5b60006200011184828501620000d1565b91505092915050565b611436806200012a6000396000f3fe6080604052600436106100595760003560e01c806338625999146100655780633b9c5c9a146100a257806398c9e783146100e0578063d46655f414610109578063f859fb3414610132578063fc0d01171461017057610060565b3661006057005b600080fd5b34801561007157600080fd5b5061008c60048036038101906100879190610bc9565b61019b565b6040516100999190610c11565b60405180910390f35b3480156100ae57600080fd5b506100c960048036038101906100c49190610dde565b6101bb565b6040516100d7929190610f22565b60405180910390f35b3480156100ec57600080fd5b5061010760048036038101906101029190610bc9565b610491565b005b34801561011557600080fd5b50610130600480360381019061012b9190610bc9565b610717565b005b34801561013e57600080fd5b5061015960048036038101906101549190610fb2565b61088d565b604051610167929190611035565b60405180910390f35b34801561017c57600080fd5b5061018561091a565b604051610192919061105e565b60405180910390f35b60016020528060005260406000206000915054906101000a900460ff1681565b60006060600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661024d57876040517fb90b357c000000000000000000000000000000000000000000000000000000008152600401610244919061105e565b60405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f95bffee5be51ded73601ee58f914b5f1ffcbd38edaa5984ebb4865fc5819b99688886040516102ac929190611088565b60405180910390a360006102c0858561093e565b90508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146103345780896040517f62e0de3500000000000000000000000000000000000000000000000000000000815260040161032b9291906110b8565b60405180910390fd5b86471015610377576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161036e90611164565b60405180910390fd5b6000808973ffffffffffffffffffffffffffffffffffffffff1689896040516103a091906111c0565b60006040518083038185875af1925050503d80600081146103dd576040519150601f19603f3d011682016040523d82523d6000602084013e6103e2565b606091505b50915091508973ffffffffffffffffffffffffffffffffffffffff167f86fa9a3fd53cf5d89feae13431bfb5d6c95f9aad389b625e7b4248effd5bad31838360405161042f929190610f22565b60405180910390a28161047d578988826040517f81103ee6000000000000000000000000000000000000000000000000000000008152600401610474939291906111d7565b60405180910390fd5b818194509450505050965096945050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610543573360008054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040517f3a188e2800000000000000000000000000000000000000000000000000000000815260040161053a9291906110b8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036105b457806040517fe2a37d300000000000000000000000000000000000000000000000000000000081526004016105ab919061105e565b60405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561064357806040517f3ecc59db00000000000000000000000000000000000000000000000000000000815260040161063a919061105e565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fd63192ae56029e55f4e2a121ae510f34c24c58d9b2c521e01c0f3238611b2a1760405160405180910390a350565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107c9578060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040517f3a188e280000000000000000000000000000000000000000000000000000000081526004016107c09291906110b8565b60405180910390fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f63724c8bd919b8a673beebdf4d8d5ea7004cff50a18c12beca6d5435a42a05b860405160405180910390a35050565b6000806108de85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508461093e565b91508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614905094509492505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806042602060ff160361095957602283015190506109a8565b60208060ff160361096c578290506109a7565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099e90611268565b60405180910390fd5b5b60418451146109f257835160416040517fd615d7060000000000000000000000000000000000000000000000000000000081526004016109e99291906112cd565b60405180910390fd5b60008060006020870151925060408701519150606087015160001a9050601b8160ff161015610a2b57601b81610a289190611332565b90505b601b8160ff1614158015610a435750601c8160ff1614155b15610a8557806040517f70768f25000000000000000000000000000000000000000000000000000000008152600401610a7c9190611376565b60405180910390fd5b600060018783868660405160008152602001604052604051610aaa94939291906113a0565b6020604051602081039080840390855afa158015610acc573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b4957866040517f87a9b950000000000000000000000000000000000000000000000000000000008152600401610b4091906113e5565b60405180910390fd5b809550505050505092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610b9682610b6b565b9050919050565b610ba681610b8b565b8114610bb157600080fd5b50565b600081359050610bc381610b9d565b92915050565b600060208284031215610bdf57610bde610b61565b5b6000610bed84828501610bb4565b91505092915050565b60008115159050919050565b610c0b81610bf6565b82525050565b6000602082019050610c266000830184610c02565b92915050565b6000819050919050565b610c3f81610c2c565b8114610c4a57600080fd5b50565b600081359050610c5c81610c36565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610cb582610c6c565b810181811067ffffffffffffffff82111715610cd457610cd3610c7d565b5b80604052505050565b6000610ce7610b57565b9050610cf38282610cac565b919050565b600067ffffffffffffffff821115610d1357610d12610c7d565b5b610d1c82610c6c565b9050602081019050919050565b82818337600083830152505050565b6000610d4b610d4684610cf8565b610cdd565b905082815260208101848484011115610d6757610d66610c67565b5b610d72848285610d29565b509392505050565b600082601f830112610d8f57610d8e610c62565b5b8135610d9f848260208601610d38565b91505092915050565b6000819050919050565b610dbb81610da8565b8114610dc657600080fd5b50565b600081359050610dd881610db2565b92915050565b60008060008060008060c08789031215610dfb57610dfa610b61565b5b6000610e0989828a01610bb4565b9650506020610e1a89828a01610bb4565b9550506040610e2b89828a01610c4d565b945050606087013567ffffffffffffffff811115610e4c57610e4b610b66565b5b610e5889828a01610d7a565b935050608087013567ffffffffffffffff811115610e7957610e78610b66565b5b610e8589828a01610d7a565b92505060a0610e9689828a01610dc9565b9150509295509295509295565b600081519050919050565b600082825260208201905092915050565b60005b83811015610edd578082015181840152602081019050610ec2565b60008484015250505050565b6000610ef482610ea3565b610efe8185610eae565b9350610f0e818560208601610ebf565b610f1781610c6c565b840191505092915050565b6000604082019050610f376000830185610c02565b8181036020830152610f498184610ee9565b90509392505050565b600080fd5b600080fd5b60008083601f840112610f7257610f71610c62565b5b8235905067ffffffffffffffff811115610f8f57610f8e610f52565b5b602083019150836001820283011115610fab57610faa610f57565b5b9250929050565b60008060008060608587031215610fcc57610fcb610b61565b5b6000610fda87828801610bb4565b945050602085013567ffffffffffffffff811115610ffb57610ffa610b66565b5b61100787828801610f5c565b9350935050604061101a87828801610dc9565b91505092959194509250565b61102f81610b8b565b82525050565b600060408201905061104a6000830185611026565b6110576020830184610c02565b9392505050565b60006020820190506110736000830184611026565b92915050565b61108281610c2c565b82525050565b600060408201905061109d6000830185611079565b81810360208301526110af8184610ee9565b90509392505050565b60006040820190506110cd6000830185611026565b6110da6020830184611026565b9392505050565b600082825260208201905092915050565b7f496e73756666696369656e742062616c616e636520696e20666f72776172646560008201527f7220636f6e747261637400000000000000000000000000000000000000000000602082015250565b600061114e602a836110e1565b9150611159826110f2565b604082019050919050565b6000602082019050818103600083015261117d81611141565b9050919050565b600081905092915050565b600061119a82610ea3565b6111a48185611184565b93506111b4818560208601610ebf565b80840191505092915050565b60006111cc828461118f565b915081905092915050565b60006060820190506111ec6000830186611026565b81810360208301526111fe8185610ee9565b905081810360408301526112128184610ee9565b9050949350505050565b7f496e76616c6964206d65737361676548617368206c656e677468000000000000600082015250565b6000611252601a836110e1565b915061125d8261121c565b602082019050919050565b6000602082019050818103600083015261128181611245565b9050919050565b6000819050919050565b6000819050919050565b60006112b76112b26112ad84611288565b611292565b610c2c565b9050919050565b6112c78161129c565b82525050565b60006040820190506112e26000830185611079565b6112ef60208301846112be565b9392505050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061133d826112f6565b9150611348836112f6565b9250828201905060ff81111561136157611360611303565b5b92915050565b611370816112f6565b82525050565b600060208201905061138b6000830184611367565b92915050565b61139a81610da8565b82525050565b60006080820190506113b56000830187611391565b6113c26020830186611367565b6113cf6040830185611391565b6113dc6060830184611391565b95945050505050565b60006020820190506113fa6000830184611391565b9291505056fea264697066735822122005e0c793040fa12ae1d53fd19220b6cb952e9e3ded3ae43403433fbf7989fc2964736f6c63430008140033000000000000000000000000c3460e1dda5b67fb7d6d1f62516f73c0c14026cc