@zoralabs/openzeppelin-contracts-upgradeable
Version:
Secure Smart Contract library for Solidity
247 lines (246 loc) • 21.1 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "VestingWalletUpgradeable",
"sourceName": "contracts/finance/VestingWalletUpgradeable.sol",
"abi": [
{
"inputs": [],
"name": "ADDRESS_CALL_TO_NON_CONTRACT",
"type": "error"
},
{
"inputs": [],
"name": "ADDRESS_INSUFFICIENT_BALANCE",
"type": "error"
},
{
"inputs": [],
"name": "ADDRESS_LOW_LEVEL_CALL_FAILED",
"type": "error"
},
{
"inputs": [],
"name": "ADDRESS_UNABLE_TO_SEND_VALUE",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "ERC20Released",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "EtherReleased",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint8",
"name": "version",
"type": "uint8"
}
],
"name": "Initialized",
"type": "event"
},
{
"inputs": [],
"name": "beneficiary",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "duration",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
}
],
"name": "releasable",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "releasable",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
}
],
"name": "release",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "release",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "released",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
}
],
"name": "released",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "start",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint64",
"name": "timestamp",
"type": "uint64"
}
],
"name": "vestedAmount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint64",
"name": "timestamp",
"type": "uint64"
}
],
"name": "vestedAmount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
],
"bytecode": "0x608060405234801561001057600080fd5b50610fbe806100206000396000f3fe6080604052600436106100c05760003560e01c806386d1a69f11610074578063a3f8eace1161004e578063a3f8eace14610244578063be9a655514610281578063fbccedae146102ac576100c7565b806386d1a69f146101c557806396132521146101dc5780639852595c14610207576100c7565b806319165587116100a5578063191655871461013457806338af3eed1461015d578063810ec23b14610188576100c7565b80630a17b06b146100cc5780630fb5a6b414610109576100c7565b366100c757005b600080fd5b3480156100d857600080fd5b506100f360048036038101906100ee9190610a69565b6102d7565b6040516101009190610aaf565b60405180910390f35b34801561011557600080fd5b5061011e6102fc565b60405161012b9190610aaf565b60405180910390f35b34801561014057600080fd5b5061015b60048036038101906101569190610b28565b610324565b005b34801561016957600080fd5b506101726103eb565b60405161017f9190610b64565b60405180910390f35b34801561019457600080fd5b506101af60048036038101906101aa9190610b7f565b610415565b6040516101bc9190610aaf565b60405180910390f35b3480156101d157600080fd5b506101da6104b5565b005b3480156101e857600080fd5b506101f1610525565b6040516101fe9190610aaf565b60405180910390f35b34801561021357600080fd5b5061022e60048036038101906102299190610b28565b61052f565b60405161023b9190610aaf565b60405180910390f35b34801561025057600080fd5b5061026b60048036038101906102669190610b28565b610578565b6040516102789190610aaf565b60405180910390f35b34801561028d57600080fd5b5061029661059e565b6040516102a39190610aaf565b60405180910390f35b3480156102b857600080fd5b506102c16105c6565b6040516102ce9190610aaf565b60405180910390f35b60006102f56102e4610525565b476102ef9190610bee565b836105e8565b9050919050565b6000603660009054906101000a900467ffffffffffffffff1667ffffffffffffffff16905090565b600061032f82610578565b905080603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546103809190610bee565b925050819055508173ffffffffffffffffffffffffffffffffffffffff167fc0e523490dd523c33b1878c9eb14ff46991e3f5b2cd33710918618f2a39cba1b826040516103cd9190610aaf565b60405180910390a26103e7826103e16103eb565b83610682565b5050565b6000603560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006104ad6104238461052f565b8473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161045c9190610b64565b602060405180830381865afa158015610479573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049d9190610c70565b6104a79190610bee565b836105e8565b905092915050565b60006104bf6105c6565b905080603360008282546104d39190610bee565b925050819055507fda9d4e5f101b8b9b1c5b76d0c5a9f7923571acfc02376aa076b75a8c080c956b816040516105099190610aaf565b60405180910390a161052261051c6103eb565b82610708565b50565b6000603354905090565b6000603460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006105838261052f565b61058d8342610415565b6105979190610c9d565b9050919050565b6000603560149054906101000a900467ffffffffffffffff1667ffffffffffffffff16905090565b60006105d0610525565b6105d9426102d7565b6105e39190610c9d565b905090565b60006105f261059e565b8267ffffffffffffffff16101561060c576000905061067c565b6106146102fc565b61061c61059e565b6106269190610bee565b8267ffffffffffffffff16111561063f5782905061067c565b6106476102fc565b61064f61059e565b8367ffffffffffffffff166106649190610c9d565b8461066f9190610cd1565b6106799190610d5a565b90505b92915050565b6107038363a9059cbb60e01b84846040516024016106a1929190610d8b565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506107ea565b505050565b80471115610742576040517f9fbd983c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405161076890610de5565b60006040518083038185875af1925050503d80600081146107a5576040519150601f19603f3d011682016040523d82523d6000602084013e6107aa565b606091505b50509050806107e5576040517f549b67fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b6000610815828473ffffffffffffffffffffffffffffffffffffffff1661087a90919063ffffffff16565b905060008151111561087557808060200190518101906108359190610e32565b610874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086b90610ee2565b60405180910390fd5b5b505050565b606061088883836000610890565b905092915050565b6060814710156108cc576040517f9fbd983c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1684866040516108f59190610f71565b60006040518083038185875af1925050503d8060008114610932576040519150601f19603f3d011682016040523d82523d6000602084013e610937565b606091505b5091509150610947868383610952565b925050509392505050565b606082156109ab5760008251036109a35761096c846109bc565b6109a2576040517f652f4b6200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b8190506109b5565b6109b4826109df565b5b9392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000815111156109f25780518082602001fd5b6040517fa145193600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080fd5b600067ffffffffffffffff82169050919050565b610a4681610a29565b8114610a5157600080fd5b50565b600081359050610a6381610a3d565b92915050565b600060208284031215610a7f57610a7e610a24565b5b6000610a8d84828501610a54565b91505092915050565b6000819050919050565b610aa981610a96565b82525050565b6000602082019050610ac46000830184610aa0565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610af582610aca565b9050919050565b610b0581610aea565b8114610b1057600080fd5b50565b600081359050610b2281610afc565b92915050565b600060208284031215610b3e57610b3d610a24565b5b6000610b4c84828501610b13565b91505092915050565b610b5e81610aea565b82525050565b6000602082019050610b796000830184610b55565b92915050565b60008060408385031215610b9657610b95610a24565b5b6000610ba485828601610b13565b9250506020610bb585828601610a54565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610bf982610a96565b9150610c0483610a96565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610c3957610c38610bbf565b5b828201905092915050565b610c4d81610a96565b8114610c5857600080fd5b50565b600081519050610c6a81610c44565b92915050565b600060208284031215610c8657610c85610a24565b5b6000610c9484828501610c5b565b91505092915050565b6000610ca882610a96565b9150610cb383610a96565b925082821015610cc657610cc5610bbf565b5b828203905092915050565b6000610cdc82610a96565b9150610ce783610a96565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610d2057610d1f610bbf565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000610d6582610a96565b9150610d7083610a96565b925082610d8057610d7f610d2b565b5b828204905092915050565b6000604082019050610da06000830185610b55565b610dad6020830184610aa0565b9392505050565b600081905092915050565b50565b6000610dcf600083610db4565b9150610dda82610dbf565b600082019050919050565b6000610df082610dc2565b9150819050919050565b60008115159050919050565b610e0f81610dfa565b8114610e1a57600080fd5b50565b600081519050610e2c81610e06565b92915050565b600060208284031215610e4857610e47610a24565b5b6000610e5684828501610e1d565b91505092915050565b600082825260208201905092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000610ecc602a83610e5f565b9150610ed782610e70565b604082019050919050565b60006020820190508181036000830152610efb81610ebf565b9050919050565b600081519050919050565b60005b83811015610f2b578082015181840152602081019050610f10565b83811115610f3a576000848401525b50505050565b6000610f4b82610f02565b610f558185610db4565b9350610f65818560208601610f0d565b80840191505092915050565b6000610f7d8284610f40565b91508190509291505056fea26469706673582212207b977c6f3a8e9821238c3cdfc1b376e722f4371a26c315cbf3794ef96db6850a64736f6c634300080d0033",
"deployedBytecode": "0x6080604052600436106100c05760003560e01c806386d1a69f11610074578063a3f8eace1161004e578063a3f8eace14610244578063be9a655514610281578063fbccedae146102ac576100c7565b806386d1a69f146101c557806396132521146101dc5780639852595c14610207576100c7565b806319165587116100a5578063191655871461013457806338af3eed1461015d578063810ec23b14610188576100c7565b80630a17b06b146100cc5780630fb5a6b414610109576100c7565b366100c757005b600080fd5b3480156100d857600080fd5b506100f360048036038101906100ee9190610a69565b6102d7565b6040516101009190610aaf565b60405180910390f35b34801561011557600080fd5b5061011e6102fc565b60405161012b9190610aaf565b60405180910390f35b34801561014057600080fd5b5061015b60048036038101906101569190610b28565b610324565b005b34801561016957600080fd5b506101726103eb565b60405161017f9190610b64565b60405180910390f35b34801561019457600080fd5b506101af60048036038101906101aa9190610b7f565b610415565b6040516101bc9190610aaf565b60405180910390f35b3480156101d157600080fd5b506101da6104b5565b005b3480156101e857600080fd5b506101f1610525565b6040516101fe9190610aaf565b60405180910390f35b34801561021357600080fd5b5061022e60048036038101906102299190610b28565b61052f565b60405161023b9190610aaf565b60405180910390f35b34801561025057600080fd5b5061026b60048036038101906102669190610b28565b610578565b6040516102789190610aaf565b60405180910390f35b34801561028d57600080fd5b5061029661059e565b6040516102a39190610aaf565b60405180910390f35b3480156102b857600080fd5b506102c16105c6565b6040516102ce9190610aaf565b60405180910390f35b60006102f56102e4610525565b476102ef9190610bee565b836105e8565b9050919050565b6000603660009054906101000a900467ffffffffffffffff1667ffffffffffffffff16905090565b600061032f82610578565b905080603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546103809190610bee565b925050819055508173ffffffffffffffffffffffffffffffffffffffff167fc0e523490dd523c33b1878c9eb14ff46991e3f5b2cd33710918618f2a39cba1b826040516103cd9190610aaf565b60405180910390a26103e7826103e16103eb565b83610682565b5050565b6000603560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006104ad6104238461052f565b8473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161045c9190610b64565b602060405180830381865afa158015610479573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049d9190610c70565b6104a79190610bee565b836105e8565b905092915050565b60006104bf6105c6565b905080603360008282546104d39190610bee565b925050819055507fda9d4e5f101b8b9b1c5b76d0c5a9f7923571acfc02376aa076b75a8c080c956b816040516105099190610aaf565b60405180910390a161052261051c6103eb565b82610708565b50565b6000603354905090565b6000603460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006105838261052f565b61058d8342610415565b6105979190610c9d565b9050919050565b6000603560149054906101000a900467ffffffffffffffff1667ffffffffffffffff16905090565b60006105d0610525565b6105d9426102d7565b6105e39190610c9d565b905090565b60006105f261059e565b8267ffffffffffffffff16101561060c576000905061067c565b6106146102fc565b61061c61059e565b6106269190610bee565b8267ffffffffffffffff16111561063f5782905061067c565b6106476102fc565b61064f61059e565b8367ffffffffffffffff166106649190610c9d565b8461066f9190610cd1565b6106799190610d5a565b90505b92915050565b6107038363a9059cbb60e01b84846040516024016106a1929190610d8b565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506107ea565b505050565b80471115610742576040517f9fbd983c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405161076890610de5565b60006040518083038185875af1925050503d80600081146107a5576040519150601f19603f3d011682016040523d82523d6000602084013e6107aa565b606091505b50509050806107e5576040517f549b67fb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b6000610815828473ffffffffffffffffffffffffffffffffffffffff1661087a90919063ffffffff16565b905060008151111561087557808060200190518101906108359190610e32565b610874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086b90610ee2565b60405180910390fd5b5b505050565b606061088883836000610890565b905092915050565b6060814710156108cc576040517f9fbd983c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1684866040516108f59190610f71565b60006040518083038185875af1925050503d8060008114610932576040519150601f19603f3d011682016040523d82523d6000602084013e610937565b606091505b5091509150610947868383610952565b925050509392505050565b606082156109ab5760008251036109a35761096c846109bc565b6109a2576040517f652f4b6200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b8190506109b5565b6109b4826109df565b5b9392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000815111156109f25780518082602001fd5b6040517fa145193600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080fd5b600067ffffffffffffffff82169050919050565b610a4681610a29565b8114610a5157600080fd5b50565b600081359050610a6381610a3d565b92915050565b600060208284031215610a7f57610a7e610a24565b5b6000610a8d84828501610a54565b91505092915050565b6000819050919050565b610aa981610a96565b82525050565b6000602082019050610ac46000830184610aa0565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610af582610aca565b9050919050565b610b0581610aea565b8114610b1057600080fd5b50565b600081359050610b2281610afc565b92915050565b600060208284031215610b3e57610b3d610a24565b5b6000610b4c84828501610b13565b91505092915050565b610b5e81610aea565b82525050565b6000602082019050610b796000830184610b55565b92915050565b60008060408385031215610b9657610b95610a24565b5b6000610ba485828601610b13565b9250506020610bb585828601610a54565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610bf982610a96565b9150610c0483610a96565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610c3957610c38610bbf565b5b828201905092915050565b610c4d81610a96565b8114610c5857600080fd5b50565b600081519050610c6a81610c44565b92915050565b600060208284031215610c8657610c85610a24565b5b6000610c9484828501610c5b565b91505092915050565b6000610ca882610a96565b9150610cb383610a96565b925082821015610cc657610cc5610bbf565b5b828203905092915050565b6000610cdc82610a96565b9150610ce783610a96565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610d2057610d1f610bbf565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000610d6582610a96565b9150610d7083610a96565b925082610d8057610d7f610d2b565b5b828204905092915050565b6000604082019050610da06000830185610b55565b610dad6020830184610aa0565b9392505050565b600081905092915050565b50565b6000610dcf600083610db4565b9150610dda82610dbf565b600082019050919050565b6000610df082610dc2565b9150819050919050565b60008115159050919050565b610e0f81610dfa565b8114610e1a57600080fd5b50565b600081519050610e2c81610e06565b92915050565b600060208284031215610e4857610e47610a24565b5b6000610e5684828501610e1d565b91505092915050565b600082825260208201905092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000610ecc602a83610e5f565b9150610ed782610e70565b604082019050919050565b60006020820190508181036000830152610efb81610ebf565b9050919050565b600081519050919050565b60005b83811015610f2b578082015181840152602081019050610f10565b83811115610f3a576000848401525b50505050565b6000610f4b82610f02565b610f558185610db4565b9350610f65818560208601610f0d565b80840191505092915050565b6000610f7d8284610f40565b91508190509291505056fea26469706673582212207b977c6f3a8e9821238c3cdfc1b376e722f4371a26c315cbf3794ef96db6850a64736f6c634300080d0033",
"linkReferences": {},
"deployedLinkReferences": {}
}