@openzeppelin/contracts-upgradeable
Version:
Secure Smart Contract library for Solidity
232 lines (231 loc) • 18 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "RefundEscrowUpgradeable",
"sourceName": "contracts/utils/escrow/RefundEscrowUpgradeable.sol",
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "payee",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "weiAmount",
"type": "uint256"
}
],
"name": "Deposited",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [],
"name": "RefundsClosed",
"type": "event"
},
{
"anonymous": false,
"inputs": [],
"name": "RefundsEnabled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "payee",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "weiAmount",
"type": "uint256"
}
],
"name": "Withdrawn",
"type": "event"
},
{
"inputs": [],
"name": "beneficiary",
"outputs": [
{
"internalType": "address payable",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "beneficiaryWithdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "close",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "refundee",
"type": "address"
}
],
"name": "deposit",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "payee",
"type": "address"
}
],
"name": "depositsOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "enableRefunds",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "state",
"outputs": [
{
"internalType": "enum RefundEscrowUpgradeable.State",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address payable",
"name": "payee",
"type": "address"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "withdrawalAllowed",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x608060405234801561001057600080fd5b50610cce806100206000396000f3fe6080604052600436106100c25760003560e01c80638c52dc411161007f578063c19d93fb11610059578063c19d93fb146101e1578063e3a9db1a14610201578063f2fde38b14610245578063f340fa0114610265576100c2565b80638c52dc41146101995780638da5cb5b146101ae5780639af6549a146101cc576100c2565b806338af3eed146100c757806343d726d61461010857806351cff8d91461011f578063685ca1941461013f578063715018a61461016f5780638129fc1c14610184575b600080fd5b3480156100d357600080fd5b506100eb60c95461010090046001600160a01b031690565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561011457600080fd5b5061011d610278565b005b34801561012b57600080fd5b5061011d61013a366004610b91565b61036f565b34801561014b57600080fd5b5061015f61015a366004610b91565b6103ec565b60405190151581526020016100ff565b34801561017b57600080fd5b5061011d610422565b34801561019057600080fd5b5061011d610458565b3480156101a557600080fd5b5061011d6104cb565b3480156101ba57600080fd5b506033546001600160a01b03166100eb565b3480156101d857600080fd5b5061011d6105c2565b3480156101ed57600080fd5b5060c95460ff166040516100ff9190610bb4565b34801561020d57600080fd5b5061023761021c366004610b91565b6001600160a01b031660009081526065602052604090205490565b6040519081526020016100ff565b34801561025157600080fd5b5061011d610260366004610b91565b61068c565b61011d610273366004610b91565b610724565b6033546001600160a01b031633146102ab5760405162461bcd60e51b81526004016102a290610c2a565b60405180910390fd5b60006102b960c95460ff1690565b60028111156102d857634e487b7160e01b600052602160045260246000fd5b146103375760405162461bcd60e51b815260206004820152602960248201527f526566756e64457363726f773a2063616e206f6e6c7920636c6f7365207768696044820152686c652061637469766560b81b60648201526084016102a2565b60c9805460ff191660021790556040517f088672c3a6e342f7cd94a65ba63b79df24a8973927b4d05d803c44bbf787d12f90600090a1565b610378816103ec565b6103e05760405162461bcd60e51b815260206004820152603360248201527f436f6e646974696f6e616c457363726f773a207061796565206973206e6f7420604482015272616c6c6f77656420746f20776974686472617760681b60648201526084016102a2565b6103e9816107bb565b50565b600060016103fc60c95460ff1690565b600281111561041b57634e487b7160e01b600052602160045260246000fd5b1492915050565b6033546001600160a01b0316331461044c5760405162461bcd60e51b81526004016102a290610c2a565b6104566000610854565b565b600054610100900460ff1680610471575060005460ff16155b61048d5760405162461bcd60e51b81526004016102a290610bdc565b600054610100900460ff161580156104af576000805461ffff19166101011790555b6104b76108a6565b80156103e9576000805461ff001916905550565b6033546001600160a01b031633146104f55760405162461bcd60e51b81526004016102a290610c2a565b600061050360c95460ff1690565b600281111561052257634e487b7160e01b600052602160045260246000fd5b1461058a5760405162461bcd60e51b815260206004820152603260248201527f526566756e64457363726f773a2063616e206f6e6c7920656e61626c6520726560448201527166756e6473207768696c652061637469766560701b60648201526084016102a2565b60c9805460ff191660011790556040517f599d8e5a83cffb867d051598c4d70e805d59802d8081c1c7d6dffc5b6aca2b8990600090a1565b60026105d060c95460ff1690565b60028111156105ef57634e487b7160e01b600052602160045260246000fd5b146106625760405162461bcd60e51b815260206004820152603860248201527f526566756e64457363726f773a2062656e65666963696172792063616e206f6e60448201527f6c79207769746864726177207768696c6520636c6f736564000000000000000060648201526084016102a2565b6104564761067d60c95461010090046001600160a01b031690565b6001600160a01b031690610915565b6033546001600160a01b031633146106b65760405162461bcd60e51b81526004016102a290610c2a565b6001600160a01b03811661071b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102a2565b6103e981610854565b600061073260c95460ff1690565b600281111561075157634e487b7160e01b600052602160045260246000fd5b146107b25760405162461bcd60e51b815260206004820152602b60248201527f526566756e64457363726f773a2063616e206f6e6c79206465706f736974207760448201526a68696c652061637469766560a81b60648201526084016102a2565b6103e981610a33565b6033546001600160a01b031633146107e55760405162461bcd60e51b81526004016102a290610c2a565b6001600160a01b038116600081815260656020526040812080549190559061080d9082610915565b816001600160a01b03167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d58260405161084891815260200190565b60405180910390a25050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16806108bf575060005460ff16155b6108db5760405162461bcd60e51b81526004016102a290610bdc565b600054610100900460ff161580156108fd576000805461ffff19166101011790555b610905610ac7565b61090d610b31565b6104b7610ac7565b804710156109655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016102a2565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146109b2576040519150601f19603f3d011682016040523d82523d6000602084013e6109b7565b606091505b5050905080610a2e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016102a2565b505050565b6033546001600160a01b03163314610a5d5760405162461bcd60e51b81526004016102a290610c2a565b6001600160a01b038116600090815260656020526040812080543492839291610a87908490610c5f565b90915550506040518181526001600160a01b038316907f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c490602001610848565b600054610100900460ff1680610ae0575060005460ff16155b610afc5760405162461bcd60e51b81526004016102a290610bdc565b600054610100900460ff161580156104b7576000805461ffff191661010117905580156103e9576000805461ff001916905550565b600054610100900460ff1680610b4a575060005460ff16155b610b665760405162461bcd60e51b81526004016102a290610bdc565b600054610100900460ff16158015610b88576000805461ffff19166101011790555b6104b733610854565b600060208284031215610ba2578081fd5b8135610bad81610c83565b9392505050565b6020810160038310610bd657634e487b7160e01b600052602160045260246000fd5b91905290565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115610c7e57634e487b7160e01b81526011600452602481fd5b500190565b6001600160a01b03811681146103e957600080fdfea2646970667358221220e75a5a833e0a337448672ff500a9d92abbe8bb44c5ee2f0b6468482d8d10bc5864736f6c63430008030033",
"deployedBytecode": "0x6080604052600436106100c25760003560e01c80638c52dc411161007f578063c19d93fb11610059578063c19d93fb146101e1578063e3a9db1a14610201578063f2fde38b14610245578063f340fa0114610265576100c2565b80638c52dc41146101995780638da5cb5b146101ae5780639af6549a146101cc576100c2565b806338af3eed146100c757806343d726d61461010857806351cff8d91461011f578063685ca1941461013f578063715018a61461016f5780638129fc1c14610184575b600080fd5b3480156100d357600080fd5b506100eb60c95461010090046001600160a01b031690565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561011457600080fd5b5061011d610278565b005b34801561012b57600080fd5b5061011d61013a366004610b91565b61036f565b34801561014b57600080fd5b5061015f61015a366004610b91565b6103ec565b60405190151581526020016100ff565b34801561017b57600080fd5b5061011d610422565b34801561019057600080fd5b5061011d610458565b3480156101a557600080fd5b5061011d6104cb565b3480156101ba57600080fd5b506033546001600160a01b03166100eb565b3480156101d857600080fd5b5061011d6105c2565b3480156101ed57600080fd5b5060c95460ff166040516100ff9190610bb4565b34801561020d57600080fd5b5061023761021c366004610b91565b6001600160a01b031660009081526065602052604090205490565b6040519081526020016100ff565b34801561025157600080fd5b5061011d610260366004610b91565b61068c565b61011d610273366004610b91565b610724565b6033546001600160a01b031633146102ab5760405162461bcd60e51b81526004016102a290610c2a565b60405180910390fd5b60006102b960c95460ff1690565b60028111156102d857634e487b7160e01b600052602160045260246000fd5b146103375760405162461bcd60e51b815260206004820152602960248201527f526566756e64457363726f773a2063616e206f6e6c7920636c6f7365207768696044820152686c652061637469766560b81b60648201526084016102a2565b60c9805460ff191660021790556040517f088672c3a6e342f7cd94a65ba63b79df24a8973927b4d05d803c44bbf787d12f90600090a1565b610378816103ec565b6103e05760405162461bcd60e51b815260206004820152603360248201527f436f6e646974696f6e616c457363726f773a207061796565206973206e6f7420604482015272616c6c6f77656420746f20776974686472617760681b60648201526084016102a2565b6103e9816107bb565b50565b600060016103fc60c95460ff1690565b600281111561041b57634e487b7160e01b600052602160045260246000fd5b1492915050565b6033546001600160a01b0316331461044c5760405162461bcd60e51b81526004016102a290610c2a565b6104566000610854565b565b600054610100900460ff1680610471575060005460ff16155b61048d5760405162461bcd60e51b81526004016102a290610bdc565b600054610100900460ff161580156104af576000805461ffff19166101011790555b6104b76108a6565b80156103e9576000805461ff001916905550565b6033546001600160a01b031633146104f55760405162461bcd60e51b81526004016102a290610c2a565b600061050360c95460ff1690565b600281111561052257634e487b7160e01b600052602160045260246000fd5b1461058a5760405162461bcd60e51b815260206004820152603260248201527f526566756e64457363726f773a2063616e206f6e6c7920656e61626c6520726560448201527166756e6473207768696c652061637469766560701b60648201526084016102a2565b60c9805460ff191660011790556040517f599d8e5a83cffb867d051598c4d70e805d59802d8081c1c7d6dffc5b6aca2b8990600090a1565b60026105d060c95460ff1690565b60028111156105ef57634e487b7160e01b600052602160045260246000fd5b146106625760405162461bcd60e51b815260206004820152603860248201527f526566756e64457363726f773a2062656e65666963696172792063616e206f6e60448201527f6c79207769746864726177207768696c6520636c6f736564000000000000000060648201526084016102a2565b6104564761067d60c95461010090046001600160a01b031690565b6001600160a01b031690610915565b6033546001600160a01b031633146106b65760405162461bcd60e51b81526004016102a290610c2a565b6001600160a01b03811661071b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102a2565b6103e981610854565b600061073260c95460ff1690565b600281111561075157634e487b7160e01b600052602160045260246000fd5b146107b25760405162461bcd60e51b815260206004820152602b60248201527f526566756e64457363726f773a2063616e206f6e6c79206465706f736974207760448201526a68696c652061637469766560a81b60648201526084016102a2565b6103e981610a33565b6033546001600160a01b031633146107e55760405162461bcd60e51b81526004016102a290610c2a565b6001600160a01b038116600081815260656020526040812080549190559061080d9082610915565b816001600160a01b03167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d58260405161084891815260200190565b60405180910390a25050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16806108bf575060005460ff16155b6108db5760405162461bcd60e51b81526004016102a290610bdc565b600054610100900460ff161580156108fd576000805461ffff19166101011790555b610905610ac7565b61090d610b31565b6104b7610ac7565b804710156109655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016102a2565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146109b2576040519150601f19603f3d011682016040523d82523d6000602084013e6109b7565b606091505b5050905080610a2e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016102a2565b505050565b6033546001600160a01b03163314610a5d5760405162461bcd60e51b81526004016102a290610c2a565b6001600160a01b038116600090815260656020526040812080543492839291610a87908490610c5f565b90915550506040518181526001600160a01b038316907f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c490602001610848565b600054610100900460ff1680610ae0575060005460ff16155b610afc5760405162461bcd60e51b81526004016102a290610bdc565b600054610100900460ff161580156104b7576000805461ffff191661010117905580156103e9576000805461ff001916905550565b600054610100900460ff1680610b4a575060005460ff16155b610b665760405162461bcd60e51b81526004016102a290610bdc565b600054610100900460ff16158015610b88576000805461ffff19166101011790555b6104b733610854565b600060208284031215610ba2578081fd5b8135610bad81610c83565b9392505050565b6020810160038310610bd657634e487b7160e01b600052602160045260246000fd5b91905290565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115610c7e57634e487b7160e01b81526011600452602481fd5b500190565b6001600160a01b03811681146103e957600080fdfea2646970667358221220e75a5a833e0a337448672ff500a9d92abbe8bb44c5ee2f0b6468482d8d10bc5864736f6c63430008030033",
"linkReferences": {},
"deployedLinkReferences": {}
}