{"abi":[{"type":"constructor","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"CALL","inputs":[{"name":"_target","type":"address","internalType":"address"},{"name":"_data","type":"bytes","internalType":"bytes"},{"name":"_value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success_","type":"bool","internalType":"bool"},{"name":"data_","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"DELEGATECALL","inputs":[{"name":"_target","type":"address","internalType":"address"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"success_","type":"bool","internalType":"bool"},{"name":"data_","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setOwner","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawERC20","inputs":[{"name":"_asset","type":"address","internalType":"contract ERC20"},{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawERC20","inputs":[{"name":"_asset","type":"address","internalType":"contract ERC20"},{"name":"_to","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawERC721","inputs":[{"name":"_asset","type":"address","internalType":"contract ERC721"},{"name":"_to","type":"address","internalType":"address"},{"name":"_id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawETH","inputs":[{"name":"_to","type":"address","internalType":"address payable"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawETH","inputs":[{"name":"_to","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnerUpdated","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ReceivedETH","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WithdrewERC20","inputs":[{"name":"withdrawer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"asset","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WithdrewERC721","inputs":[{"name":"withdrawer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"asset","type":"address","indexed":true,"internalType":"address"},{"name":"id","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WithdrewETH","inputs":[{"name":"withdrawer","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x6080604052348015600e575f80fd5b50604051610ee6380380610ee6833981016040819052602b91607b565b5f80546001600160a01b0319166001600160a01b038316908117825560405183928392917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d76908290a350505060a6565b5f60208284031215608a575f80fd5b81516001600160a01b0381168114609f575f80fd5b9392505050565b610e33806100b35f395ff3fe608060405260043610610096575f3560e01c8063690d8320116100665780638da5cb5b1161004c5780638da5cb5b1461019d5780639456fbcc146101ed578063edee62391461020c575f80fd5b8063690d8320146101545780636e2d44ae14610173575f80fd5b806313af4035146100d65780634025feb2146100f757806344004cc1146101165780634782f77914610135575f80fd5b366100d25760405134815233907f4103257eaac983ca79a70d28f90dfc4fa16b619bb0c17ee7cab0d4034c2796249060200160405180910390a2005b5f80fd5b3480156100e1575f80fd5b506100f56100f0366004610b25565b61021f565b005b348015610102575f80fd5b506100f5610111366004610b47565b610313565b348015610121575f80fd5b506100f5610130366004610b47565b61049f565b348015610140575f80fd5b506100f561014f366004610b85565b61062c565b34801561015f575f80fd5b506100f561016e366004610b25565b610777565b610186610181366004610ca4565b610804565b604051610194929190610cfa565b60405180910390f35b3480156101a8575f80fd5b505f546101c89073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610194565b3480156101f8575f80fd5b506100f5610207366004610d56565b6108fa565b61018661021a366004610d8d565b610a12565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146102a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064015b60405180910390fd5b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d769190a350565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610393576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a45440000000000000000000000000000000000000000604482015260640161029b565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8381166024830152604482018390528416906323b872dd906064015f604051808303815f87803b158015610406575f80fd5b505af1158015610418573d5f803e3d5ffd5b505050508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f30b478a5e196e55886228aa87ba74a7dfeba655e0a4d7ba275eabfc22aabb7a88460405161049291815260200190565b60405180910390a4505050565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461051f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a45440000000000000000000000000000000000000000604482015260640161029b565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301526024820183905284169063a9059cbb906044016020604051808303815f875af1158015610591573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105b59190610dda565b508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f6b00f1c7883f053ba83e907fd1965b22fffe3c4111383e725f04638a566cdbfa8460405161049291815260200190565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146106ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a45440000000000000000000000000000000000000000604482015260640161029b565b5f8273ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f8114610702576040519150601f19603f3d011682016040523d82523d5f602084013e610707565b606091505b505090508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f1f12aa8b6d492dd9b98e2b00b0b20830c2a7ded65afac13b60d169a034ae90bc8460405161076a91815260200190565b60405180910390a3505050565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146107f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a45440000000000000000000000000000000000000000604482015260640161029b565b610801814761062c565b50565b5f805460609073ffffffffffffffffffffffffffffffffffffffff163314610888576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a45440000000000000000000000000000000000000000604482015260640161029b565b8473ffffffffffffffffffffffffffffffffffffffff1683856040516108ae9190610df9565b5f6040518083038185875af1925050503d805f81146108e8576040519150601f19603f3d011682016040523d82523d5f602084013e6108ed565b606091505b5090969095509350505050565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461097a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a45440000000000000000000000000000000000000000604482015260640161029b565b6040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152610a0e908390839073ffffffffffffffffffffffffffffffffffffffff8316906370a0823190602401602060405180830381865afa1580156109ea573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101309190610e0f565b5050565b5f805460609073ffffffffffffffffffffffffffffffffffffffff163314610a96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a45440000000000000000000000000000000000000000604482015260640161029b565b8373ffffffffffffffffffffffffffffffffffffffff1683604051610abb9190610df9565b5f60405180830381855af49150503d805f8114610af3576040519150601f19603f3d011682016040523d82523d5f602084013e610af8565b606091505b50909590945092505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610801575f80fd5b5f60208284031215610b35575f80fd5b8135610b4081610b04565b9392505050565b5f805f60608486031215610b59575f80fd5b8335610b6481610b04565b92506020840135610b7481610b04565b929592945050506040919091013590565b5f8060408385031215610b96575f80fd5b8235610ba181610b04565b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112610beb575f80fd5b813567ffffffffffffffff811115610c0557610c05610baf565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff82111715610c7157610c71610baf565b604052818152838201602001851015610c88575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f60608486031215610cb6575f80fd5b8335610cc181610b04565b9250602084013567ffffffffffffffff811115610cdc575f80fd5b610ce886828701610bdc565b93969395505050506040919091013590565b8215158152604060208201525f82518060408401528060208501606085015e5f6060828501015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168401019150509392505050565b5f8060408385031215610d67575f80fd5b8235610d7281610b04565b91506020830135610d8281610b04565b809150509250929050565b5f8060408385031215610d9e575f80fd5b8235610da981610b04565b9150602083013567ffffffffffffffff811115610dc4575f80fd5b610dd085828601610bdc565b9150509250929050565b5f60208284031215610dea575f80fd5b81518015158114610b40575f80fd5b5f82518060208501845e5f920191825250919050565b5f60208284031215610e1f575f80fd5b505191905056fea164736f6c634300081a000a","sourceMap":"463:3836:80:-:0;;;1996:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1034:5:28;:14;;-1:-1:-1;;;;;;1034:14:28;-1:-1:-1;;;;;1034:14:28;;;;;;;1064:32;;1034:14;;;;;1064:32;;1034:5;;1064:32;996:107;300:45:81;1996:50:80;463:3836;;14:290:100;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:100;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:100:o;:::-;463:3836:80;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610096575f3560e01c8063690d8320116100665780638da5cb5b1161004c5780638da5cb5b1461019d5780639456fbcc146101ed578063edee62391461020c575f80fd5b8063690d8320146101545780636e2d44ae14610173575f80fd5b806313af4035146100d65780634025feb2146100f757806344004cc1146101165780634782f77914610135575f80fd5b366100d25760405134815233907f4103257eaac983ca79a70d28f90dfc4fa16b619bb0c17ee7cab0d4034c2796249060200160405180910390a2005b5f80fd5b3480156100e1575f80fd5b506100f56100f0366004610b25565b61021f565b005b348015610102575f80fd5b506100f5610111366004610b47565b610313565b348015610121575f80fd5b506100f5610130366004610b47565b61049f565b348015610140575f80fd5b506100f561014f366004610b85565b61062c565b34801561015f575f80fd5b506100f561016e366004610b25565b610777565b610186610181366004610ca4565b610804565b604051610194929190610cfa565b60405180910390f35b3480156101a8575f80fd5b505f546101c89073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610194565b3480156101f8575f80fd5b506100f5610207366004610d56565b6108fa565b61018661021a366004610d8d565b610a12565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146102a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064015b60405180910390fd5b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d769190a350565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610393576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a45440000000000000000000000000000000000000000604482015260640161029b565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8381166024830152604482018390528416906323b872dd906064015f604051808303815f87803b158015610406575f80fd5b505af1158015610418573d5f803e3d5ffd5b505050508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f30b478a5e196e55886228aa87ba74a7dfeba655e0a4d7ba275eabfc22aabb7a88460405161049291815260200190565b60405180910390a4505050565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461051f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a45440000000000000000000000000000000000000000604482015260640161029b565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301526024820183905284169063a9059cbb906044016020604051808303815f875af1158015610591573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105b59190610dda565b508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f6b00f1c7883f053ba83e907fd1965b22fffe3c4111383e725f04638a566cdbfa8460405161049291815260200190565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146106ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a45440000000000000000000000000000000000000000604482015260640161029b565b5f8273ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f8114610702576040519150601f19603f3d011682016040523d82523d5f602084013e610707565b606091505b505090508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f1f12aa8b6d492dd9b98e2b00b0b20830c2a7ded65afac13b60d169a034ae90bc8460405161076a91815260200190565b60405180910390a3505050565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146107f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a45440000000000000000000000000000000000000000604482015260640161029b565b610801814761062c565b50565b5f805460609073ffffffffffffffffffffffffffffffffffffffff163314610888576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a45440000000000000000000000000000000000000000604482015260640161029b565b8473ffffffffffffffffffffffffffffffffffffffff1683856040516108ae9190610df9565b5f6040518083038185875af1925050503d805f81146108e8576040519150601f19603f3d011682016040523d82523d5f602084013e6108ed565b606091505b5090969095509350505050565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461097a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a45440000000000000000000000000000000000000000604482015260640161029b565b6040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152610a0e908390839073ffffffffffffffffffffffffffffffffffffffff8316906370a0823190602401602060405180830381865afa1580156109ea573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101309190610e0f565b5050565b5f805460609073ffffffffffffffffffffffffffffffffffffffff163314610a96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a45440000000000000000000000000000000000000000604482015260640161029b565b8373ffffffffffffffffffffffffffffffffffffffff1683604051610abb9190610df9565b5f60405180830381855af49150503d805f8114610af3576040519150601f19603f3d011682016040523d82523d5f602084013e610af8565b606091505b50909590945092505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610801575f80fd5b5f60208284031215610b35575f80fd5b8135610b4081610b04565b9392505050565b5f805f60608486031215610b59575f80fd5b8335610b6481610b04565b92506020840135610b7481610b04565b929592945050506040919091013590565b5f8060408385031215610b96575f80fd5b8235610ba181610b04565b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f82601f830112610beb575f80fd5b813567ffffffffffffffff811115610c0557610c05610baf565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff82111715610c7157610c71610baf565b604052818152838201602001851015610c88575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f60608486031215610cb6575f80fd5b8335610cc181610b04565b9250602084013567ffffffffffffffff811115610cdc575f80fd5b610ce886828701610bdc565b93969395505050506040919091013590565b8215158152604060208201525f82518060408401528060208501606085015e5f6060828501015260607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168401019150509392505050565b5f8060408385031215610d67575f80fd5b8235610d7281610b04565b91506020830135610d8281610b04565b809150509250929050565b5f8060408385031215610d9e575f80fd5b8235610da981610b04565b9150602083013567ffffffffffffffff811115610dc4575f80fd5b610dd085828601610bdc565b9150509250929050565b5f60208284031215610dea575f80fd5b81518015158114610b40575f80fd5b5f82518060208501845e5f920191825250919050565b5f60208284031215610e1f575f80fd5b505191905056fea164736f6c634300081a000a","sourceMap":"463:3836:80:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2140:34;;2164:9;160:25:100;;2152:10:80;;2140:34;;148:2:100;133:18;2140:34:80;;;;;;;463:3836;;;;;1293:144:28;;;;;;;;;;-1:-1:-1;1293:144:28;;;;;:::i;:::-;;:::i;:::-;;4029:268:80;;;;;;;;;;-1:-1:-1;4029:268:80;;;;;:::i;:::-;;:::i;3483:312::-;;;;;;;;;;-1:-1:-1;3483:312:80;;;;;:::i;:::-;;:::i;2599:330::-;;;;;;;;;;-1:-1:-1;2599:330:80;;;;;:::i;:::-;;:::i;2303:117::-;;;;;;;;;;-1:-1:-1;2303:117:80;;;;;:::i;:::-;;:::i;651:277:81:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;679:20:28;;;;;;;;;;-1:-1:-1;679:20:28;;;;;;;;;;;4658:42:100;4646:55;;;4628:74;;4616:2;4601:18;679:20:28;4482:226:100;3105:145:80;;;;;;;;;;-1:-1:-1;3105:145:80;;;;;:::i;:::-;;:::i;1186:313:81:-;;;;;;:::i;:::-;;:::i;1293:144:28:-;767:5;;;;753:10;:19;745:44;;;;;;;5783:2:100;745:44:28;;;5765:21:100;5822:2;5802:18;;;5795:30;5861:14;5841:18;;;5834:42;5893:18;;745:44:28;;;;;;;;;1364:5:::1;:16:::0;;;::::1;;::::0;::::1;::::0;;::::1;::::0;;1396:34:::1;::::0;1364:16;;1409:10:::1;::::0;1396:34:::1;::::0;1364:5;1396:34:::1;1293:144:::0;:::o;4029:268:80:-;767:5:28;;;;753:10;:19;745:44;;;;;;;5783:2:100;745:44:28;;;5765:21:100;5822:2;5802:18;;;5795:30;5861:14;5841:18;;;5834:42;5893:18;;745:44:28;5581:336:100;745:44:28;4123::80::1;::::0;;;;4151:4:::1;4123:44;::::0;::::1;6124:74:100::0;4123:19:80::1;6234:55:100::0;;;6214:18;;;6207:83;6306:18;;;6299:34;;;4123:19:80;::::1;::::0;::::1;::::0;6097:18:100;;4123:44:80::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4277:6;4237:53;;4264:3;4237:53;;4252:10;4237:53;;;4286:3;4237:53;;;;160:25:100::0;;148:2;133:18;;14:177;4237:53:80::1;;;;;;;;4029:268:::0;;;:::o;3483:312::-;767:5:28;;;;753:10;:19;745:44;;;;;;;5783:2:100;745:44:28;;;5765:21:100;5822:2;5802:18;;;5795:30;5861:14;5841:18;;;5834:42;5893:18;;745:44:28;5581:336:100;745:44:28;3633:29:80::1;::::0;;;;:15:::1;6536:55:100::0;;;3633:29:80::1;::::0;::::1;6518:74:100::0;6608:18;;;6601:34;;;3633:15:80;::::1;::::0;::::1;::::0;6491:18:100;;3633:29:80::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3771:6;3732:56;;3758:3;3732:56;;3746:10;3732:56;;;3780:7;3732:56;;;;160:25:100::0;;148:2;133:18;;14:177;2599:330:80;767:5:28;;;;753:10;:19;745:44;;;;;;;5783:2:100;745:44:28;;;5765:21:100;5822:2;5802:18;;;5795:30;5861:14;5841:18;;;5834:42;5893:18;;745:44:28;5581:336:100;745:44:28;2748:12:80::1;2765:3;:8;;2782:7;2765:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2747:48;;;2909:3;2885:37;;2897:10;2885:37;;;2914:7;2885:37;;;;160:25:100::0;;148:2;133:18;;14:177;2885:37:80::1;;;;;;;;2675:254;2599:330:::0;;:::o;2303:117::-;767:5:28;;;;753:10;:19;745:44;;;;;;;5783:2:100;745:44:28;;;5765:21:100;5822:2;5802:18;;;5795:30;5861:14;5841:18;;;5834:42;5893:18;;745:44:28;5581:336:100;745:44:28;2374:39:80::1;2386:3;2391:21;2374:11;:39::i;:::-;2303:117:::0;:::o;651:277:81:-;816:13;767:5:28;;831:18:81;;767:5:28;;753:10;:19;745:44;;;;;;;5783:2:100;745:44:28;;;5765:21:100;5822:2;5802:18;;;5795:30;5861:14;5841:18;;;5834:42;5893:18;;745:44:28;5581:336:100;745:44:28;885:7:81::1;:12;;906:6;915:5;885:36;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;865:56:81;;;;-1:-1:-1;651:277:81;-1:-1:-1;;;;651:277:81:o;3105:145:80:-;767:5:28;;;;753:10;:19;745:44;;;;;;;5783:2:100;745:44:28;;;5765:21:100;5822:2;5802:18;;;5795:30;5861:14;5841:18;;;5834:42;5893:18;;745:44:28;5581:336:100;745:44:28;3211:31:80::1;::::0;;;;3236:4:::1;3211:31;::::0;::::1;4628:74:100::0;3184:59:80::1;::::0;3198:6;;3206:3;;3211:16:::1;::::0;::::1;::::0;::::1;::::0;4601:18:100;;3211:31:80::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3184:59::-;3105:145:::0;;:::o;1186:313:81:-;1335:13;767:5:28;;1350:18:81;;767:5:28;;753:10;:19;745:44;;;;;;;5783:2:100;745:44:28;;;5765:21:100;5822:2;5802:18;;;5795:30;5861:14;5841:18;;;5834:42;5893:18;;745:44:28;5581:336:100;745:44:28;1465:7:81::1;:20;;1486:5;1465:27;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;1445:47:81;;;;-1:-1:-1;1186:313:81;-1:-1:-1;;;1186:313:81:o;196:154:100:-;282:42;275:5;271:54;264:5;261:65;251:93;;340:1;337;330:12;355:247;414:6;467:2;455:9;446:7;442:23;438:32;435:52;;;483:1;480;473:12;435:52;522:9;509:23;541:31;566:5;541:31;:::i;:::-;591:5;355:247;-1:-1:-1;;;355:247:100:o;607:524::-;700:6;708;716;769:2;757:9;748:7;744:23;740:32;737:52;;;785:1;782;775:12;737:52;824:9;811:23;843:31;868:5;843:31;:::i;:::-;893:5;-1:-1:-1;950:2:100;935:18;;922:32;963:33;922:32;963:33;:::i;:::-;607:524;;1015:7;;-1:-1:-1;;;1095:2:100;1080:18;;;;1067:32;;607:524::o;1664:375::-;1740:6;1748;1801:2;1789:9;1780:7;1776:23;1772:32;1769:52;;;1817:1;1814;1807:12;1769:52;1856:9;1843:23;1875:31;1900:5;1875:31;:::i;:::-;1925:5;2003:2;1988:18;;;;1975:32;;-1:-1:-1;;;1664:375:100:o;2304:184::-;2356:77;2353:1;2346:88;2453:4;2450:1;2443:15;2477:4;2474:1;2467:15;2493:843;2535:5;2588:3;2581:4;2573:6;2569:17;2565:27;2555:55;;2606:1;2603;2596:12;2555:55;2646:6;2633:20;2676:18;2668:6;2665:30;2662:56;;;2698:18;;:::i;:::-;2747:2;2741:9;2894:66;2889:2;2820:66;2813:4;2805:6;2801:17;2797:90;2793:99;2789:172;2781:6;2777:185;3028:6;3016:10;3013:22;2992:18;2980:10;2977:34;2974:62;2971:88;;;3039:18;;:::i;:::-;3075:2;3068:22;3099;;;3140:19;;;3161:4;3136:30;3133:39;-1:-1:-1;3130:59:100;;;3185:1;3182;3175:12;3130:59;3249:6;3242:4;3234:6;3230:17;3223:4;3215:6;3211:17;3198:58;3304:1;3276:19;;;3297:4;3272:30;3265:41;;;;3280:6;2493:843;-1:-1:-1;;;2493:843:100:o;3341:575::-;3427:6;3435;3443;3496:2;3484:9;3475:7;3471:23;3467:32;3464:52;;;3512:1;3509;3502:12;3464:52;3551:9;3538:23;3570:31;3595:5;3570:31;:::i;:::-;3620:5;-1:-1:-1;3676:2:100;3661:18;;3648:32;3703:18;3692:30;;3689:50;;;3735:1;3732;3725:12;3689:50;3758:49;3799:7;3790:6;3779:9;3775:22;3758:49;:::i;:::-;3341:575;;3748:59;;-1:-1:-1;;;;3880:2:100;3865:18;;;;3852:32;;3341:575::o;3921:556::-;4104:6;4097:14;4090:22;4079:9;4072:41;4149:2;4144;4133:9;4129:18;4122:30;4053:4;4181:6;4175:13;4224:6;4219:2;4208:9;4204:18;4197:34;4283:6;4278:2;4270:6;4266:15;4261:2;4250:9;4246:18;4240:50;4339:1;4334:2;4325:6;4314:9;4310:22;4306:31;4299:42;4468:2;4398:66;4393:2;4385:6;4381:15;4377:88;4366:9;4362:104;4358:113;4350:121;;;3921:556;;;;;:::o;4713:403::-;4796:6;4804;4857:2;4845:9;4836:7;4832:23;4828:32;4825:52;;;4873:1;4870;4863:12;4825:52;4912:9;4899:23;4931:31;4956:5;4931:31;:::i;:::-;4981:5;-1:-1:-1;5038:2:100;5023:18;;5010:32;5051:33;5010:32;5051:33;:::i;:::-;5103:7;5093:17;;;4713:403;;;;;:::o;5121:455::-;5198:6;5206;5259:2;5247:9;5238:7;5234:23;5230:32;5227:52;;;5275:1;5272;5265:12;5227:52;5314:9;5301:23;5333:31;5358:5;5333:31;:::i;:::-;5383:5;-1:-1:-1;5439:2:100;5424:18;;5411:32;5466:18;5455:30;;5452:50;;;5498:1;5495;5488:12;5452:50;5521:49;5562:7;5553:6;5542:9;5538:22;5521:49;:::i;:::-;5511:59;;;5121:455;;;;;:::o;6646:277::-;6713:6;6766:2;6754:9;6745:7;6741:23;6737:32;6734:52;;;6782:1;6779;6772:12;6734:52;6814:9;6808:16;6867:5;6860:13;6853:21;6846:5;6843:32;6833:60;;6889:1;6886;6879:12;7138:301;7267:3;7305:6;7299:13;7351:6;7344:4;7336:6;7332:17;7327:3;7321:37;7413:1;7377:16;;7402:13;;;-1:-1:-1;7377:16:100;7138:301;-1:-1:-1;7138:301:100:o;7444:184::-;7514:6;7567:2;7555:9;7546:7;7542:23;7538:32;7535:52;;;7583:1;7580;7573:12;7535:52;-1:-1:-1;7606:16:100;;7444:184;-1:-1:-1;7444:184:100:o","linkReferences":{}},"methodIdentifiers":{"CALL(address,bytes,uint256)":"6e2d44ae","DELEGATECALL(address,bytes)":"edee6239","owner()":"8da5cb5b","setOwner(address)":"13af4035","withdrawERC20(address,address)":"9456fbcc","withdrawERC20(address,address,uint256)":"44004cc1","withdrawERC721(address,address,uint256)":"4025feb2","withdrawETH(address)":"690d8320","withdrawETH(address,uint256)":"4782f779"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnerUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ReceivedETH\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"WithdrewERC20\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"WithdrewERC721\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"withdrawer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"WithdrewETH\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"CALL\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success_\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"DELEGATECALL\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success_\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ERC20\",\"name\":\"_asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ERC20\",\"name\":\"_asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"withdrawERC20\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ERC721\",\"name\":\"_asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_id\",\"type\":\"uint256\"}],\"name\":\"withdrawERC721\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawETH\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"withdrawETH\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"events\":{\"ReceivedETH(address,uint256)\":{\"params\":{\"amount\":\"Amount of ETH received.\",\"from\":\"Address that sent ETH to this contract.\"}},\"WithdrewERC20(address,address,address,uint256)\":{\"params\":{\"amount\":\"ERC20 amount withdrawn.\",\"asset\":\"Address of the token being withdrawn.\",\"recipient\":\"Address that received the withdrawal.\",\"withdrawer\":\"Address that triggered the withdrawal.\"}},\"WithdrewERC721(address,address,address,uint256)\":{\"params\":{\"asset\":\"Address of the token being withdrawn.\",\"id\":\"Token ID being withdrawn.\",\"recipient\":\"Address that received the withdrawal.\",\"withdrawer\":\"Address that triggered the withdrawal.\"}},\"WithdrewETH(address,address,uint256)\":{\"params\":{\"amount\":\"ETH amount withdrawn.\",\"recipient\":\"Address that received the withdrawal.\",\"withdrawer\":\"Address that triggered the withdrawal.\"}}},\"kind\":\"dev\",\"methods\":{\"CALL(address,bytes,uint256)\":{\"params\":{\"_data\":\"Data to send with the call.\",\"_target\":\"Address to call.\",\"_value\":\"ETH value to send with the call.\"},\"returns\":{\"data_\":\"Bytes data returned by the call.\",\"success_\":\"Boolean success value.\"}},\"DELEGATECALL(address,bytes)\":{\"params\":{\"_data\":\"Data to send with the call.\",\"_target\":\"Address to call.\"},\"returns\":{\"data_\":\"Bytes data returned by the call.\",\"success_\":\"Boolean success value.\"}},\"constructor\":{\"params\":{\"_owner\":\"Initial contract owner.\"}},\"withdrawERC20(address,address)\":{\"params\":{\"_asset\":\"ERC20 token to withdraw.\",\"_to\":\"Address to receive the ERC20 balance.\"}},\"withdrawERC20(address,address,uint256)\":{\"params\":{\"_amount\":\"Amount of ERC20 to withdraw.\",\"_asset\":\"ERC20 token to withdraw.\",\"_to\":\"Address to receive the ERC20 balance.\"}},\"withdrawERC721(address,address,uint256)\":{\"params\":{\"_asset\":\"ERC721 token to withdraw.\",\"_id\":\"Token ID of the ERC721 token to withdraw.\",\"_to\":\"Address to receive the ERC721 token.\"}},\"withdrawETH(address)\":{\"params\":{\"_to\":\"Address to receive the ETH balance.\"}},\"withdrawETH(address,uint256)\":{\"params\":{\"_amount\":\"Amount of ETH to withdraw.\",\"_to\":\"Address to receive the ETH balance.\"}}},\"title\":\"AssetReceiver\",\"version\":1},\"userdoc\":{\"events\":{\"ReceivedETH(address,uint256)\":{\"notice\":\"Emitted when ETH is received by this address.\"},\"WithdrewERC20(address,address,address,uint256)\":{\"notice\":\"Emitted when ERC20 tokens are withdrawn from this address.\"},\"WithdrewERC721(address,address,address,uint256)\":{\"notice\":\"Emitted when ERC20 tokens are withdrawn from this address.\"},\"WithdrewETH(address,address,uint256)\":{\"notice\":\"Emitted when ETH is withdrawn from this address.\"}},\"kind\":\"user\",\"methods\":{\"CALL(address,bytes,uint256)\":{\"notice\":\"Sends a CALL to a target address.\"},\"DELEGATECALL(address,bytes)\":{\"notice\":\"Sends a DELEGATECALL to a target address.\"},\"withdrawERC20(address,address)\":{\"notice\":\"Withdraws full ERC20 balance to the recipient.\"},\"withdrawERC20(address,address,uint256)\":{\"notice\":\"Withdraws partial ERC20 balance to the recipient.\"},\"withdrawERC721(address,address,uint256)\":{\"notice\":\"Withdraws ERC721 token to the recipient.\"},\"withdrawETH(address)\":{\"notice\":\"Withdraws full ETH balance to the recipient.\"},\"withdrawETH(address,uint256)\":{\"notice\":\"Withdraws partial ETH balance to the recipient.\"}},\"notice\":\"AssetReceiver is a minimal contract for receiving funds assets in the form of either         ETH, ERC20 tokens, or ERC721 tokens. Only the contract owner may withdraw the assets.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/periphery/AssetReceiver.sol\":\"AssetReceiver\"},\"evmVersion\":\"cancun\",\"libraries\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/solmate/src/auth/Owned.sol\":{\"keccak256\":\"0x7e91c80b0dd1a14a19cb9e661b99924043adab6d9d893bbfcf3a6a3dc23a6743\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://515890d9fc87d6762dae2354a3a0714a26c652f0ea5bb631122be1968ef8c0e9\",\"dweb:/ipfs/QmTRpQ7uoAR1vCACKJm14Ba3oKVLqcA9reTwbHAPxawVpM\"]},\"lib/solmate/src/tokens/ERC20.sol\":{\"keccak256\":\"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58\",\"dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc\"]},\"lib/solmate/src/tokens/ERC721.sol\":{\"keccak256\":\"0xdac91feb466e74905737338d80cac5303eb7aedcbe76eda11c45eaa728451075\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe01292f5b4d2182859cc30a773f5e9d1a91d02bd8b40fbb73a591cd67896408\",\"dweb:/ipfs/QmTUKUuFJ4QZRD8ge6eTorfni9RKhBtPo1wFVm3GFSgLW8\"]},\"src/periphery/AssetReceiver.sol\":{\"keccak256\":\"0xbc5d4ccba1ed72f72f9809c35437e7b31f88ebefa0a7d0c7781b66edec157862\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2fd1ea62a73886ac3dea5500b23cee17bc6a66208e2bc2e94f566d34c6480f3\",\"dweb:/ipfs/QmaQXPLryUCVueDmiRimU28mSzgWLqgSxsQx2BF2U837na\"]},\"src/periphery/Transactor.sol\":{\"keccak256\":\"0x66d538c0c0ae7297a1f261777c50b06e841efb5e8a3b09cdde6cdde32dfa3b63\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cab02028604b71a9acd1b6282cc867aec09b4e91fc64570c69d3484a0a7c12fe\",\"dweb:/ipfs/QmcxJ64nQde5XQY9b714NB6z6RnziNUhod12DgXDqNPcWe\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"user","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnerUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"ReceivedETH","anonymous":false},{"inputs":[{"internalType":"address","name":"withdrawer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"address","name":"asset","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"WithdrewERC20","anonymous":false},{"inputs":[{"internalType":"address","name":"withdrawer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"address","name":"asset","type":"address","indexed":true},{"internalType":"uint256","name":"id","type":"uint256","indexed":false}],"type":"event","name":"WithdrewERC721","anonymous":false},{"inputs":[{"internalType":"address","name":"withdrawer","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"WithdrewETH","anonymous":false},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"uint256","name":"_value","type":"uint256"}],"stateMutability":"payable","type":"function","name":"CALL","outputs":[{"internalType":"bool","name":"success_","type":"bool"},{"internalType":"bytes","name":"data_","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"DELEGATECALL","outputs":[{"internalType":"bool","name":"success_","type":"bool"},{"internalType":"bytes","name":"data_","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setOwner"},{"inputs":[{"internalType":"contract ERC20","name":"_asset","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawERC20"},{"inputs":[{"internalType":"contract ERC20","name":"_asset","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdrawERC20"},{"inputs":[{"internalType":"contract ERC721","name":"_asset","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_id","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawERC721"},{"inputs":[{"internalType":"address payable","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawETH"},{"inputs":[{"internalType":"address payable","name":"_to","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdrawETH"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"CALL(address,bytes,uint256)":{"params":{"_data":"Data to send with the call.","_target":"Address to call.","_value":"ETH value to send with the call."},"returns":{"data_":"Bytes data returned by the call.","success_":"Boolean success value."}},"DELEGATECALL(address,bytes)":{"params":{"_data":"Data to send with the call.","_target":"Address to call."},"returns":{"data_":"Bytes data returned by the call.","success_":"Boolean success value."}},"constructor":{"params":{"_owner":"Initial contract owner."}},"withdrawERC20(address,address)":{"params":{"_asset":"ERC20 token to withdraw.","_to":"Address to receive the ERC20 balance."}},"withdrawERC20(address,address,uint256)":{"params":{"_amount":"Amount of ERC20 to withdraw.","_asset":"ERC20 token to withdraw.","_to":"Address to receive the ERC20 balance."}},"withdrawERC721(address,address,uint256)":{"params":{"_asset":"ERC721 token to withdraw.","_id":"Token ID of the ERC721 token to withdraw.","_to":"Address to receive the ERC721 token."}},"withdrawETH(address)":{"params":{"_to":"Address to receive the ETH balance."}},"withdrawETH(address,uint256)":{"params":{"_amount":"Amount of ETH to withdraw.","_to":"Address to receive the ETH balance."}}},"version":1},"userdoc":{"kind":"user","methods":{"CALL(address,bytes,uint256)":{"notice":"Sends a CALL to a target address."},"DELEGATECALL(address,bytes)":{"notice":"Sends a DELEGATECALL to a target address."},"withdrawERC20(address,address)":{"notice":"Withdraws full ERC20 balance to the recipient."},"withdrawERC20(address,address,uint256)":{"notice":"Withdraws partial ERC20 balance to the recipient."},"withdrawERC721(address,address,uint256)":{"notice":"Withdraws ERC721 token to the recipient."},"withdrawETH(address)":{"notice":"Withdraws full ETH balance to the recipient."},"withdrawETH(address,uint256)":{"notice":"Withdraws partial ETH balance to the recipient."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/periphery/AssetReceiver.sol":"AssetReceiver"},"evmVersion":"cancun","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/solmate/src/auth/Owned.sol":{"keccak256":"0x7e91c80b0dd1a14a19cb9e661b99924043adab6d9d893bbfcf3a6a3dc23a6743","urls":["bzz-raw://515890d9fc87d6762dae2354a3a0714a26c652f0ea5bb631122be1968ef8c0e9","dweb:/ipfs/QmTRpQ7uoAR1vCACKJm14Ba3oKVLqcA9reTwbHAPxawVpM"],"license":"AGPL-3.0-only"},"lib/solmate/src/tokens/ERC20.sol":{"keccak256":"0x43aa1509bb753f053143530705d9c4eee415691d26a4779769bf028a74e6ac69","urls":["bzz-raw://fb440672ebad7d487c1600e406e140fd1ffc4bd7520c86b5709183ca2602da58","dweb:/ipfs/QmNgZaBoAZwnwm4mTL1cUZnMtvt1iZnruMnfpJnDu6upuc"],"license":"MIT"},"lib/solmate/src/tokens/ERC721.sol":{"keccak256":"0xdac91feb466e74905737338d80cac5303eb7aedcbe76eda11c45eaa728451075","urls":["bzz-raw://fe01292f5b4d2182859cc30a773f5e9d1a91d02bd8b40fbb73a591cd67896408","dweb:/ipfs/QmTUKUuFJ4QZRD8ge6eTorfni9RKhBtPo1wFVm3GFSgLW8"],"license":"MIT"},"src/periphery/AssetReceiver.sol":{"keccak256":"0xbc5d4ccba1ed72f72f9809c35437e7b31f88ebefa0a7d0c7781b66edec157862","urls":["bzz-raw://c2fd1ea62a73886ac3dea5500b23cee17bc6a66208e2bc2e94f566d34c6480f3","dweb:/ipfs/QmaQXPLryUCVueDmiRimU28mSzgWLqgSxsQx2BF2U837na"],"license":"MIT"},"src/periphery/Transactor.sol":{"keccak256":"0x66d538c0c0ae7297a1f261777c50b06e841efb5e8a3b09cdde6cdde32dfa3b63","urls":["bzz-raw://cab02028604b71a9acd1b6282cc867aec09b4e91fc64570c69d3484a0a7c12fe","dweb:/ipfs/QmcxJ64nQde5XQY9b714NB6z6RnziNUhod12DgXDqNPcWe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":47677,"contract":"src/periphery/AssetReceiver.sol:AssetReceiver","label":"owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"userdoc":{"version":1,"kind":"user","methods":{"CALL(address,bytes,uint256)":{"notice":"Sends a CALL to a target address."},"DELEGATECALL(address,bytes)":{"notice":"Sends a DELEGATECALL to a target address."},"withdrawERC20(address,address)":{"notice":"Withdraws full ERC20 balance to the recipient."},"withdrawERC20(address,address,uint256)":{"notice":"Withdraws partial ERC20 balance to the recipient."},"withdrawERC721(address,address,uint256)":{"notice":"Withdraws ERC721 token to the recipient."},"withdrawETH(address)":{"notice":"Withdraws full ETH balance to the recipient."},"withdrawETH(address,uint256)":{"notice":"Withdraws partial ETH balance to the recipient."}},"events":{"ReceivedETH(address,uint256)":{"notice":"Emitted when ETH is received by this address."},"WithdrewERC20(address,address,address,uint256)":{"notice":"Emitted when ERC20 tokens are withdrawn from this address."},"WithdrewERC721(address,address,address,uint256)":{"notice":"Emitted when ERC20 tokens are withdrawn from this address."},"WithdrewETH(address,address,uint256)":{"notice":"Emitted when ETH is withdrawn from this address."}},"notice":"AssetReceiver is a minimal contract for receiving funds assets in the form of either         ETH, ERC20 tokens, or ERC721 tokens. Only the contract owner may withdraw the assets."},"devdoc":{"version":1,"kind":"dev","methods":{"CALL(address,bytes,uint256)":{"params":{"_data":"Data to send with the call.","_target":"Address to call.","_value":"ETH value to send with the call."},"returns":{"data_":"Bytes data returned by the call.","success_":"Boolean success value."}},"DELEGATECALL(address,bytes)":{"params":{"_data":"Data to send with the call.","_target":"Address to call."},"returns":{"data_":"Bytes data returned by the call.","success_":"Boolean success value."}},"constructor":{"params":{"_owner":"Initial contract owner."}},"withdrawERC20(address,address)":{"params":{"_asset":"ERC20 token to withdraw.","_to":"Address to receive the ERC20 balance."}},"withdrawERC20(address,address,uint256)":{"params":{"_amount":"Amount of ERC20 to withdraw.","_asset":"ERC20 token to withdraw.","_to":"Address to receive the ERC20 balance."}},"withdrawERC721(address,address,uint256)":{"params":{"_asset":"ERC721 token to withdraw.","_id":"Token ID of the ERC721 token to withdraw.","_to":"Address to receive the ERC721 token."}},"withdrawETH(address)":{"params":{"_to":"Address to receive the ETH balance."}},"withdrawETH(address,uint256)":{"params":{"_amount":"Amount of ETH to withdraw.","_to":"Address to receive the ETH balance."}}},"events":{"ReceivedETH(address,uint256)":{"params":{"amount":"Amount of ETH received.","from":"Address that sent ETH to this contract."}},"WithdrewERC20(address,address,address,uint256)":{"params":{"amount":"ERC20 amount withdrawn.","asset":"Address of the token being withdrawn.","recipient":"Address that received the withdrawal.","withdrawer":"Address that triggered the withdrawal."}},"WithdrewERC721(address,address,address,uint256)":{"params":{"asset":"Address of the token being withdrawn.","id":"Token ID being withdrawn.","recipient":"Address that received the withdrawal.","withdrawer":"Address that triggered the withdrawal."}},"WithdrewETH(address,address,uint256)":{"params":{"amount":"ETH amount withdrawn.","recipient":"Address that received the withdrawal.","withdrawer":"Address that triggered the withdrawal."}}},"title":"AssetReceiver"},"ast":{"absolutePath":"src/periphery/AssetReceiver.sol","id":58942,"exportedSymbols":{"AssetReceiver":[58941],"ERC20":[48114],"ERC721":[48658],"Transactor":[59011]},"nodeType":"SourceUnit","src":"32:4268:80","nodes":[{"id":58732,"nodeType":"PragmaDirective","src":"32:23:80","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":58734,"nodeType":"ImportDirective","src":"57:67:80","nodes":[],"absolutePath":"lib/solmate/src/tokens/ERC20.sol","file":"@rari-capital/solmate/src/tokens/ERC20.sol","nameLocation":"-1:-1:-1","scope":58942,"sourceUnit":48115,"symbolAliases":[{"foreign":{"id":58733,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48114,"src":"66:5:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58736,"nodeType":"ImportDirective","src":"125:69:80","nodes":[],"absolutePath":"lib/solmate/src/tokens/ERC721.sol","file":"@rari-capital/solmate/src/tokens/ERC721.sol","nameLocation":"-1:-1:-1","scope":58942,"sourceUnit":48679,"symbolAliases":[{"foreign":{"id":58735,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48658,"src":"134:6:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58738,"nodeType":"ImportDirective","src":"195:46:80","nodes":[],"absolutePath":"src/periphery/Transactor.sol","file":"./Transactor.sol","nameLocation":"-1:-1:-1","scope":58942,"sourceUnit":59012,"symbolAliases":[{"foreign":{"id":58737,"name":"Transactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59011,"src":"204:10:80","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58941,"nodeType":"ContractDefinition","src":"463:3836:80","nodes":[{"id":58748,"nodeType":"EventDefinition","src":"676:56:80","nodes":[],"anonymous":false,"documentation":{"id":58742,"nodeType":"StructuredDocumentation","src":"506:165:80","text":"@notice Emitted when ETH is received by this address.\n @param from   Address that sent ETH to this contract.\n @param amount Amount of ETH received."},"eventSelector":"4103257eaac983ca79a70d28f90dfc4fa16b619bb0c17ee7cab0d4034c279624","name":"ReceivedETH","nameLocation":"682:11:80","parameters":{"id":58747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58744,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"710:4:80","nodeType":"VariableDeclaration","scope":58748,"src":"694:20:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58743,"name":"address","nodeType":"ElementaryTypeName","src":"694:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58746,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"724:6:80","nodeType":"VariableDeclaration","scope":58748,"src":"716:14:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58745,"name":"uint256","nodeType":"ElementaryTypeName","src":"716:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"693:38:80"}},{"id":58757,"nodeType":"EventDefinition","src":"980:89:80","nodes":[],"anonymous":false,"documentation":{"id":58749,"nodeType":"StructuredDocumentation","src":"738:237:80","text":"@notice Emitted when ETH is withdrawn from this address.\n @param withdrawer Address that triggered the withdrawal.\n @param recipient  Address that received the withdrawal.\n @param amount     ETH amount withdrawn."},"eventSelector":"1f12aa8b6d492dd9b98e2b00b0b20830c2a7ded65afac13b60d169a034ae90bc","name":"WithdrewETH","nameLocation":"986:11:80","parameters":{"id":58756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58751,"indexed":true,"mutability":"mutable","name":"withdrawer","nameLocation":"1014:10:80","nodeType":"VariableDeclaration","scope":58757,"src":"998:26:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58750,"name":"address","nodeType":"ElementaryTypeName","src":"998:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58753,"indexed":true,"mutability":"mutable","name":"recipient","nameLocation":"1042:9:80","nodeType":"VariableDeclaration","scope":58757,"src":"1026:25:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58752,"name":"address","nodeType":"ElementaryTypeName","src":"1026:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58755,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1061:6:80","nodeType":"VariableDeclaration","scope":58757,"src":"1053:14:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58754,"name":"uint256","nodeType":"ElementaryTypeName","src":"1053:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"997:71:80"}},{"id":58768,"nodeType":"EventDefinition","src":"1393:114:80","nodes":[],"anonymous":false,"documentation":{"id":58758,"nodeType":"StructuredDocumentation","src":"1075:313:80","text":"@notice Emitted when ERC20 tokens are withdrawn from this address.\n @param withdrawer Address that triggered the withdrawal.\n @param recipient  Address that received the withdrawal.\n @param asset      Address of the token being withdrawn.\n @param amount     ERC20 amount withdrawn."},"eventSelector":"6b00f1c7883f053ba83e907fd1965b22fffe3c4111383e725f04638a566cdbfa","name":"WithdrewERC20","nameLocation":"1399:13:80","parameters":{"id":58767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58760,"indexed":true,"mutability":"mutable","name":"withdrawer","nameLocation":"1429:10:80","nodeType":"VariableDeclaration","scope":58768,"src":"1413:26:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58759,"name":"address","nodeType":"ElementaryTypeName","src":"1413:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58762,"indexed":true,"mutability":"mutable","name":"recipient","nameLocation":"1457:9:80","nodeType":"VariableDeclaration","scope":58768,"src":"1441:25:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58761,"name":"address","nodeType":"ElementaryTypeName","src":"1441:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58764,"indexed":true,"mutability":"mutable","name":"asset","nameLocation":"1484:5:80","nodeType":"VariableDeclaration","scope":58768,"src":"1468:21:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58763,"name":"address","nodeType":"ElementaryTypeName","src":"1468:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58766,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1499:6:80","nodeType":"VariableDeclaration","scope":58768,"src":"1491:14:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58765,"name":"uint256","nodeType":"ElementaryTypeName","src":"1491:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1412:94:80"}},{"id":58779,"nodeType":"EventDefinition","src":"1833:111:80","nodes":[],"anonymous":false,"documentation":{"id":58769,"nodeType":"StructuredDocumentation","src":"1513:315:80","text":"@notice Emitted when ERC20 tokens are withdrawn from this address.\n @param withdrawer Address that triggered the withdrawal.\n @param recipient  Address that received the withdrawal.\n @param asset      Address of the token being withdrawn.\n @param id         Token ID being withdrawn."},"eventSelector":"30b478a5e196e55886228aa87ba74a7dfeba655e0a4d7ba275eabfc22aabb7a8","name":"WithdrewERC721","nameLocation":"1839:14:80","parameters":{"id":58778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58771,"indexed":true,"mutability":"mutable","name":"withdrawer","nameLocation":"1870:10:80","nodeType":"VariableDeclaration","scope":58779,"src":"1854:26:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58770,"name":"address","nodeType":"ElementaryTypeName","src":"1854:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58773,"indexed":true,"mutability":"mutable","name":"recipient","nameLocation":"1898:9:80","nodeType":"VariableDeclaration","scope":58779,"src":"1882:25:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58772,"name":"address","nodeType":"ElementaryTypeName","src":"1882:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58775,"indexed":true,"mutability":"mutable","name":"asset","nameLocation":"1925:5:80","nodeType":"VariableDeclaration","scope":58779,"src":"1909:21:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58774,"name":"address","nodeType":"ElementaryTypeName","src":"1909:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58777,"indexed":false,"mutability":"mutable","name":"id","nameLocation":"1940:2:80","nodeType":"VariableDeclaration","scope":58779,"src":"1932:10:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58776,"name":"uint256","nodeType":"ElementaryTypeName","src":"1932:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1853:90:80"}},{"id":58789,"nodeType":"FunctionDefinition","src":"1996:50:80","nodes":[],"body":{"id":58788,"nodeType":"Block","src":"2043:3:80","nodes":[],"statements":[]},"documentation":{"id":58780,"nodeType":"StructuredDocumentation","src":"1950:41:80","text":"@param _owner Initial contract owner."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":58785,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58782,"src":"2035:6:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":58786,"kind":"baseConstructorSpecifier","modifierName":{"id":58784,"name":"Transactor","nameLocations":["2024:10:80"],"nodeType":"IdentifierPath","referencedDeclaration":59011,"src":"2024:10:80"},"nodeType":"ModifierInvocation","src":"2024:18:80"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":58783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58782,"mutability":"mutable","name":"_owner","nameLocation":"2016:6:80","nodeType":"VariableDeclaration","scope":58789,"src":"2008:14:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58781,"name":"address","nodeType":"ElementaryTypeName","src":"2008:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2007:16:80"},"returnParameters":{"id":58787,"nodeType":"ParameterList","parameters":[],"src":"2043:0:80"},"scope":58941,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":58801,"nodeType":"FunctionDefinition","src":"2098:83:80","nodes":[],"body":{"id":58800,"nodeType":"Block","src":"2125:56:80","nodes":[],"statements":[{"eventCall":{"arguments":[{"expression":{"id":58794,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2152:3:80","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":58795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2156:6:80","memberName":"sender","nodeType":"MemberAccess","src":"2152:10:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":58796,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2164:3:80","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":58797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2168:5:80","memberName":"value","nodeType":"MemberAccess","src":"2164:9:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58793,"name":"ReceivedETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58748,"src":"2140:11:80","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":58798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2140:34:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58799,"nodeType":"EmitStatement","src":"2135:39:80"}]},"documentation":{"id":58790,"nodeType":"StructuredDocumentation","src":"2052:41:80","text":"@notice Make sure we can receive ETH."},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":58791,"nodeType":"ParameterList","parameters":[],"src":"2105:2:80"},"returnParameters":{"id":58792,"nodeType":"ParameterList","parameters":[],"src":"2125:0:80"},"scope":58941,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":58819,"nodeType":"FunctionDefinition","src":"2303:117:80","nodes":[],"body":{"id":58818,"nodeType":"Block","src":"2364:56:80","nodes":[],"statements":[{"expression":{"arguments":[{"id":58810,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58804,"src":"2386:3:80","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"expression":{"arguments":[{"id":58813,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2399:4:80","typeDescriptions":{"typeIdentifier":"t_contract$_AssetReceiver_$58941","typeString":"contract AssetReceiver"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AssetReceiver_$58941","typeString":"contract AssetReceiver"}],"id":58812,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2391:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58811,"name":"address","nodeType":"ElementaryTypeName","src":"2391:7:80","typeDescriptions":{}}},"id":58814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2391:13:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":58815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2405:7:80","memberName":"balance","nodeType":"MemberAccess","src":"2391:21:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58809,"name":"withdrawETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58848,"src":"2374:11:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$__$","typeString":"function (address payable,uint256)"}},"id":58816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2374:39:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58817,"nodeType":"ExpressionStatement","src":"2374:39:80"}]},"documentation":{"id":58802,"nodeType":"StructuredDocumentation","src":"2187:111:80","text":"@notice Withdraws full ETH balance to the recipient.\n @param _to Address to receive the ETH balance."},"functionSelector":"690d8320","implemented":true,"kind":"function","modifiers":[{"id":58807,"kind":"modifierInvocation","modifierName":{"id":58806,"name":"onlyOwner","nameLocations":["2354:9:80"],"nodeType":"IdentifierPath","referencedDeclaration":47689,"src":"2354:9:80"},"nodeType":"ModifierInvocation","src":"2354:9:80"}],"name":"withdrawETH","nameLocation":"2312:11:80","parameters":{"id":58805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58804,"mutability":"mutable","name":"_to","nameLocation":"2340:3:80","nodeType":"VariableDeclaration","scope":58819,"src":"2324:19:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":58803,"name":"address","nodeType":"ElementaryTypeName","src":"2324:15:80","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"2323:21:80"},"returnParameters":{"id":58808,"nodeType":"ParameterList","parameters":[],"src":"2364:0:80"},"scope":58941,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":58848,"nodeType":"FunctionDefinition","src":"2599:330:80","nodes":[],"body":{"id":58847,"nodeType":"Block","src":"2675:254:80","nodes":[],"statements":[{"assignments":[58830,null],"declarations":[{"constant":false,"id":58830,"mutability":"mutable","name":"success","nameLocation":"2753:7:80","nodeType":"VariableDeclaration","scope":58847,"src":"2748:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":58829,"name":"bool","nodeType":"ElementaryTypeName","src":"2748:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":58837,"initialValue":{"arguments":[{"hexValue":"","id":58835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2792:2:80","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":58831,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58822,"src":"2765:3:80","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":58832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2769:4:80","memberName":"call","nodeType":"MemberAccess","src":"2765:8:80","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":58834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":58833,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58824,"src":"2782:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2765:26:80","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":58836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2765:30:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2747:48:80"},{"expression":{"id":58838,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58830,"src":"2805:7:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58839,"nodeType":"ExpressionStatement","src":"2805:7:80"},{"eventCall":{"arguments":[{"expression":{"id":58841,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2897:3:80","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":58842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2901:6:80","memberName":"sender","nodeType":"MemberAccess","src":"2897:10:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58843,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58822,"src":"2909:3:80","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":58844,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58824,"src":"2914:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58840,"name":"WithdrewETH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58757,"src":"2885:11:80","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":58845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2885:37:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58846,"nodeType":"EmitStatement","src":"2880:42:80"}]},"documentation":{"id":58820,"nodeType":"StructuredDocumentation","src":"2426:168:80","text":"@notice Withdraws partial ETH balance to the recipient.\n @param _to     Address to receive the ETH balance.\n @param _amount Amount of ETH to withdraw."},"functionSelector":"4782f779","implemented":true,"kind":"function","modifiers":[{"id":58827,"kind":"modifierInvocation","modifierName":{"id":58826,"name":"onlyOwner","nameLocations":["2665:9:80"],"nodeType":"IdentifierPath","referencedDeclaration":47689,"src":"2665:9:80"},"nodeType":"ModifierInvocation","src":"2665:9:80"}],"name":"withdrawETH","nameLocation":"2608:11:80","parameters":{"id":58825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58822,"mutability":"mutable","name":"_to","nameLocation":"2636:3:80","nodeType":"VariableDeclaration","scope":58848,"src":"2620:19:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":58821,"name":"address","nodeType":"ElementaryTypeName","src":"2620:15:80","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":58824,"mutability":"mutable","name":"_amount","nameLocation":"2649:7:80","nodeType":"VariableDeclaration","scope":58848,"src":"2641:15:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58823,"name":"uint256","nodeType":"ElementaryTypeName","src":"2641:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2619:38:80"},"returnParameters":{"id":58828,"nodeType":"ParameterList","parameters":[],"src":"2675:0:80"},"scope":58941,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":58872,"nodeType":"FunctionDefinition","src":"3105:145:80","nodes":[],"body":{"id":58871,"nodeType":"Block","src":"3174:76:80","nodes":[],"statements":[{"expression":{"arguments":[{"id":58860,"name":"_asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58852,"src":"3198:6:80","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$48114","typeString":"contract ERC20"}},{"id":58861,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58854,"src":"3206:3:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":58866,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3236:4:80","typeDescriptions":{"typeIdentifier":"t_contract$_AssetReceiver_$58941","typeString":"contract AssetReceiver"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AssetReceiver_$58941","typeString":"contract AssetReceiver"}],"id":58865,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3228:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58864,"name":"address","nodeType":"ElementaryTypeName","src":"3228:7:80","typeDescriptions":{}}},"id":58867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3228:13:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58862,"name":"_asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58852,"src":"3211:6:80","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$48114","typeString":"contract ERC20"}},"id":58863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3218:9:80","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":47757,"src":"3211:16:80","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":58868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3211:31:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20_$48114","typeString":"contract ERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58859,"name":"withdrawERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58904,"src":"3184:13:80","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_ERC20_$48114_$_t_address_$_t_uint256_$returns$__$","typeString":"function (contract ERC20,address,uint256)"}},"id":58869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3184:59:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58870,"nodeType":"ExpressionStatement","src":"3184:59:80"}]},"documentation":{"id":58849,"nodeType":"StructuredDocumentation","src":"2935:165:80","text":"@notice Withdraws full ERC20 balance to the recipient.\n @param _asset ERC20 token to withdraw.\n @param _to    Address to receive the ERC20 balance."},"functionSelector":"9456fbcc","implemented":true,"kind":"function","modifiers":[{"id":58857,"kind":"modifierInvocation","modifierName":{"id":58856,"name":"onlyOwner","nameLocations":["3164:9:80"],"nodeType":"IdentifierPath","referencedDeclaration":47689,"src":"3164:9:80"},"nodeType":"ModifierInvocation","src":"3164:9:80"}],"name":"withdrawERC20","nameLocation":"3114:13:80","parameters":{"id":58855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58852,"mutability":"mutable","name":"_asset","nameLocation":"3134:6:80","nodeType":"VariableDeclaration","scope":58872,"src":"3128:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$48114","typeString":"contract ERC20"},"typeName":{"id":58851,"nodeType":"UserDefinedTypeName","pathNode":{"id":58850,"name":"ERC20","nameLocations":["3128:5:80"],"nodeType":"IdentifierPath","referencedDeclaration":48114,"src":"3128:5:80"},"referencedDeclaration":48114,"src":"3128:5:80","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$48114","typeString":"contract ERC20"}},"visibility":"internal"},{"constant":false,"id":58854,"mutability":"mutable","name":"_to","nameLocation":"3150:3:80","nodeType":"VariableDeclaration","scope":58872,"src":"3142:11:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58853,"name":"address","nodeType":"ElementaryTypeName","src":"3142:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3127:27:80"},"returnParameters":{"id":58858,"nodeType":"ParameterList","parameters":[],"src":"3174:0:80"},"scope":58941,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":58904,"nodeType":"FunctionDefinition","src":"3483:312:80","nodes":[],"body":{"id":58903,"nodeType":"Block","src":"3567:228:80","nodes":[],"statements":[{"expression":{"arguments":[{"id":58888,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58878,"src":"3649:3:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58889,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58880,"src":"3654:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":58885,"name":"_asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58876,"src":"3633:6:80","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$48114","typeString":"contract ERC20"}},"id":58887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3640:8:80","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":47864,"src":"3633:15:80","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":58890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3633:29:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58891,"nodeType":"ExpressionStatement","src":"3633:29:80"},{"eventCall":{"arguments":[{"expression":{"id":58893,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3746:3:80","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":58894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3750:6:80","memberName":"sender","nodeType":"MemberAccess","src":"3746:10:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58895,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58878,"src":"3758:3:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":58898,"name":"_asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58876,"src":"3771:6:80","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$48114","typeString":"contract ERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20_$48114","typeString":"contract ERC20"}],"id":58897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3763:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58896,"name":"address","nodeType":"ElementaryTypeName","src":"3763:7:80","typeDescriptions":{}}},"id":58899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3763:15:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58900,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58880,"src":"3780:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58892,"name":"WithdrewERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58768,"src":"3732:13:80","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":58901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3732:56:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58902,"nodeType":"EmitStatement","src":"3727:61:80"}]},"documentation":{"id":58873,"nodeType":"StructuredDocumentation","src":"3256:222:80","text":"@notice Withdraws partial ERC20 balance to the recipient.\n @param _asset  ERC20 token to withdraw.\n @param _to     Address to receive the ERC20 balance.\n @param _amount Amount of ERC20 to withdraw."},"functionSelector":"44004cc1","implemented":true,"kind":"function","modifiers":[{"id":58883,"kind":"modifierInvocation","modifierName":{"id":58882,"name":"onlyOwner","nameLocations":["3557:9:80"],"nodeType":"IdentifierPath","referencedDeclaration":47689,"src":"3557:9:80"},"nodeType":"ModifierInvocation","src":"3557:9:80"}],"name":"withdrawERC20","nameLocation":"3492:13:80","parameters":{"id":58881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58876,"mutability":"mutable","name":"_asset","nameLocation":"3512:6:80","nodeType":"VariableDeclaration","scope":58904,"src":"3506:12:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$48114","typeString":"contract ERC20"},"typeName":{"id":58875,"nodeType":"UserDefinedTypeName","pathNode":{"id":58874,"name":"ERC20","nameLocations":["3506:5:80"],"nodeType":"IdentifierPath","referencedDeclaration":48114,"src":"3506:5:80"},"referencedDeclaration":48114,"src":"3506:5:80","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$48114","typeString":"contract ERC20"}},"visibility":"internal"},{"constant":false,"id":58878,"mutability":"mutable","name":"_to","nameLocation":"3528:3:80","nodeType":"VariableDeclaration","scope":58904,"src":"3520:11:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58877,"name":"address","nodeType":"ElementaryTypeName","src":"3520:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58880,"mutability":"mutable","name":"_amount","nameLocation":"3541:7:80","nodeType":"VariableDeclaration","scope":58904,"src":"3533:15:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58879,"name":"uint256","nodeType":"ElementaryTypeName","src":"3533:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3505:44:80"},"returnParameters":{"id":58884,"nodeType":"ParameterList","parameters":[],"src":"3567:0:80"},"scope":58941,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":58940,"nodeType":"FunctionDefinition","src":"4029:268:80","nodes":[],"body":{"id":58939,"nodeType":"Block","src":"4113:184:80","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":58922,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4151:4:80","typeDescriptions":{"typeIdentifier":"t_contract$_AssetReceiver_$58941","typeString":"contract AssetReceiver"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AssetReceiver_$58941","typeString":"contract AssetReceiver"}],"id":58921,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4143:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58920,"name":"address","nodeType":"ElementaryTypeName","src":"4143:7:80","typeDescriptions":{}}},"id":58923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4143:13:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58924,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58910,"src":"4158:3:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58925,"name":"_id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58912,"src":"4163:3:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":58917,"name":"_asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58908,"src":"4123:6:80","typeDescriptions":{"typeIdentifier":"t_contract$_ERC721_$48658","typeString":"contract ERC721"}},"id":58919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4130:12:80","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":48375,"src":"4123:19:80","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":58926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4123:44:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58927,"nodeType":"ExpressionStatement","src":"4123:44:80"},{"eventCall":{"arguments":[{"expression":{"id":58929,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4252:3:80","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":58930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4256:6:80","memberName":"sender","nodeType":"MemberAccess","src":"4252:10:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58931,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58910,"src":"4264:3:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":58934,"name":"_asset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58908,"src":"4277:6:80","typeDescriptions":{"typeIdentifier":"t_contract$_ERC721_$48658","typeString":"contract ERC721"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC721_$48658","typeString":"contract ERC721"}],"id":58933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4269:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58932,"name":"address","nodeType":"ElementaryTypeName","src":"4269:7:80","typeDescriptions":{}}},"id":58935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4269:15:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58936,"name":"_id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58912,"src":"4286:3:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58928,"name":"WithdrewERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58779,"src":"4237:14:80","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":58937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4237:53:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58938,"nodeType":"EmitStatement","src":"4232:58:80"}]},"documentation":{"id":58905,"nodeType":"StructuredDocumentation","src":"3801:223:80","text":"@notice Withdraws ERC721 token to the recipient.\n @param _asset ERC721 token to withdraw.\n @param _to    Address to receive the ERC721 token.\n @param _id    Token ID of the ERC721 token to withdraw."},"functionSelector":"4025feb2","implemented":true,"kind":"function","modifiers":[{"id":58915,"kind":"modifierInvocation","modifierName":{"id":58914,"name":"onlyOwner","nameLocations":["4103:9:80"],"nodeType":"IdentifierPath","referencedDeclaration":47689,"src":"4103:9:80"},"nodeType":"ModifierInvocation","src":"4103:9:80"}],"name":"withdrawERC721","nameLocation":"4038:14:80","parameters":{"id":58913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58908,"mutability":"mutable","name":"_asset","nameLocation":"4060:6:80","nodeType":"VariableDeclaration","scope":58940,"src":"4053:13:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ERC721_$48658","typeString":"contract ERC721"},"typeName":{"id":58907,"nodeType":"UserDefinedTypeName","pathNode":{"id":58906,"name":"ERC721","nameLocations":["4053:6:80"],"nodeType":"IdentifierPath","referencedDeclaration":48658,"src":"4053:6:80"},"referencedDeclaration":48658,"src":"4053:6:80","typeDescriptions":{"typeIdentifier":"t_contract$_ERC721_$48658","typeString":"contract ERC721"}},"visibility":"internal"},{"constant":false,"id":58910,"mutability":"mutable","name":"_to","nameLocation":"4076:3:80","nodeType":"VariableDeclaration","scope":58940,"src":"4068:11:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58909,"name":"address","nodeType":"ElementaryTypeName","src":"4068:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58912,"mutability":"mutable","name":"_id","nameLocation":"4089:3:80","nodeType":"VariableDeclaration","scope":58940,"src":"4081:11:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58911,"name":"uint256","nodeType":"ElementaryTypeName","src":"4081:7:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4052:41:80"},"returnParameters":{"id":58916,"nodeType":"ParameterList","parameters":[],"src":"4113:0:80"},"scope":58941,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":58740,"name":"Transactor","nameLocations":["489:10:80"],"nodeType":"IdentifierPath","referencedDeclaration":59011,"src":"489:10:80"},"id":58741,"nodeType":"InheritanceSpecifier","src":"489:10:80"}],"canonicalName":"AssetReceiver","contractDependencies":[],"contractKind":"contract","documentation":{"id":58739,"nodeType":"StructuredDocumentation","src":"243:220:80","text":"@title AssetReceiver\n @notice AssetReceiver is a minimal contract for receiving funds assets in the form of either\n         ETH, ERC20 tokens, or ERC721 tokens. Only the contract owner may withdraw the assets."},"fullyImplemented":true,"linearizedBaseContracts":[58941,59011,47726],"name":"AssetReceiver","nameLocation":"472:13:80","scope":58942,"usedErrors":[],"usedEvents":[47675,58748,58757,58768,58779]}],"license":"MIT"},"id":80}