Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Vester
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2021-05-14
*/
pragma solidity ^0.6.7;
contract Vester {
address public immutable token;
address public recipient;
uint public immutable vestingAmount;
uint public immutable vestingBegin;
uint public immutable vestingCliff;
uint public immutable vestingEnd;
uint public lastUpdate;
constructor(
address token_,
address recipient_,
uint vestingAmount_,
uint vestingBegin_,
uint vestingCliff_,
uint vestingEnd_
) public {
require(vestingBegin_ >= block.timestamp, 'Vester::constructor: vesting begin too early');
require(vestingCliff_ >= vestingBegin_, 'Vester::constructor: cliff is too early');
require(vestingEnd_ > vestingCliff_, 'Vester::constructor: end is too early');
token = token_;
recipient = recipient_;
vestingAmount = vestingAmount_;
vestingBegin = vestingBegin_;
vestingCliff = vestingCliff_;
vestingEnd = vestingEnd_;
lastUpdate = vestingBegin_;
}
function setRecipient(address recipient_) public {
require(msg.sender == recipient, 'Vester::setRecipient: unauthorized');
recipient = recipient_;
}
function claim() public {
require(block.timestamp >= vestingCliff, 'Vester::claim: not time yet');
uint amount;
if (block.timestamp >= vestingEnd) {
amount = IERC20(token).balanceOf(address(this));
} else {
amount = mul(vestingAmount, (block.timestamp - lastUpdate)) / (vestingEnd - vestingBegin);
lastUpdate = block.timestamp;
}
IERC20(token).transfer(recipient, amount);
}
function mul(uint a, uint b) internal pure returns (uint c) {
require(b == 0 || (c = a * b) / b == a, 'Vester::mul: multiplication overflow');
}
}
interface IERC20 {
function balanceOf(address account) external view returns (uint);
function transfer(address dst, uint rawAmount) external returns (bool);
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"token_","type":"address"},{"internalType":"address","name":"recipient_","type":"address"},{"internalType":"uint256","name":"vestingAmount_","type":"uint256"},{"internalType":"uint256","name":"vestingBegin_","type":"uint256"},{"internalType":"uint256","name":"vestingCliff_","type":"uint256"},{"internalType":"uint256","name":"vestingEnd_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastUpdate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient_","type":"address"}],"name":"setRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vestingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vestingBegin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vestingCliff","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vestingEnd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]Contract Creation Code
61012060405234801561001157600080fd5b506040516108cc3803806108cc833981810160405260c081101561003457600080fd5b508051602082015160408301516060840151608085015160a0909501519394929391929091428310156100985760405162461bcd60e51b815260040180806020018281038252602c815260200180610854602c913960400191505060405180910390fd5b828210156100d75760405162461bcd60e51b81526004018080602001828103825260278152602001806108806027913960400191505060405180910390fd5b8181116101155760405162461bcd60e51b81526004018080602001828103825260258152602001806108a76025913960400191505060405180910390fd5b606086901b6001600160601b031916608052600080546001600160a01b0319166001600160a01b0396871617815560a085905260c084905260e08390526101008290526001849055949095169492939192909161069a906101ba9039806102c552806103cc528061051452508061023452806105625250806103ab528061053e52508061015952806103f1525080610330528061047c5280610586525061069a6000f3fe608060405234801561001057600080fd5b50600436106100a25760003560e01c806384a1931f11610076578063e29bc68b1161005b578063e29bc68b1461013f578063f3640e7414610147578063fc0c546a1461014f576100a2565b806384a1931f1461012f578063c046371114610137576100a2565b8062728f76146100a75780633bbed4a0146100c15780634e71d92d146100f657806366d003ac146100fe575b600080fd5b6100af610157565b60408051918252519081900360200190f35b6100f4600480360360208110156100d757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661017b565b005b6100f4610232565b6101066104f6565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100af610512565b6100af610536565b6100af61053c565b6100af610560565b610106610584565b7f000000000000000000000000000000000000000000000000000000000000000081565b60005473ffffffffffffffffffffffffffffffffffffffff1633146101eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806106436022913960400191505060405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000004210156102c157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f5665737465723a3a636c61696d3a206e6f742074696d65207965740000000000604482015290519081900360640190fd5b60007f000000000000000000000000000000000000000000000000000000000000000042106103a957604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016916370a08231916024808301926020929190829003018186803b15801561037657600080fd5b505afa15801561038a573d6000803e3d6000fd5b505050506040513d60208110156103a057600080fd5b50519050610429565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000000361041a7f000000000000000000000000000000000000000000000000000000000000000060015442036105a8565b8161042157fe5b426001550490505b60008054604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201526024810185905290517f00000000000000000000000000000000000000000000000000000000000000009092169263a9059cbb926044808401936020939083900390910190829087803b1580156104c757600080fd5b505af11580156104db573d6000803e3d6000fd5b505050506040513d60208110156104f157600080fd5b505050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60015481565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008115806105c3575050808202828282816105c057fe5b04145b610618576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061061f6024913960400191505060405180910390fd5b9291505056fe5665737465723a3a6d756c3a206d756c7469706c69636174696f6e206f766572666c6f775665737465723a3a736574526563697069656e743a20756e617574686f72697a6564a2646970667358221220c68838776eeaa0c45c3c7b656a322de60c111ab1766ce4e4ea5f35210c09f8ca64736f6c634300060c00335665737465723a3a636f6e7374727563746f723a2076657374696e6720626567696e20746f6f206561726c795665737465723a3a636f6e7374727563746f723a20636c69666620697320746f6f206561726c795665737465723a3a636f6e7374727563746f723a20656e6420697320746f6f206561726c79000000000000000000000000bebdab6da046bc49ffbb61fbd7b33157eb270d05000000000000000000000000d68f36eda870687bc3e901fda4fd55d803f1502400000000000000000000000000000000000000000024655cc78b38d7ac0000000000000000000000000000000000000000000000000000000000000060b578800000000000000000000000000000000000000000000000000000000060b5788000000000000000000000000000000000000000000000000000000000683b9800
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100a25760003560e01c806384a1931f11610076578063e29bc68b1161005b578063e29bc68b1461013f578063f3640e7414610147578063fc0c546a1461014f576100a2565b806384a1931f1461012f578063c046371114610137576100a2565b8062728f76146100a75780633bbed4a0146100c15780634e71d92d146100f657806366d003ac146100fe575b600080fd5b6100af610157565b60408051918252519081900360200190f35b6100f4600480360360208110156100d757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661017b565b005b6100f4610232565b6101066104f6565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100af610512565b6100af610536565b6100af61053c565b6100af610560565b610106610584565b7f00000000000000000000000000000000000000000024655cc78b38d7ac00000081565b60005473ffffffffffffffffffffffffffffffffffffffff1633146101eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806106436022913960400191505060405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b7f0000000000000000000000000000000000000000000000000000000060b578804210156102c157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f5665737465723a3a636c61696d3a206e6f742074696d65207965740000000000604482015290519081900360640190fd5b60007f00000000000000000000000000000000000000000000000000000000683b980042106103a957604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000bebdab6da046bc49ffbb61fbd7b33157eb270d0516916370a08231916024808301926020929190829003018186803b15801561037657600080fd5b505afa15801561038a573d6000803e3d6000fd5b505050506040513d60208110156103a057600080fd5b50519050610429565b7f0000000000000000000000000000000000000000000000000000000060b578807f00000000000000000000000000000000000000000000000000000000683b98000361041a7f00000000000000000000000000000000000000000024655cc78b38d7ac00000060015442036105a8565b8161042157fe5b426001550490505b60008054604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201526024810185905290517f000000000000000000000000bebdab6da046bc49ffbb61fbd7b33157eb270d059092169263a9059cbb926044808401936020939083900390910190829087803b1580156104c757600080fd5b505af11580156104db573d6000803e3d6000fd5b505050506040513d60208110156104f157600080fd5b505050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b7f00000000000000000000000000000000000000000000000000000000683b980081565b60015481565b7f0000000000000000000000000000000000000000000000000000000060b5788081565b7f0000000000000000000000000000000000000000000000000000000060b5788081565b7f000000000000000000000000bebdab6da046bc49ffbb61fbd7b33157eb270d0581565b60008115806105c3575050808202828282816105c057fe5b04145b610618576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061061f6024913960400191505060405180910390fd5b9291505056fe5665737465723a3a6d756c3a206d756c7469706c69636174696f6e206f766572666c6f775665737465723a3a736574526563697069656e743a20756e617574686f72697a6564a2646970667358221220c68838776eeaa0c45c3c7b656a322de60c111ab1766ce4e4ea5f35210c09f8ca64736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000bebdab6da046bc49ffbb61fbd7b33157eb270d05000000000000000000000000d68f36eda870687bc3e901fda4fd55d803f1502400000000000000000000000000000000000000000024655cc78b38d7ac0000000000000000000000000000000000000000000000000000000000000060b578800000000000000000000000000000000000000000000000000000000060b5788000000000000000000000000000000000000000000000000000000000683b9800
-----Decoded View---------------
Arg [0] : token_ (address): 0xBeBdab6DA046Bc49ffBb61fbD7b33157Eb270D05
Arg [1] : recipient_ (address): 0xD68F36EDA870687BC3E901FDA4FD55d803F15024
Arg [2] : vestingAmount_ (uint256): 44000000000000000000000000
Arg [3] : vestingBegin_ (uint256): 1622505600
Arg [4] : vestingCliff_ (uint256): 1622505600
Arg [5] : vestingEnd_ (uint256): 1748736000
-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 000000000000000000000000bebdab6da046bc49ffbb61fbd7b33157eb270d05
Arg [1] : 000000000000000000000000d68f36eda870687bc3e901fda4fd55d803f15024
Arg [2] : 00000000000000000000000000000000000000000024655cc78b38d7ac000000
Arg [3] : 0000000000000000000000000000000000000000000000000000000060b57880
Arg [4] : 0000000000000000000000000000000000000000000000000000000060b57880
Arg [5] : 00000000000000000000000000000000000000000000000000000000683b9800
Deployed Bytecode Sourcemap
27:1864:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;120:35;;;:::i;:::-;;;;;;;;;;;;;;;;1067:171;;;;;;;;;;;;;;;;-1:-1:-1;1067:171:0;;;;:::i;:::-;;1246:472;;;:::i;87:24::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;244:32;;;:::i;285:22::-;;;:::i;162:34::-;;;:::i;203:::-;;;:::i;50:30::-;;;:::i;120:35::-;;;:::o;1067:171::-;1149:9;;;;1135:10;:23;1127:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1208:9;:22;;;;;;;;;;;;;;;1067:171::o;1246:472::-;1308:12;1289:15;:31;;1281:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1363:11;1408:10;1389:15;:29;1385:274;;1444:38;;;;;;1476:4;1444:38;;;;;;:23;1451:5;1444:23;;;;:38;;;;;;;;;;;;;;:23;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1444:38:0;;-1:-1:-1;1385:274:0;;;1591:12;1578:10;:25;1524:50;1528:13;1562:10;;1544:15;:28;1524:3;:50::i;:::-;:80;;;;;1632:15;1619:10;:28;1524:80;;-1:-1:-1;1385:274:0;1692:9;;;1669:41;;;;;;:22;1692:9;;;1669:41;;;;;;;;;;;;1676:5;1669:22;;;;;;:41;;;;;;;;;;;;;;;;;:22;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1246:472:0:o;87:24::-;;;;;;:::o;244:32::-;;;:::o;285:22::-;;;;:::o;162:34::-;;;:::o;203:::-;;;:::o;50:30::-;;;:::o;1726:158::-;1778:6;1805;;;:30;;-1:-1:-1;;1820:5:0;;;1834:1;1829;1820:5;1829:1;1815:15;;;;;:20;1805:30;1797:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1726:158;;;;:::o
Swarm Source
ipfs://c68838776eeaa0c45c3c7b656a322de60c111ab1766ce4e4ea5f35210c09f8ca
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.