UNPKG

@eth-optimism/contracts-periphery

Version:

[Optimism] External (out-of-protocol) L1 and L2 smart contracts for Optimism

336 lines (335 loc) 22.5 kB
{ "_format": "hh-sol-artifact-1", "contractName": "AssetReceiver", "sourceName": "contracts/universal/AssetReceiver.sol", "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": "", "type": "bool" }, { "internalType": "bytes", "name": "", "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": "", "type": "bool" }, { "internalType": "bytes", "name": "", "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" } ], "bytecode": "0x608060405234801561001057600080fd5b50604051610f68380380610f6883398101604081905261002f91610081565b600080546001600160a01b0319166001600160a01b038316908117825560405183928392917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d76908290a35050506100b1565b60006020828403121561009357600080fd5b81516001600160a01b03811681146100aa57600080fd5b9392505050565b610ea8806100c06000396000f3fe60806040526004361061009a5760003560e01c8063690d8320116100695780638da5cb5b1161004e5780638da5cb5b146101a75780639456fbcc146101f9578063edee62391461021957600080fd5b8063690d83201461015d5780636e2d44ae1461017d57600080fd5b806313af4035146100db5780634025feb2146100fd57806344004cc11461011d5780634782f7791461013d57600080fd5b366100d65760405134815233907f4103257eaac983ca79a70d28f90dfc4fa16b619bb0c17ee7cab0d4034c2796249060200160405180910390a2005b600080fd5b3480156100e757600080fd5b506100fb6100f6366004610b50565b61022c565b005b34801561010957600080fd5b506100fb610118366004610b74565b610322565b34801561012957600080fd5b506100fb610138366004610b74565b6104b4565b34801561014957600080fd5b506100fb610158366004610bb5565b610645565b34801561016957600080fd5b506100fb610178366004610b50565b610795565b61019061018b366004610cbb565b610823565b60405161019e929190610d38565b60405180910390f35b3480156101b357600080fd5b506000546101d49073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161019e565b34801561020557600080fd5b506100fb610214366004610d92565b61091d565b610190610227366004610dcb565b610a38565b60005473ffffffffffffffffffffffffffffffffffffffff1633146102b2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064015b60405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d769190a350565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016102a9565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8381166024830152604482018390528416906323b872dd90606401600060405180830381600087803b15801561041957600080fd5b505af115801561042d573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f30b478a5e196e55886228aa87ba74a7dfeba655e0a4d7ba275eabfc22aabb7a8846040516104a791815260200190565b60405180910390a4505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016102a9565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af11580156105aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ce9190610e1b565b508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f6b00f1c7883f053ba83e907fd1965b22fffe3c4111383e725f04638a566cdbfa846040516104a791815260200190565b60005473ffffffffffffffffffffffffffffffffffffffff1633146106c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016102a9565b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610720576040519150601f19603f3d011682016040523d82523d6000602084013e610725565b606091505b505090508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f1f12aa8b6d492dd9b98e2b00b0b20830c2a7ded65afac13b60d169a034ae90bc8460405161078891815260200190565b60405180910390a3505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016102a9565b6108208147610645565b50565b6000805460609073ffffffffffffffffffffffffffffffffffffffff1633146108a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016102a9565b8473ffffffffffffffffffffffffffffffffffffffff1683856040516108ce9190610e3d565b60006040518083038185875af1925050503d806000811461090b576040519150601f19603f3d011682016040523d82523d6000602084013e610910565b606091505b5091509150935093915050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461099e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016102a9565b6040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152610a34908390839073ffffffffffffffffffffffffffffffffffffffff8316906370a0823190602401602060405180830381865afa158015610a10573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101389190610e59565b5050565b6000805460609073ffffffffffffffffffffffffffffffffffffffff163314610abd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016102a9565b8373ffffffffffffffffffffffffffffffffffffffff1683604051610ae29190610e3d565b600060405180830381855af49150503d8060008114610b1d576040519150601f19603f3d011682016040523d82523d6000602084013e610b22565b606091505b50915091509250929050565b73ffffffffffffffffffffffffffffffffffffffff8116811461082057600080fd5b600060208284031215610b6257600080fd5b8135610b6d81610b2e565b9392505050565b600080600060608486031215610b8957600080fd5b8335610b9481610b2e565b92506020840135610ba481610b2e565b929592945050506040919091013590565b60008060408385031215610bc857600080fd5b8235610bd381610b2e565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112610c2157600080fd5b813567ffffffffffffffff80821115610c3c57610c3c610be1565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610c8257610c82610be1565b81604052838152866020858801011115610c9b57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600060608486031215610cd057600080fd5b8335610cdb81610b2e565b9250602084013567ffffffffffffffff811115610cf757600080fd5b610d0386828701610c10565b925050604084013590509250925092565b60005b83811015610d2f578181015183820152602001610d17565b50506000910152565b82151581526040602082015260008251806040840152610d5f816060850160208701610d14565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016060019392505050565b60008060408385031215610da557600080fd5b8235610db081610b2e565b91506020830135610dc081610b2e565b809150509250929050565b60008060408385031215610dde57600080fd5b8235610de981610b2e565b9150602083013567ffffffffffffffff811115610e0557600080fd5b610e1185828601610c10565b9150509250929050565b600060208284031215610e2d57600080fd5b81518015158114610b6d57600080fd5b60008251610e4f818460208701610d14565b9190910192915050565b600060208284031215610e6b57600080fd5b505191905056fea26469706673582212204b7f95fef7f02b34b66326bc4590e66db8e7cd2e0db8997698d7a359dbf9656364736f6c63430008100033", "deployedBytecode": "0x60806040526004361061009a5760003560e01c8063690d8320116100695780638da5cb5b1161004e5780638da5cb5b146101a75780639456fbcc146101f9578063edee62391461021957600080fd5b8063690d83201461015d5780636e2d44ae1461017d57600080fd5b806313af4035146100db5780634025feb2146100fd57806344004cc11461011d5780634782f7791461013d57600080fd5b366100d65760405134815233907f4103257eaac983ca79a70d28f90dfc4fa16b619bb0c17ee7cab0d4034c2796249060200160405180910390a2005b600080fd5b3480156100e757600080fd5b506100fb6100f6366004610b50565b61022c565b005b34801561010957600080fd5b506100fb610118366004610b74565b610322565b34801561012957600080fd5b506100fb610138366004610b74565b6104b4565b34801561014957600080fd5b506100fb610158366004610bb5565b610645565b34801561016957600080fd5b506100fb610178366004610b50565b610795565b61019061018b366004610cbb565b610823565b60405161019e929190610d38565b60405180910390f35b3480156101b357600080fd5b506000546101d49073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161019e565b34801561020557600080fd5b506100fb610214366004610d92565b61091d565b610190610227366004610dcb565b610a38565b60005473ffffffffffffffffffffffffffffffffffffffff1633146102b2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064015b60405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d769190a350565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016102a9565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8381166024830152604482018390528416906323b872dd90606401600060405180830381600087803b15801561041957600080fd5b505af115801561042d573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f30b478a5e196e55886228aa87ba74a7dfeba655e0a4d7ba275eabfc22aabb7a8846040516104a791815260200190565b60405180910390a4505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016102a9565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af11580156105aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ce9190610e1b565b508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f6b00f1c7883f053ba83e907fd1965b22fffe3c4111383e725f04638a566cdbfa846040516104a791815260200190565b60005473ffffffffffffffffffffffffffffffffffffffff1633146106c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016102a9565b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610720576040519150601f19603f3d011682016040523d82523d6000602084013e610725565b606091505b505090508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f1f12aa8b6d492dd9b98e2b00b0b20830c2a7ded65afac13b60d169a034ae90bc8460405161078891815260200190565b60405180910390a3505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016102a9565b6108208147610645565b50565b6000805460609073ffffffffffffffffffffffffffffffffffffffff1633146108a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016102a9565b8473ffffffffffffffffffffffffffffffffffffffff1683856040516108ce9190610e3d565b60006040518083038185875af1925050503d806000811461090b576040519150601f19603f3d011682016040523d82523d6000602084013e610910565b606091505b5091509150935093915050565b60005473ffffffffffffffffffffffffffffffffffffffff16331461099e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016102a9565b6040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152610a34908390839073ffffffffffffffffffffffffffffffffffffffff8316906370a0823190602401602060405180830381865afa158015610a10573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101389190610e59565b5050565b6000805460609073ffffffffffffffffffffffffffffffffffffffff163314610abd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016102a9565b8373ffffffffffffffffffffffffffffffffffffffff1683604051610ae29190610e3d565b600060405180830381855af49150503d8060008114610b1d576040519150601f19603f3d011682016040523d82523d6000602084013e610b22565b606091505b50915091509250929050565b73ffffffffffffffffffffffffffffffffffffffff8116811461082057600080fd5b600060208284031215610b6257600080fd5b8135610b6d81610b2e565b9392505050565b600080600060608486031215610b8957600080fd5b8335610b9481610b2e565b92506020840135610ba481610b2e565b929592945050506040919091013590565b60008060408385031215610bc857600080fd5b8235610bd381610b2e565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112610c2157600080fd5b813567ffffffffffffffff80821115610c3c57610c3c610be1565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610c8257610c82610be1565b81604052838152866020858801011115610c9b57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600060608486031215610cd057600080fd5b8335610cdb81610b2e565b9250602084013567ffffffffffffffff811115610cf757600080fd5b610d0386828701610c10565b925050604084013590509250925092565b60005b83811015610d2f578181015183820152602001610d17565b50506000910152565b82151581526040602082015260008251806040840152610d5f816060850160208701610d14565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016060019392505050565b60008060408385031215610da557600080fd5b8235610db081610b2e565b91506020830135610dc081610b2e565b809150509250929050565b60008060408385031215610dde57600080fd5b8235610de981610b2e565b9150602083013567ffffffffffffffff811115610e0557600080fd5b610e1185828601610c10565b9150509250929050565b600060208284031215610e2d57600080fd5b81518015158114610b6d57600080fd5b60008251610e4f818460208701610d14565b9190910192915050565b600060208284031215610e6b57600080fd5b505191905056fea26469706673582212204b7f95fef7f02b34b66326bc4590e66db8e7cd2e0db8997698d7a359dbf9656364736f6c63430008100033", "linkReferences": {}, "deployedLinkReferences": {} }