More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 145 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Release Vested T... | 21292241 | 143 days ago | IN | 0 ETH | 0.0007258 | ||||
Batch Release Ve... | 20332780 | 277 days ago | IN | 0 ETH | 0.00062576 | ||||
Release Vested T... | 16671184 | 791 days ago | IN | 0 ETH | 0.00272922 | ||||
Release Vested T... | 15998668 | 885 days ago | IN | 0 ETH | 0.00081604 | ||||
Release Vested T... | 15809884 | 911 days ago | IN | 0 ETH | 0.00029376 | ||||
Release Vested T... | 15745799 | 920 days ago | IN | 0 ETH | 0.00112069 | ||||
Release Vested T... | 15681979 | 929 days ago | IN | 0 ETH | 0.00067603 | ||||
Release Vested T... | 15644927 | 934 days ago | IN | 0 ETH | 0.00063272 | ||||
Release Vested T... | 15611752 | 939 days ago | IN | 0 ETH | 0.00125503 | ||||
Release Vested T... | 15609666 | 939 days ago | IN | 0 ETH | 0.00024638 | ||||
Release Vested T... | 15599877 | 941 days ago | IN | 0 ETH | 0.00034609 | ||||
Release Vested T... | 15587850 | 942 days ago | IN | 0 ETH | 0.00040381 | ||||
Release Vested T... | 15584907 | 943 days ago | IN | 0 ETH | 0.00069179 | ||||
Release Vested T... | 15580286 | 944 days ago | IN | 0 ETH | 0.00035538 | ||||
Release Vested T... | 15575584 | 944 days ago | IN | 0 ETH | 0.00049893 | ||||
Release Vested T... | 15560924 | 946 days ago | IN | 0 ETH | 0.00039729 | ||||
Release Vested T... | 15553017 | 947 days ago | IN | 0 ETH | 0.00044562 | ||||
Release Vested T... | 15540283 | 949 days ago | IN | 0 ETH | 0.00107162 | ||||
Release Vested T... | 15473961 | 960 days ago | IN | 0 ETH | 0.00051455 | ||||
Release Vested T... | 15460978 | 962 days ago | IN | 0 ETH | 0.00184353 | ||||
Release Vested T... | 15446994 | 964 days ago | IN | 0 ETH | 0.00132619 | ||||
Release Vested T... | 15401757 | 972 days ago | IN | 0 ETH | 0.00063412 | ||||
Release Vested T... | 15384719 | 974 days ago | IN | 0 ETH | 0.00101703 | ||||
Release Vested T... | 15382981 | 974 days ago | IN | 0 ETH | 0.00042361 | ||||
Release Vested T... | 15377883 | 975 days ago | IN | 0 ETH | 0.0003104 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
PKNVesting
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-11-29 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.7; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _setOwner(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } contract PKNVesting is Ownable { uint256 private constant ONE_MONTH = 30 days; uint256 public immutable START_TIME; uint256 public immutable DURATION_MONTHS; uint256 public totalAllocations; IERC20 public PKN; struct Allocation { uint256 amount; uint256 amountClaimed; uint256 monthsClaimed; } mapping (address => Allocation) public PKNAllocations; constructor(address _PKN, uint256 _startTime, uint256 _numOfMonths) { PKN = IERC20(_PKN); START_TIME = _startTime; DURATION_MONTHS = _numOfMonths; } function getVestedAmount(address _recipient) public view returns(uint256 monthsVested, uint256 amountVested) { Allocation storage PKNAllocation = PKNAllocations[_recipient]; require(PKNAllocation.amountClaimed < PKNAllocation.amount, "Allocation fully claimed"); if (_currentTime() < START_TIME) { return (0, 0); } uint256 elapsedMonths = 1 + (_currentTime() - START_TIME) / ONE_MONTH; if(elapsedMonths >= DURATION_MONTHS) { uint256 remainingAllocation = PKNAllocation.amount - PKNAllocation.amountClaimed; return (DURATION_MONTHS, remainingAllocation); } monthsVested = elapsedMonths - PKNAllocation.monthsClaimed; amountVested = monthsVested * (PKNAllocation.amount / DURATION_MONTHS); } function getAllocationDetails(address _recipient) external view returns(Allocation memory) { return PKNAllocations[_recipient]; } function addAllocation(address[] calldata _recipients, uint256[] calldata _amounts) external onlyOwner { require(_recipients.length == _amounts.length, "Invalid input lengths"); uint256 totalAmount = 0; for (uint256 i = 0; i < _recipients.length; i++) { totalAmount += _amounts[i]; _addAllocation(_recipients[i], _amounts[i]); } totalAllocations += _recipients.length; require(_receivePKN(msg.sender, totalAmount) == totalAmount, "Recieved less PKN than transferred"); } function releaseVestedTokens() external { _releaseVestedTokens(msg.sender); } function batchReleaseVestedTokens(address[] calldata _recipients) external { for (uint256 i = 0; i < _recipients.length; i++) { _releaseVestedTokens(_recipients[i]); } } // DOES NOT transfer PKN to the contract. Needs to be handled by the caller. function _addAllocation(address _recipient, uint256 _amount) internal { require(PKNAllocations[_recipient].amount == 0, "Allocation already exists"); require(_amount >= DURATION_MONTHS, "Amount too low"); Allocation memory allocation = Allocation({ amount: _amount, amountClaimed: 0, monthsClaimed: 0 }); PKNAllocations[_recipient] = allocation; } function _releaseVestedTokens(address _recipient) internal { (uint256 monthsVested, uint256 amountVested) = getVestedAmount(_recipient); require(amountVested > 0, "Vested amount is 0"); Allocation storage PKNAllocation = PKNAllocations[_recipient]; PKNAllocation.monthsClaimed = PKNAllocation.monthsClaimed + monthsVested; PKNAllocation.amountClaimed = PKNAllocation.amountClaimed + amountVested; PKN.transfer(_recipient, amountVested); } function _receivePKN(address from, uint256 amount) internal returns(uint256) { uint256 balanceBefore = PKN.balanceOf(address(this)); PKN.transferFrom(from, address(this), amount); uint256 balanceAfter = PKN.balanceOf(address(this)); return balanceAfter - balanceBefore; } function _currentTime() internal view returns(uint256) { return block.timestamp; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_PKN","type":"address"},{"internalType":"uint256","name":"_startTime","type":"uint256"},{"internalType":"uint256","name":"_numOfMonths","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"DURATION_MONTHS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PKN","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"PKNAllocations","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"amountClaimed","type":"uint256"},{"internalType":"uint256","name":"monthsClaimed","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"START_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_recipients","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"name":"addAllocation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_recipients","type":"address[]"}],"name":"batchReleaseVestedTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"}],"name":"getAllocationDetails","outputs":[{"components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"amountClaimed","type":"uint256"},{"internalType":"uint256","name":"monthsClaimed","type":"uint256"}],"internalType":"struct PKNVesting.Allocation","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"}],"name":"getVestedAmount","outputs":[{"internalType":"uint256","name":"monthsVested","type":"uint256"},{"internalType":"uint256","name":"amountVested","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"releaseVestedTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalAllocations","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60c060405234801561001057600080fd5b50604051610f13380380610f1383398101604081905261002f916100b4565b61003833610064565b600280546001600160a01b0319166001600160a01b03949094169390931790925560805260a0526100f7565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806000606084860312156100c957600080fd5b83516001600160a01b03811681146100e057600080fd5b602085015160409095015190969495509392505050565b60805160a051610dcd6101466000396000818161018d015281816105230152818161055d015281816105a201526109010152600081816101ef015281816104a801526104e50152610dcd6000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063b46a389b1161008c578063ddaa26ad11610066578063ddaa26ad146101ea578063df4e325a14610211578063e0cdde3a14610224578063f2fde38b1461025957600080fd5b8063b46a389b14610188578063c63fe2f6146101af578063d5a73fdd146101c257600080fd5b806354dd1da4146100d457806363b51ac0146100de578063688c3e40146100fa578063715018a6146101255780638da5cb5b1461012d57806391c10a3e1461013e575b600080fd5b6100dc61026c565b005b6100e760015481565b6040519081526020015b60405180910390f35b60025461010d906001600160a01b031681565b6040516001600160a01b0390911681526020016100f1565b6100dc610277565b6000546001600160a01b031661010d565b61016d61014c366004610b92565b60036020526000908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016100f1565b6100e77f000000000000000000000000000000000000000000000000000000000000000081565b6100dc6101bd366004610c04565b6102b4565b6101d56101d0366004610b92565b610437565b604080519283526020830191909152016100f1565b6100e77f000000000000000000000000000000000000000000000000000000000000000081565b6100dc61021f366004610bc2565b6105da565b610237610232366004610b92565b61062b565b60408051825181526020808401519082015291810151908201526060016100f1565b6100dc610267366004610b92565b610691565b6102753361072c565b565b6000546001600160a01b031633146102aa5760405162461bcd60e51b81526004016102a190610cab565b60405180910390fd5b6102756000610849565b6000546001600160a01b031633146102de5760405162461bcd60e51b81526004016102a190610cab565b8281146103255760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420696e707574206c656e6774687360581b60448201526064016102a1565b6000805b848110156103b15783838281811061034357610343610d81565b90506020020135826103559190610ce0565b915061039f86868381811061036c5761036c610d81565b90506020020160208101906103819190610b92565b85858481811061039357610393610d81565b90506020020135610899565b806103a981610d50565b915050610329565b5084849050600160008282546103c79190610ce0565b909155508190506103d833826109a6565b146104305760405162461bcd60e51b815260206004820152602260248201527f5265636965766564206c65737320504b4e207468616e207472616e7366657272604482015261195960f21b60648201526084016102a1565b5050505050565b6001600160a01b038116600090815260036020526040812080546001820154839291116104a65760405162461bcd60e51b815260206004820152601860248201527f416c6c6f636174696f6e2066756c6c7920636c61696d6564000000000000000060448201526064016102a1565b7f00000000000000000000000000000000000000000000000000000000000000004210156104da5750600093849350915050565b600062278d0061050a7f000000000000000000000000000000000000000000000000000000000000000042610d39565b6105149190610cf8565b61051f906001610ce0565b90507f00000000000000000000000000000000000000000000000000000000000000008110610588576001820154825460009161055b91610d39565b7f000000000000000000000000000000000000000000000000000000000000000097909650945050505050565b60028201546105979082610d39565b82549094506105c7907f000000000000000000000000000000000000000000000000000000000000000090610cf8565b6105d19085610d1a565b92505050915091565b60005b81811015610626576106148383838181106105fa576105fa610d81565b905060200201602081019061060f9190610b92565b61072c565b8061061e81610d50565b9150506105dd565b505050565b61064f60405180606001604052806000815260200160008152602001600081525090565b506001600160a01b0316600090815260036020908152604091829020825160608101845281548152600182015492810192909252600201549181019190915290565b6000546001600160a01b031633146106bb5760405162461bcd60e51b81526004016102a190610cab565b6001600160a01b0381166107205760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102a1565b61072981610849565b50565b60008061073883610437565b91509150600081116107815760405162461bcd60e51b8152602060048201526012602482015271056657374656420616d6f756e7420697320360741b60448201526064016102a1565b6001600160a01b038316600090815260036020526040902060028101546107a9908490610ce0565b600282015560018101546107be908390610ce0565b600182015560025460405163a9059cbb60e01b81526001600160a01b038681166004830152602482018590529091169063a9059cbb90604401602060405180830381600087803b15801561081157600080fd5b505af1158015610825573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104309190610c70565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216600090815260036020526040902054156108ff5760405162461bcd60e51b815260206004820152601960248201527f416c6c6f636174696f6e20616c7265616479206578697374730000000000000060448201526064016102a1565b7f00000000000000000000000000000000000000000000000000000000000000008110156109605760405162461bcd60e51b815260206004820152600e60248201526d416d6f756e7420746f6f206c6f7760901b60448201526064016102a1565b60408051606081018252918252600060208084018281528484018381526001600160a01b0390961683526003909152919020915182555160018201559051600290910155565b6002546040516370a0823160e01b815230600482015260009182916001600160a01b03909116906370a082319060240160206040518083038186803b1580156109ee57600080fd5b505afa158015610a02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a269190610c92565b6002546040516323b872dd60e01b81526001600160a01b038781166004830152306024830152604482018790529293509116906323b872dd90606401602060405180830381600087803b158015610a7c57600080fd5b505af1158015610a90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab49190610c70565b506002546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b158015610af957600080fd5b505afa158015610b0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b319190610c92565b9050610b3d8282610d39565b95945050505050565b60008083601f840112610b5857600080fd5b50813567ffffffffffffffff811115610b7057600080fd5b6020830191508360208260051b8501011115610b8b57600080fd5b9250929050565b600060208284031215610ba457600080fd5b81356001600160a01b0381168114610bbb57600080fd5b9392505050565b60008060208385031215610bd557600080fd5b823567ffffffffffffffff811115610bec57600080fd5b610bf885828601610b46565b90969095509350505050565b60008060008060408587031215610c1a57600080fd5b843567ffffffffffffffff80821115610c3257600080fd5b610c3e88838901610b46565b90965094506020870135915080821115610c5757600080fd5b50610c6487828801610b46565b95989497509550505050565b600060208284031215610c8257600080fd5b81518015158114610bbb57600080fd5b600060208284031215610ca457600080fd5b5051919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115610cf357610cf3610d6b565b500190565b600082610d1557634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615610d3457610d34610d6b565b500290565b600082821015610d4b57610d4b610d6b565b500390565b6000600019821415610d6457610d64610d6b565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea264697066735822122002869965c81d46eba4691d31e7012ed0484e43b06bd0009dd27e42f1c1cac31164736f6c63430008070033000000000000000000000000df09a216fac5adc3e640db418c0b9560765095030000000000000000000000000000000000000000000000000000000061c1bab8000000000000000000000000000000000000000000000000000000000000000a
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063b46a389b1161008c578063ddaa26ad11610066578063ddaa26ad146101ea578063df4e325a14610211578063e0cdde3a14610224578063f2fde38b1461025957600080fd5b8063b46a389b14610188578063c63fe2f6146101af578063d5a73fdd146101c257600080fd5b806354dd1da4146100d457806363b51ac0146100de578063688c3e40146100fa578063715018a6146101255780638da5cb5b1461012d57806391c10a3e1461013e575b600080fd5b6100dc61026c565b005b6100e760015481565b6040519081526020015b60405180910390f35b60025461010d906001600160a01b031681565b6040516001600160a01b0390911681526020016100f1565b6100dc610277565b6000546001600160a01b031661010d565b61016d61014c366004610b92565b60036020526000908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016100f1565b6100e77f000000000000000000000000000000000000000000000000000000000000000a81565b6100dc6101bd366004610c04565b6102b4565b6101d56101d0366004610b92565b610437565b604080519283526020830191909152016100f1565b6100e77f0000000000000000000000000000000000000000000000000000000061c1bab881565b6100dc61021f366004610bc2565b6105da565b610237610232366004610b92565b61062b565b60408051825181526020808401519082015291810151908201526060016100f1565b6100dc610267366004610b92565b610691565b6102753361072c565b565b6000546001600160a01b031633146102aa5760405162461bcd60e51b81526004016102a190610cab565b60405180910390fd5b6102756000610849565b6000546001600160a01b031633146102de5760405162461bcd60e51b81526004016102a190610cab565b8281146103255760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420696e707574206c656e6774687360581b60448201526064016102a1565b6000805b848110156103b15783838281811061034357610343610d81565b90506020020135826103559190610ce0565b915061039f86868381811061036c5761036c610d81565b90506020020160208101906103819190610b92565b85858481811061039357610393610d81565b90506020020135610899565b806103a981610d50565b915050610329565b5084849050600160008282546103c79190610ce0565b909155508190506103d833826109a6565b146104305760405162461bcd60e51b815260206004820152602260248201527f5265636965766564206c65737320504b4e207468616e207472616e7366657272604482015261195960f21b60648201526084016102a1565b5050505050565b6001600160a01b038116600090815260036020526040812080546001820154839291116104a65760405162461bcd60e51b815260206004820152601860248201527f416c6c6f636174696f6e2066756c6c7920636c61696d6564000000000000000060448201526064016102a1565b7f0000000000000000000000000000000000000000000000000000000061c1bab84210156104da5750600093849350915050565b600062278d0061050a7f0000000000000000000000000000000000000000000000000000000061c1bab842610d39565b6105149190610cf8565b61051f906001610ce0565b90507f000000000000000000000000000000000000000000000000000000000000000a8110610588576001820154825460009161055b91610d39565b7f000000000000000000000000000000000000000000000000000000000000000a97909650945050505050565b60028201546105979082610d39565b82549094506105c7907f000000000000000000000000000000000000000000000000000000000000000a90610cf8565b6105d19085610d1a565b92505050915091565b60005b81811015610626576106148383838181106105fa576105fa610d81565b905060200201602081019061060f9190610b92565b61072c565b8061061e81610d50565b9150506105dd565b505050565b61064f60405180606001604052806000815260200160008152602001600081525090565b506001600160a01b0316600090815260036020908152604091829020825160608101845281548152600182015492810192909252600201549181019190915290565b6000546001600160a01b031633146106bb5760405162461bcd60e51b81526004016102a190610cab565b6001600160a01b0381166107205760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102a1565b61072981610849565b50565b60008061073883610437565b91509150600081116107815760405162461bcd60e51b8152602060048201526012602482015271056657374656420616d6f756e7420697320360741b60448201526064016102a1565b6001600160a01b038316600090815260036020526040902060028101546107a9908490610ce0565b600282015560018101546107be908390610ce0565b600182015560025460405163a9059cbb60e01b81526001600160a01b038681166004830152602482018590529091169063a9059cbb90604401602060405180830381600087803b15801561081157600080fd5b505af1158015610825573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104309190610c70565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216600090815260036020526040902054156108ff5760405162461bcd60e51b815260206004820152601960248201527f416c6c6f636174696f6e20616c7265616479206578697374730000000000000060448201526064016102a1565b7f000000000000000000000000000000000000000000000000000000000000000a8110156109605760405162461bcd60e51b815260206004820152600e60248201526d416d6f756e7420746f6f206c6f7760901b60448201526064016102a1565b60408051606081018252918252600060208084018281528484018381526001600160a01b0390961683526003909152919020915182555160018201559051600290910155565b6002546040516370a0823160e01b815230600482015260009182916001600160a01b03909116906370a082319060240160206040518083038186803b1580156109ee57600080fd5b505afa158015610a02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a269190610c92565b6002546040516323b872dd60e01b81526001600160a01b038781166004830152306024830152604482018790529293509116906323b872dd90606401602060405180830381600087803b158015610a7c57600080fd5b505af1158015610a90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab49190610c70565b506002546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b158015610af957600080fd5b505afa158015610b0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b319190610c92565b9050610b3d8282610d39565b95945050505050565b60008083601f840112610b5857600080fd5b50813567ffffffffffffffff811115610b7057600080fd5b6020830191508360208260051b8501011115610b8b57600080fd5b9250929050565b600060208284031215610ba457600080fd5b81356001600160a01b0381168114610bbb57600080fd5b9392505050565b60008060208385031215610bd557600080fd5b823567ffffffffffffffff811115610bec57600080fd5b610bf885828601610b46565b90969095509350505050565b60008060008060408587031215610c1a57600080fd5b843567ffffffffffffffff80821115610c3257600080fd5b610c3e88838901610b46565b90965094506020870135915080821115610c5757600080fd5b50610c6487828801610b46565b95989497509550505050565b600060208284031215610c8257600080fd5b81518015158114610bbb57600080fd5b600060208284031215610ca457600080fd5b5051919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115610cf357610cf3610d6b565b500190565b600082610d1557634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615610d3457610d34610d6b565b500290565b600082821015610d4b57610d4b610d6b565b500390565b6000600019821415610d6457610d64610d6b565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea264697066735822122002869965c81d46eba4691d31e7012ed0484e43b06bd0009dd27e42f1c1cac31164736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000df09a216fac5adc3e640db418c0b9560765095030000000000000000000000000000000000000000000000000000000061c1bab8000000000000000000000000000000000000000000000000000000000000000a
-----Decoded View---------------
Arg [0] : _PKN (address): 0xdf09a216Fac5ADC3e640Db418C0b956076509503
Arg [1] : _startTime (uint256): 1640086200
Arg [2] : _numOfMonths (uint256): 10
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000df09a216fac5adc3e640db418c0b956076509503
Arg [1] : 0000000000000000000000000000000000000000000000000000000061c1bab8
Arg [2] : 000000000000000000000000000000000000000000000000000000000000000a
Deployed Bytecode Sourcemap
5751:3933:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7916:91;;;:::i;:::-;;5931:31;;;;;;;;;6889:25:1;;;6877:2;6862:18;5931:31:0;;;;;;;;5971:17;;;;;-1:-1:-1;;;;;5971:17:0;;;;;;-1:-1:-1;;;;;2532:32:1;;;2514:51;;2502:2;2487:18;5971:17:0;2368:203:1;5122:94:0;;;:::i;4471:87::-;4517:7;4544:6;-1:-1:-1;;;;;4544:6:0;4471:87;;6120:53;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7380:25:1;;;7436:2;7421:18;;7414:34;;;;7464:18;;;7457:34;7368:2;7353:18;6120:53:0;7178:319:1;5884:40:0;;;;;7353:555;;;;;;:::i;:::-;;:::i;6370:824::-;;;;;;:::i;:::-;;:::i;:::-;;;;7099:25:1;;;7155:2;7140:18;;7133:34;;;;7072:18;6370:824:0;6925:248:1;5842:35:0;;;;;8015:205;;;;;;:::i;:::-;;:::i;7202:143::-;;;;;;:::i;:::-;;:::i;:::-;;;;6592:13:1;;6574:32;;6662:4;6650:17;;;6644:24;6622:20;;;6615:54;6713:17;;;6707:24;6685:20;;;6678:54;6562:2;6547:18;7202:143:0;6374:364:1;5371:192:0;;;;;;:::i;:::-;;:::i;7916:91::-;7967:32;7988:10;7967:20;:32::i;:::-;7916:91::o;5122:94::-;4517:7;4544:6;-1:-1:-1;;;;;4544:6:0;3427:10;4691:23;4683:68;;;;-1:-1:-1;;;4683:68:0;;;;;;;:::i;:::-;;;;;;;;;5187:21:::1;5205:1;5187:9;:21::i;7353:555::-:0;4517:7;4544:6;-1:-1:-1;;;;;4544:6:0;3427:10;4691:23;4683:68;;;;-1:-1:-1;;;4683:68:0;;;;;;;:::i;:::-;7475:37;;::::1;7467:71;;;::::0;-1:-1:-1;;;7467:71:0;;4815:2:1;7467:71:0::1;::::0;::::1;4797:21:1::0;4854:2;4834:18;;;4827:30;-1:-1:-1;;;4873:18:1;;;4866:51;4934:18;;7467:71:0::1;4613:345:1::0;7467:71:0::1;7549:19;7588:9:::0;7583:160:::1;7603:22:::0;;::::1;7583:160;;;7662:8;;7671:1;7662:11;;;;;;;:::i;:::-;;;;;;;7647:26;;;;;:::i;:::-;;;7688:43;7703:11;;7715:1;7703:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;7719:8;;7728:1;7719:11;;;;;;;:::i;:::-;;;;;;;7688:14;:43::i;:::-;7627:3:::0;::::1;::::0;::::1;:::i;:::-;;;;7583:160;;;;7773:11;;:18;;7753:16;;:38;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;7850:11:0;;-1:-1:-1;7810:36:0::1;7822:10;7850:11:::0;7810::::1;:36::i;:::-;:51;7802:98;;;::::0;-1:-1:-1;;;7802:98:0;;4412:2:1;7802:98:0::1;::::0;::::1;4394:21:1::0;4451:2;4431:18;;;4424:30;4490:34;4470:18;;;4463:62;-1:-1:-1;;;4541:18:1;;;4534:32;4583:19;;7802:98:0::1;4210:398:1::0;7802:98:0::1;7456:452;7353:555:::0;;;;:::o;6370:824::-;-1:-1:-1;;;;;6525:26:0;;6435:20;6525:26;;;:14;:26;;;;;6602:20;;6572:27;;;;6435:20;;6525:26;-1:-1:-1;6564:87:0;;;;-1:-1:-1;;;6564:87:0;;5519:2:1;6564:87:0;;;5501:21:1;5558:2;5538:18;;;5531:30;5597:26;5577:18;;;5570:54;5641:18;;6564:87:0;5317:348:1;6564:87:0;6685:10;9658:15;6668:27;6664:73;;;-1:-1:-1;6720:1:0;;;;-1:-1:-1;6370:824:0;-1:-1:-1;;6370:824:0:o;6664:73::-;6749:21;5828:7;6778:27;6795:10;9658:15;6778:27;:::i;:::-;6777:41;;;;:::i;:::-;6773:45;;:1;:45;:::i;:::-;6749:69;;6851:15;6834:13;:32;6831:204;;6936:27;;;;6913:20;;6883:27;;6913:50;;;:::i;:::-;6986:15;;6883:80;;-1:-1:-1;6370:824:0;-1:-1:-1;;;;;6370:824:0:o;6831:204::-;7078:27;;;;7062:43;;:13;:43;:::i;:::-;7147:20;;7047:58;;-1:-1:-1;7147:38:0;;7170:15;;7147:38;:::i;:::-;7131:55;;:12;:55;:::i;:::-;7116:70;;6479:715;;6370:824;;;:::o;8015:205::-;8106:9;8101:112;8121:22;;;8101:112;;;8165:36;8186:11;;8198:1;8186:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;8165:20;:36::i;:::-;8145:3;;;;:::i;:::-;;;;8101:112;;;;8015:205;;:::o;7202:143::-;7274:17;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;7274:17:0;-1:-1:-1;;;;;;7311:26:0;;;;;:14;:26;;;;;;;;;7304:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7202:143::o;5371:192::-;4517:7;4544:6;-1:-1:-1;;;;;4544:6:0;3427:10;4691:23;4683:68;;;;-1:-1:-1;;;4683:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5460:22:0;::::1;5452:73;;;::::0;-1:-1:-1;;;5452:73:0;;3658:2:1;5452:73:0::1;::::0;::::1;3640:21:1::0;3697:2;3677:18;;;3670:30;3736:34;3716:18;;;3709:62;-1:-1:-1;;;3787:18:1;;;3780:36;3833:19;;5452:73:0::1;3456:402:1::0;5452:73:0::1;5536:19;5546:8;5536:9;:19::i;:::-;5371:192:::0;:::o;8756:501::-;8827:20;8849;8873:27;8889:10;8873:15;:27::i;:::-;8826:74;;;;8934:1;8919:12;:16;8911:47;;;;-1:-1:-1;;;8911:47:0;;4065:2:1;8911:47:0;;;4047:21:1;4104:2;4084:18;;;4077:30;-1:-1:-1;;;4123:18:1;;;4116:48;4181:18;;8911:47:0;3863:342:1;8911:47:0;-1:-1:-1;;;;;9006:26:0;;8971:32;9006:26;;;:14;:26;;;;;9073:27;;;;:42;;9103:12;;9073:42;:::i;:::-;9043:27;;;:72;9156:27;;;;:42;;9186:12;;9156:42;:::i;:::-;9126:27;;;:72;9211:3;;:38;;-1:-1:-1;;;9211:38:0;;-1:-1:-1;;;;;3148:32:1;;;9211:38:0;;;3130:51:1;3197:18;;;3190:34;;;9211:3:0;;;;:12;;3103:18:1;;9211:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5571:173::-;5627:16;5646:6;;-1:-1:-1;;;;;5663:17:0;;;-1:-1:-1;;;;;;5663:17:0;;;;;;5696:40;;5646:6;;;;;;;5696:40;;5627:16;5696:40;5616:128;5571:173;:::o;8310:438::-;-1:-1:-1;;;;;8399:26:0;;;;;;:14;:26;;;;;:33;:38;8391:76;;;;-1:-1:-1;;;8391:76:0;;5165:2:1;8391:76:0;;;5147:21:1;5204:2;5184:18;;;5177:30;5243:27;5223:18;;;5216:55;5288:18;;8391:76:0;4963:349:1;8391:76:0;8497:15;8486:7;:26;;8478:53;;;;-1:-1:-1;;;8478:53:0;;6233:2:1;8478:53:0;;;6215:21:1;6272:2;6252:18;;;6245:30;-1:-1:-1;;;6291:18:1;;;6284:44;6345:18;;8478:53:0;6031:338:1;8478:53:0;8575:115;;;;;;;;;;;8544:28;8575:115;;;;;;;;;;;;;-1:-1:-1;;;;;8701:26:0;;;;;:14;:26;;;;;;:39;;;;;;;;;;;;;;;;8310:438::o;9265:312::-;9377:3;;:28;;-1:-1:-1;;;9377:28:0;;9399:4;9377:28;;;2514:51:1;9333:7:0;;;;-1:-1:-1;;;;;9377:3:0;;;;:13;;2487:18:1;;9377:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9416:3;;:45;;-1:-1:-1;;;9416:45:0;;-1:-1:-1;;;;;2834:15:1;;;9416:45:0;;;2816:34:1;9447:4:0;2866:18:1;;;2859:43;2918:18;;;2911:34;;;9353:52:0;;-1:-1:-1;9416:3:0;;;:16;;2751:18:1;;9416:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;9495:3:0;;:28;;-1:-1:-1;;;9495:28:0;;9517:4;9495:28;;;2514:51:1;9472:20:0;;-1:-1:-1;;;;;9495:3:0;;:13;;2487:18:1;;9495:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9472:51;-1:-1:-1;9541:28:0;9556:13;9472:51;9541:28;:::i;:::-;9534:35;9265:312;-1:-1:-1;;;;;9265:312:0:o;14:367:1:-;77:8;87:6;141:3;134:4;126:6;122:17;118:27;108:55;;159:1;156;149:12;108:55;-1:-1:-1;182:20:1;;225:18;214:30;;211:50;;;257:1;254;247:12;211:50;294:4;286:6;282:17;270:29;;354:3;347:4;337:6;334:1;330:14;322:6;318:27;314:38;311:47;308:67;;;371:1;368;361:12;308:67;14:367;;;;;:::o;386:286::-;445:6;498:2;486:9;477:7;473:23;469:32;466:52;;;514:1;511;504:12;466:52;540:23;;-1:-1:-1;;;;;592:31:1;;582:42;;572:70;;638:1;635;628:12;572:70;661:5;386:286;-1:-1:-1;;;386:286:1:o;677:437::-;763:6;771;824:2;812:9;803:7;799:23;795:32;792:52;;;840:1;837;830:12;792:52;880:9;867:23;913:18;905:6;902:30;899:50;;;945:1;942;935:12;899:50;984:70;1046:7;1037:6;1026:9;1022:22;984:70;:::i;:::-;1073:8;;958:96;;-1:-1:-1;677:437:1;-1:-1:-1;;;;677:437:1:o;1119:773::-;1241:6;1249;1257;1265;1318:2;1306:9;1297:7;1293:23;1289:32;1286:52;;;1334:1;1331;1324:12;1286:52;1374:9;1361:23;1403:18;1444:2;1436:6;1433:14;1430:34;;;1460:1;1457;1450:12;1430:34;1499:70;1561:7;1552:6;1541:9;1537:22;1499:70;:::i;:::-;1588:8;;-1:-1:-1;1473:96:1;-1:-1:-1;1676:2:1;1661:18;;1648:32;;-1:-1:-1;1692:16:1;;;1689:36;;;1721:1;1718;1711:12;1689:36;;1760:72;1824:7;1813:8;1802:9;1798:24;1760:72;:::i;:::-;1119:773;;;;-1:-1:-1;1851:8:1;-1:-1:-1;;;;1119:773:1:o;1897:277::-;1964:6;2017:2;2005:9;1996:7;1992:23;1988:32;1985:52;;;2033:1;2030;2023:12;1985:52;2065:9;2059:16;2118:5;2111:13;2104:21;2097:5;2094:32;2084:60;;2140:1;2137;2130:12;2179:184;2249:6;2302:2;2290:9;2281:7;2277:23;2273:32;2270:52;;;2318:1;2315;2308:12;2270:52;-1:-1:-1;2341:16:1;;2179:184;-1:-1:-1;2179:184:1:o;5670:356::-;5872:2;5854:21;;;5891:18;;;5884:30;5950:34;5945:2;5930:18;;5923:62;6017:2;6002:18;;5670:356::o;7502:128::-;7542:3;7573:1;7569:6;7566:1;7563:13;7560:39;;;7579:18;;:::i;:::-;-1:-1:-1;7615:9:1;;7502:128::o;7635:217::-;7675:1;7701;7691:132;;7745:10;7740:3;7736:20;7733:1;7726:31;7780:4;7777:1;7770:15;7808:4;7805:1;7798:15;7691:132;-1:-1:-1;7837:9:1;;7635:217::o;7857:168::-;7897:7;7963:1;7959;7955:6;7951:14;7948:1;7945:21;7940:1;7933:9;7926:17;7922:45;7919:71;;;7970:18;;:::i;:::-;-1:-1:-1;8010:9:1;;7857:168::o;8030:125::-;8070:4;8098:1;8095;8092:8;8089:34;;;8103:18;;:::i;:::-;-1:-1:-1;8140:9:1;;8030:125::o;8160:135::-;8199:3;-1:-1:-1;;8220:17:1;;8217:43;;;8240:18;;:::i;:::-;-1:-1:-1;8287:1:1;8276:13;;8160:135::o;8300:127::-;8361:10;8356:3;8352:20;8349:1;8342:31;8392:4;8389:1;8382:15;8416:4;8413:1;8406:15;8432:127;8493:10;8488:3;8484:20;8481:1;8474:31;8524:4;8521:1;8514:15;8548:4;8545:1;8538:15
Swarm Source
ipfs://02869965c81d46eba4691d31e7012ed0484e43b06bd0009dd27e42f1c1cac311
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.