Overview
POL Balance
0 POL
POL Value
$0.00Token Holdings
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 383 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Release | 65267505 | 34 days ago | IN | 0 POL | 0.00344449 | ||||
Release | 65267399 | 34 days ago | IN | 0 POL | 0.00413885 | ||||
Release | 61306541 | 133 days ago | IN | 0 POL | 0.00252996 | ||||
Release | 54124141 | 318 days ago | IN | 0 POL | 0.00833051 | ||||
Release | 49943090 | 425 days ago | IN | 0 POL | 0.00543941 | ||||
Release | 49607173 | 434 days ago | IN | 0 POL | 0.0056456 | ||||
Release | 49366775 | 440 days ago | IN | 0 POL | 0.01087978 | ||||
Release | 49366752 | 440 days ago | IN | 0 POL | 0.01032236 | ||||
Release | 49366730 | 440 days ago | IN | 0 POL | 0.01056072 | ||||
Release | 49366697 | 440 days ago | IN | 0 POL | 0.01141609 | ||||
Release | 49366492 | 440 days ago | IN | 0 POL | 0.00560522 | ||||
Release | 49366448 | 440 days ago | IN | 0 POL | 0.00578459 | ||||
Release | 49366415 | 440 days ago | IN | 0 POL | 0.00793377 | ||||
Release | 49366365 | 440 days ago | IN | 0 POL | 0.00661935 | ||||
Release | 49366325 | 440 days ago | IN | 0 POL | 0.00732243 | ||||
Release | 49366283 | 440 days ago | IN | 0 POL | 0.01438571 | ||||
Release | 49020461 | 448 days ago | IN | 0 POL | 0.00606691 | ||||
Release | 48838436 | 453 days ago | IN | 0 POL | 0.00702656 | ||||
Release | 48523512 | 461 days ago | IN | 0 POL | 0.00354319 | ||||
Release | 48124054 | 471 days ago | IN | 0 POL | 0.00827123 | ||||
Release | 47211516 | 494 days ago | IN | 0 POL | 0.01005973 | ||||
Release | 47211482 | 494 days ago | IN | 0 POL | 0.00991179 | ||||
Release | 47001608 | 500 days ago | IN | 0 POL | 0.01045978 | ||||
Release | 46577952 | 510 days ago | IN | 0 POL | 0.01034126 | ||||
Release | 46348858 | 516 days ago | IN | 0 POL | 0.00641253 |
Loading...
Loading
Contract Name:
CrowdLinearDistribution
Compiler Version
v0.8.10+commit.fc410830
Optimization Enabled:
Yes with 1000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.10; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "./BokkyPooBahsDateTimeLibrary.sol"; import "./Ownable.sol"; /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract CrowdLinearDistribution is Ownable { event CrowdLinearDistributionCreated(address beneficiary); event CrowdLinearDistributionInitialized(address from); event TokensReleased(address beneficiary, uint256 amount); //0: Team_And_Advisors, 1: Community, 2: Investors, 3: Token_Launch_auction, 4: Liquidity enum VestingType { Team_And_Advisors, Community, Investors, Token_Launch_auction, Liquidity } struct BeneficiaryStruct { uint256 _start; uint256 _initial; uint256 _released; uint256 _balance; uint256 _vestingType; bool _exist; Ruleset[] _ruleset; } struct VestingTypeStruct { uint256 _initial; uint256 _allocatedInitial; Ruleset[] _ruleset; } struct Ruleset { uint256 _month; uint256 _value;//VestingTypeStruct: coefficient, BeneficiaryStruct: amount } mapping(address => BeneficiaryStruct) public _beneficiaryIndex; mapping(VestingType => VestingTypeStruct) public _vestingTypeIndex; address[] public _beneficiaries; address public _tokenAddress; constructor () { VestingTypeStruct storage teamVestingTypeStruct = _vestingTypeIndex[VestingType.Team_And_Advisors]; teamVestingTypeStruct._initial = 40000000 ether; teamVestingTypeStruct._ruleset.push(Ruleset(5, 100)); teamVestingTypeStruct._ruleset.push(Ruleset(11, 200)); teamVestingTypeStruct._ruleset.push(Ruleset(17, 325)); teamVestingTypeStruct._ruleset.push(Ruleset(1000, 500)); VestingTypeStruct storage communityVestingTypeStruct = _vestingTypeIndex[VestingType.Community]; communityVestingTypeStruct._initial = 10000000 ether; communityVestingTypeStruct._ruleset.push(Ruleset(5, 100)); communityVestingTypeStruct._ruleset.push(Ruleset(11, 200)); communityVestingTypeStruct._ruleset.push(Ruleset(17, 325)); communityVestingTypeStruct._ruleset.push(Ruleset(1000, 500)); VestingTypeStruct storage investorsVestingTypeStruct = _vestingTypeIndex[VestingType.Investors]; investorsVestingTypeStruct._initial = 20000000 ether; investorsVestingTypeStruct._ruleset.push(Ruleset(5, 100)); investorsVestingTypeStruct._ruleset.push(Ruleset(11, 200)); investorsVestingTypeStruct._ruleset.push(Ruleset(17, 325)); investorsVestingTypeStruct._ruleset.push(Ruleset(1000, 500)); VestingTypeStruct storage auctionVestingTypeStruct = _vestingTypeIndex[VestingType.Token_Launch_auction]; auctionVestingTypeStruct._initial = 50000000 ether; auctionVestingTypeStruct._ruleset.push(Ruleset(9, 100)); auctionVestingTypeStruct._ruleset.push(Ruleset(1000, 200)); VestingTypeStruct storage liquidityVestingTypeStruct = _vestingTypeIndex[VestingType.Liquidity]; liquidityVestingTypeStruct._initial = 100000000 ether; liquidityVestingTypeStruct._ruleset.push(Ruleset(1, 120)); liquidityVestingTypeStruct._ruleset.push(Ruleset(2, 140)); liquidityVestingTypeStruct._ruleset.push(Ruleset(3, 160)); liquidityVestingTypeStruct._ruleset.push(Ruleset(4, 180)); liquidityVestingTypeStruct._ruleset.push(Ruleset(5, 200)); liquidityVestingTypeStruct._ruleset.push(Ruleset(6, 220)); liquidityVestingTypeStruct._ruleset.push(Ruleset(7, 240)); liquidityVestingTypeStruct._ruleset.push(Ruleset(8, 260)); liquidityVestingTypeStruct._ruleset.push(Ruleset(9, 280)); liquidityVestingTypeStruct._ruleset.push(Ruleset(10, 300)); liquidityVestingTypeStruct._ruleset.push(Ruleset(11, 320)); liquidityVestingTypeStruct._ruleset.push(Ruleset(12, 340)); liquidityVestingTypeStruct._ruleset.push(Ruleset(13, 360)); liquidityVestingTypeStruct._ruleset.push(Ruleset(14, 380)); liquidityVestingTypeStruct._ruleset.push(Ruleset(15, 400)); liquidityVestingTypeStruct._ruleset.push(Ruleset(16, 420)); liquidityVestingTypeStruct._ruleset.push(Ruleset(17, 440)); liquidityVestingTypeStruct._ruleset.push(Ruleset(18, 460)); liquidityVestingTypeStruct._ruleset.push(Ruleset(19, 480)); liquidityVestingTypeStruct._ruleset.push(Ruleset(20, 500)); liquidityVestingTypeStruct._ruleset.push(Ruleset(21, 520)); liquidityVestingTypeStruct._ruleset.push(Ruleset(22, 540)); liquidityVestingTypeStruct._ruleset.push(Ruleset(1000, 550)); } fallback() external { revert("ce01"); } /** * @notice initialize contract. */ function initialize(address tokenAddress) external onlyOwner { require(tokenAddress != address(0) , "CrowdLinearDistribution: the token address is not valid"); _tokenAddress = tokenAddress; emit CrowdLinearDistributionInitialized(address(msg.sender)); } function create(address beneficiary, uint256 start, uint8 vestingType, uint256 initial) external onlyOwner { require(_tokenAddress != address(0), "CrowdLinearDistribution: the token address is not valid"); require(!_beneficiaryIndex[beneficiary]._exist, "CrowdLinearDistribution: beneficiary exists"); require(vestingType >= 0 && vestingType < 5, "CrowdLinearDistribution: vestingType is not valid"); require(initial > 0, "CrowdLinearDistribution: initial must be greater than zero"); VestingTypeStruct storage vestingTypeStruct = _vestingTypeIndex[VestingType(vestingType)]; require(initial + vestingTypeStruct._allocatedInitial <= vestingTypeStruct._initial, "CrowdLinearDistribution: Not enough token to distribute"); _beneficiaries.push(beneficiary); BeneficiaryStruct storage beneficiaryStruct = _beneficiaryIndex[beneficiary]; beneficiaryStruct._start = start; beneficiaryStruct._initial = initial; beneficiaryStruct._vestingType = vestingType; beneficiaryStruct._exist = true; for(uint i = 0; i < vestingTypeStruct._ruleset.length; i++) { Ruleset memory ruleset = vestingTypeStruct._ruleset[i]; beneficiaryStruct._ruleset.push(Ruleset(ruleset._month, calculateAmount(ruleset._value, initial))); } beneficiaryStruct._balance = beneficiaryStruct._ruleset[vestingTypeStruct._ruleset.length - 1]._value; vestingTypeStruct._allocatedInitial = vestingTypeStruct._allocatedInitial + initial; emit CrowdLinearDistributionCreated(beneficiary); } /** * @notice Transfers vested tokens to beneficiary. */ function release(address beneficiary) external { require(_tokenAddress != address(0), "CrowdLinearDistribution: token address not valid"); uint256 unreleased = getReleasable(beneficiary); require(unreleased > 0, "CrowdLinearDistribution: releasable amount is zero"); _beneficiaryIndex[beneficiary]._released = _beneficiaryIndex[beneficiary]._released + unreleased; _beneficiaryIndex[beneficiary]._balance = _beneficiaryIndex[beneficiary]._balance - unreleased; IERC20(_tokenAddress).transfer(beneficiary, unreleased); emit TokensReleased(beneficiary, unreleased); } function getBeneficiaries(uint256 vestingType) external view returns (address[] memory) { require(vestingType >= 0 && vestingType < 5, "CrowdLinearDistribution: vestingType is not valid"); uint256 j = 0; address[] memory beneficiaries = new address[](_beneficiaries.length); for (uint256 i = 0; i < _beneficiaries.length; i++) { address beneficiary = _beneficiaries[i]; if (_beneficiaryIndex[beneficiary]._vestingType == vestingType) { beneficiaries[j] = beneficiary; j++; } } return beneficiaries; } function getVestingType(address beneficiary) external view returns (uint256) { require(_beneficiaryIndex[beneficiary]._exist, "CrowdLinearDistribution: beneficiary does not exist"); return _beneficiaryIndex[beneficiary]._vestingType; } function getBeneficiary(address beneficiary) external view returns (BeneficiaryStruct memory) { require(_beneficiaryIndex[beneficiary]._exist, "CrowdLinearDistribution: beneficiary does not exist"); return _beneficiaryIndex[beneficiary]; } function getInitial(address beneficiary) external view returns (uint256) { require(_beneficiaryIndex[beneficiary]._exist, "CrowdLinearDistribution: beneficiary does not exist"); return _beneficiaryIndex[beneficiary]._initial; } function getStart(address beneficiary) external view returns (uint256) { require(_beneficiaryIndex[beneficiary]._exist, "CrowdLinearDistribution: beneficiary does not exist"); return _beneficiaryIndex[beneficiary]._start; } function getTotal(address beneficiary) external view returns (uint256) { require(_beneficiaryIndex[beneficiary]._exist, "CrowdLinearDistribution: beneficiary does not exist"); return _beneficiaryIndex[beneficiary]._balance + _beneficiaryIndex[beneficiary]._released; } function getVested(address beneficiary) external view returns (uint256) { require(_beneficiaryIndex[beneficiary]._exist, "CrowdLinearDistribution: beneficiary does not exist"); return _vestedAmount(beneficiary); } function getReleased(address beneficiary) external view returns (uint256) { require(_beneficiaryIndex[beneficiary]._exist, "CrowdLinearDistribution: beneficiary does not exist"); return _beneficiaryIndex[beneficiary]._released; } function getBalance(address beneficiary) external view returns (uint256) { require(_beneficiaryIndex[beneficiary]._exist, "CrowdLinearDistribution: beneficiary does not exist"); return uint256(_beneficiaryIndex[beneficiary]._balance); } function getVestingTypeStruct(uint256 vestingType) external view returns (VestingTypeStruct memory) { require(vestingType >= 0 && vestingType < 5, "CrowdLinearDistribution: vestingType is not valid"); return _vestingTypeIndex[VestingType(vestingType)]; } /** * @notice Returns the releasable amount of token for the given beneficiary */ function getReleasable(address beneficiary) public view returns (uint256) { require(_beneficiaryIndex[beneficiary]._exist, "CrowdLinearDistribution: beneficiary does not exist"); return _vestedAmount(beneficiary) - _beneficiaryIndex[beneficiary]._released; } /** * @dev Calculates the amount that has already vested. */ function _vestedAmount(address beneficiary) private view returns (uint256) { BeneficiaryStruct storage tokenVesting = _beneficiaryIndex[beneficiary]; uint256 totalBalance = tokenVesting._balance + tokenVesting._released; if (block.timestamp < tokenVesting._start) return 0; uint256 _months = BokkyPooBahsDateTimeLibrary.diffMonths(tokenVesting._start, block.timestamp); if (_months < 1) return tokenVesting._initial; uint256 result = 0; for (uint256 i = 0; i < tokenVesting._ruleset.length; i++) { Ruleset memory ruleset = tokenVesting._ruleset[i]; if (_months <= ruleset._month) { result = ruleset._value; break; } } return (result >= totalBalance) ? totalBalance : result; } function calculateAmount(uint coefficient, uint beneficiaryInitial) private pure returns (uint) { return (coefficient * beneficiaryInitial) / (10 ** 2); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @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); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.10; // ---------------------------------------------------------------------------- // BokkyPooBah's DateTime Library v1.01 // // A gas-efficient Solidity date and time library // // https://github.com/bokkypoobah/BokkyPooBahsDateTimeLibrary // // Tested date range 1970/01/01 to 2345/12/31 // // Conventions: // Unit | Range | Notes // :-------- |:-------------:|:----- // timestamp | >= 0 | Unix timestamp, number of seconds since 1970/01/01 00:00:00 UTC // year | 1970 ... 2345 | // month | 1 ... 12 | // day | 1 ... 31 | // hour | 0 ... 23 | // minute | 0 ... 59 | // second | 0 ... 59 | // dayOfWeek | 1 ... 7 | 1 = Monday, ..., 7 = Sunday // // // Enjoy. (c) BokkyPooBah / Bok Consulting Pty Ltd 2018-2019. The MIT Licence. // ---------------------------------------------------------------------------- library BokkyPooBahsDateTimeLibrary { uint constant SECONDS_PER_DAY = 24 * 60 * 60; int constant OFFSET19700101 = 2440588; // ------------------------------------------------------------------------ // Calculate year/month/day from the number of days since 1970/01/01 using // the date conversion algorithm from // http://aa.usno.navy.mil/faq/docs/JD_Formula.php // and adding the offset 2440588 so that 1970/01/01 is day 0 // // int L = days + 68569 + offset // int N = 4 * L / 146097 // L = L - (146097 * N + 3) / 4 // year = 4000 * (L + 1) / 1461001 // L = L - 1461 * year / 4 + 31 // month = 80 * L / 2447 // dd = L - 2447 * month / 80 // L = month / 11 // month = month + 2 - 12 * L // year = 100 * (N - 49) + year + L // ------------------------------------------------------------------------ function _daysToDate(uint _days) internal pure returns (uint year, uint month, uint day) { int __days = int(_days); int L = __days + 68569 + OFFSET19700101; int N = 4 * L / 146097; L = L - (146097 * N + 3) / 4; int _year = 4000 * (L + 1) / 1461001; L = L - 1461 * _year / 4 + 31; int _month = 80 * L / 2447; int _day = L - 2447 * _month / 80; L = _month / 11; _month = _month + 2 - 12 * L; _year = 100 * (N - 49) + _year + L; year = uint(_year); month = uint(_month); day = uint(_day); } function diffMonths(uint fromTimestamp, uint toTimestamp) internal pure returns (uint _months) { require(fromTimestamp <= toTimestamp, 'BP03'); (uint fromYear, uint fromMonth,) = _daysToDate(fromTimestamp / SECONDS_PER_DAY); (uint toYear, uint toMonth,) = _daysToDate(toTimestamp / SECONDS_PER_DAY); _months = toYear * 12 + toMonth - fromYear * 12 - fromMonth; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.10; /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address private _owner; address private _pendingOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ constructor() { _owner = msg.sender; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == _owner, "ce30"); _; } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Returns the address of the pending owner. */ function pendingOwner() public view returns (address) { return _pendingOwner; } /** * @dev Allows the current owner to set the pendingOwner address. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) public onlyOwner { _pendingOwner = newOwner; } /** * @dev Allows the pendingOwner address to finalize the transfer. */ function claimOwnership() public { require(msg.sender == _pendingOwner, "ce31"); _owner = _pendingOwner; _pendingOwner = address(0); emit OwnershipTransferred(_owner, _pendingOwner); } }
{ "optimizer": { "enabled": true, "runs": 1000 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "metadata": { "useLiteralContent": true }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"beneficiary","type":"address"}],"name":"CrowdLinearDistributionCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"}],"name":"CrowdLinearDistributionInitialized","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":[{"indexed":false,"internalType":"address","name":"beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TokensReleased","type":"event"},{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_beneficiaries","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_beneficiaryIndex","outputs":[{"internalType":"uint256","name":"_start","type":"uint256"},{"internalType":"uint256","name":"_initial","type":"uint256"},{"internalType":"uint256","name":"_released","type":"uint256"},{"internalType":"uint256","name":"_balance","type":"uint256"},{"internalType":"uint256","name":"_vestingType","type":"uint256"},{"internalType":"bool","name":"_exist","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum CrowdLinearDistribution.VestingType","name":"","type":"uint8"}],"name":"_vestingTypeIndex","outputs":[{"internalType":"uint256","name":"_initial","type":"uint256"},{"internalType":"uint256","name":"_allocatedInitial","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"beneficiary","type":"address"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint8","name":"vestingType","type":"uint8"},{"internalType":"uint256","name":"initial","type":"uint256"}],"name":"create","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"beneficiary","type":"address"}],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"vestingType","type":"uint256"}],"name":"getBeneficiaries","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"beneficiary","type":"address"}],"name":"getBeneficiary","outputs":[{"components":[{"internalType":"uint256","name":"_start","type":"uint256"},{"internalType":"uint256","name":"_initial","type":"uint256"},{"internalType":"uint256","name":"_released","type":"uint256"},{"internalType":"uint256","name":"_balance","type":"uint256"},{"internalType":"uint256","name":"_vestingType","type":"uint256"},{"internalType":"bool","name":"_exist","type":"bool"},{"components":[{"internalType":"uint256","name":"_month","type":"uint256"},{"internalType":"uint256","name":"_value","type":"uint256"}],"internalType":"struct CrowdLinearDistribution.Ruleset[]","name":"_ruleset","type":"tuple[]"}],"internalType":"struct CrowdLinearDistribution.BeneficiaryStruct","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"beneficiary","type":"address"}],"name":"getInitial","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"beneficiary","type":"address"}],"name":"getReleasable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"beneficiary","type":"address"}],"name":"getReleased","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"beneficiary","type":"address"}],"name":"getStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"beneficiary","type":"address"}],"name":"getTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"beneficiary","type":"address"}],"name":"getVested","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"beneficiary","type":"address"}],"name":"getVestingType","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"vestingType","type":"uint256"}],"name":"getVestingTypeStruct","outputs":[{"components":[{"internalType":"uint256","name":"_initial","type":"uint256"},{"internalType":"uint256","name":"_allocatedInitial","type":"uint256"},{"components":[{"internalType":"uint256","name":"_month","type":"uint256"},{"internalType":"uint256","name":"_value","type":"uint256"}],"internalType":"struct CrowdLinearDistribution.Ruleset[]","name":"_ruleset","type":"tuple[]"}],"internalType":"struct CrowdLinearDistribution.VestingTypeStruct","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"beneficiary","type":"address"}],"name":"release","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50600080546001600160a01b03191633178155600381808152602080820192909252604090810160009081206a211654585005212800000081558251808401845260058152606481860190815260028084018054600180820183558288528988209551918402860191825593519084015586518088018852600b815260c8818a01908152825480860184558389529151918402860191825551908401558651808801885260118152610145818a019081528254808601845583895291519184028601918255519084015586518088019097526103e887526101f497870197885280548084018255908652955195029091019384559351928401929092559092509060039082908152602080820192909252604090810160009081206a084595161401484a00000081558251808401845260058152606481860190815260028084018054600180820183558288528988209551918402860191825593519084015586518088018852600b815260c8818a01908152825480860184558389529151918402860191825551908401558651808801885260118152610145818a019081528254808601845583895291519184028601918255519084015586518088019097526103e887526101f4978701978852805480840182559086529551958102909201948555945193909401929092559092509060039082908152602080820192909252604090810160009081206a108b2a2c2802909400000081558251808401845260058152606481860190815260028084018054600180820183558288528988209551918402860191825593519084015586518088018852600b815260c8818a01908152825480860184558389529151918402860191825551908401558651808801885260118152610145818a019081528254808601845583895291519184028601918255519084015586518088019097526103e887526101f4978701978852805480840182559086529551950290910193845593519290930191909155909150600381818152602080820192909252604090810160009081206a295be96e6406697200000081558251808401845260098152606481860190815260028084018054600180820183558288528988209551918402860191825593519084015586518088019097526103e8875260c897870197885280548084018255908652955195029091019384559351929093019190915590915060038160048152602080820192909252604090810160009081206a52b7d2dcc80cd2e4000000815582518084018452600180825260788287019081526002938401805480840182558187528887209451908602850190815591519183019190915585518087018752848152608c81890190815282548085018455838852915191860285019182555190830155855180870187526003815260a081890190815282548085018455838852915191860285019182555190830155855180870187526004815260b481890190815282548085018455838852915191860285019182555190830155855180870187526005815260c881890190815282548085018455838852915191860285019182555190830155855180870187526006815260dc81890190815282548085018455838852915191860285019182555190830155855180870187526007815260f08189019081528254808501845583885291519186028501918255519083015585518087018752600881526101048189019081528254808501845583885291519186028501918255519083015585518087018752600981526101188189019081528254808501845583885291519186028501918255519083015585518087018752600a815261012c8189019081528254808501845583885291519186028501918255519083015585518087018752600b81526101408189019081528254808501845583885291519186028501918255519083015585518087018752600c81526101548189019081528254808501845583885291519186028501918255519083015585518087018752600d81526101688189019081528254808501845583885291519186028501918255519083015585518087018752600e815261017c8189019081528254808501845583885291519186028501918255519083015585518087018752600f81526101908189019081528254808501845583885291519186028501918255519083015585518087018752601081526101a48189019081528254808501845583885291519186028501918255519083015585518087018752601181526101b88189019081528254808501845583885291519186028501918255519083015585518087018752601281526101cc8189019081528254808501845583885291519186028501918255519083015585518087018752601381526101e08189019081528254808501845583885291519186028501918255519083015585518087018752601481526101f481890190815282548085018455838852915191860285019182555190830155855180870187526015815261020881890190815282548085018455838852915191860285019182555190830155855180870187526016815261021c8189019081528254808501845583885291519186028501918255519083015585518087019096526103e88652610226968601968752805480830182559452935192909102019081559151910155506107c99350505050565b611f3d806107d86000396000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c80638da5cb5b116100d8578063dec8f52e1161008c578063ee85f5fe11610066578063ee85f5fe14610410578063f2fde38b14610423578063f8b2cb4f1461043657610182565b8063dec8f52e146103d9578063e30c3978146103ec578063ebb6dad8146103fd57610182565b8063b4d11f35116100bd578063b4d11f35146103a0578063b8d5df95146103b3578063c4d66de8146103c657610182565b80638da5cb5b146103535780639c51e9b61461036457610182565b80634e71e0c81161013a578063543fcf0311610114578063543fcf03146102f5578063606b162314610320578063783804d91461033357610182565b80634e71e0c8146102ba578063505a1b31146102c25780635421213e146102e257610182565b80631fe8430a1161016b5780631fe8430a146101fd5780632ef105511461022357806335c5c0141461029a57610182565b806309a5c10a146101d557806319165587146101ea575b60405162461bcd60e51b81526004016101cc9060208082526004908201527f6365303100000000000000000000000000000000000000000000000000000000604082015260600190565b60405180910390fd5b6101e86101e3366004611b02565b610449565b005b6101e86101f8366004611b4e565b61092f565b61021061020b366004611b4e565b610b78565b6040519081526020015b60405180910390f35b61026b610231366004611b4e565b6002602081905260009182526040909120805460018201549282015460038301546004840154600590940154929493919290919060ff1686565b6040805196875260208701959095529385019290925260608401526080830152151560a082015260c00161021a565b6102ad6102a8366004611b69565b610c1e565b60405161021a9190611bc8565b6101e8610d8a565b6102d56102d0366004611b4e565b610e44565b60405161021a9190611bff565b6102106102f0366004611b4e565b610fd0565b600554610308906001600160a01b031681565b6040516001600160a01b03909116815260200161021a565b61021061032e366004611b4e565b61108d565b610346610341366004611b69565b611130565b60405161021a9190611c59565b6000546001600160a01b0316610308565b61038b610372366004611ca6565b6003602052600090815260409020805460019091015482565b6040805192835260208301919091520161021a565b6102106103ae366004611b4e565b611290565b6103086103c1366004611b69565b611337565b6101e86103d4366004611b4e565b611361565b6102106103e7366004611b4e565b61147e565b6001546001600160a01b0316610308565b61021061040b366004611b4e565b61150e565b61021061041e366004611b4e565b6115c4565b6101e8610431366004611b4e565b61166a565b610210610444366004611b4e565b6116dc565b6000546001600160a01b0316331461048c5760405162461bcd60e51b81526004016101cc906020808252600490820152630636533360e41b604082015260600190565b6005546001600160a01b031661050a5760405162461bcd60e51b815260206004820152603760248201527f43726f77644c696e656172446973747269627574696f6e3a2074686520746f6b60448201527f656e2061646472657373206973206e6f742076616c696400000000000000000060648201526084016101cc565b6001600160a01b03841660009081526002602052604090206005015460ff161561059c5760405162461bcd60e51b815260206004820152602b60248201527f43726f77644c696e656172446973747269627574696f6e3a2062656e6566696360448201527f696172792065786973747300000000000000000000000000000000000000000060648201526084016101cc565b60058260ff16106106095760405162461bcd60e51b815260206004820152603160248201527f43726f77644c696e656172446973747269627574696f6e3a2076657374696e67604482015270151e5c19481a5cc81b9bdd081d985b1a59607a1b60648201526084016101cc565b6000811161067f5760405162461bcd60e51b815260206004820152603a60248201527f43726f77644c696e656172446973747269627574696f6e3a20696e697469616c60448201527f206d7573742062652067726561746572207468616e207a65726f00000000000060648201526084016101cc565b6000600360008460ff16600481111561069a5761069a611cc7565b60048111156106ab576106ab611cc7565b60048111156106bc576106bc611cc7565b8152602001908152602001600020905080600001548160010154836106e19190611cf3565b11156107555760405162461bcd60e51b815260206004820152603760248201527f43726f77644c696e656172446973747269627574696f6e3a204e6f7420656e6f60448201527f75676820746f6b656e20746f206469737472696275746500000000000000000060648201526084016101cc565b60048054600180820183557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b909101805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038916908117909155600090815260026020526040812087815580830186905560ff87169381019390935560058301805460ff19169092179091555b600283015481101561089557600083600201828154811061080357610803611d0b565b906000526020600020906002020160405180604001604052908160008201548152602001600182015481525050905082600601604051806040016040528083600001518152602001610859846020015189611782565b9052815460018181018455600093845260209384902083516002909302019182559290910151910155508061088d81611d21565b9150506107e0565b50600282015460068201906108ac90600190611d3c565b815481106108bc576108bc611d0b565b90600052602060002090600202016001015481600301819055508282600101546108e69190611cf3565b60018301556040516001600160a01b03871681527f2e26b4969e053f8ebba0173dc26d414fc2ce80f756869e75e170409cfda15ef09060200160405180910390a1505050505050565b6005546001600160a01b03166109ad5760405162461bcd60e51b815260206004820152603060248201527f43726f77644c696e656172446973747269627574696f6e3a20746f6b656e206160448201527f646472657373206e6f742076616c69640000000000000000000000000000000060648201526084016101cc565b60006109b882610fd0565b905060008111610a305760405162461bcd60e51b815260206004820152603260248201527f43726f77644c696e656172446973747269627574696f6e3a2072656c6561736160448201527f626c6520616d6f756e74206973207a65726f000000000000000000000000000060648201526084016101cc565b6001600160a01b03821660009081526002602081905260409091200154610a58908290611cf3565b6001600160a01b03831660009081526002602081905260409091209081019190915560030154610a89908290611d3c565b6001600160a01b03838116600081815260026020526040908190206003019390935560055492517fa9059cbb00000000000000000000000000000000000000000000000000000000815260048101919091526024810184905291169063a9059cbb906044016020604051808303816000875af1158015610b0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b319190611d53565b50604080516001600160a01b0384168152602081018390527fc7798891864187665ac6dd119286e44ec13f014527aeeb2b8eb3fd413df93179910160405180910390a15050565b6001600160a01b03811660009081526002602052604081206005015460ff16610bff5760405162461bcd60e51b815260206004820152603360248201527f43726f77644c696e656172446973747269627574696f6e3a2062656e656669636044820152721a585c9e48191bd95cc81b9bdd08195e1a5cdd606a1b60648201526084016101cc565b506001600160a01b031660009081526002602052604090206001015490565b610c4260405180606001604052806000815260200160008152602001606081525090565b60058210610cac5760405162461bcd60e51b815260206004820152603160248201527f43726f77644c696e656172446973747269627574696f6e3a2076657374696e67604482015270151e5c19481a5cc81b9bdd081d985b1a59607a1b60648201526084016101cc565b60036000836004811115610cc257610cc2611cc7565b6004811115610cd357610cd3611cc7565b6004811115610ce457610ce4611cc7565b8152602001908152602001600020604051806060016040529081600082015481526020016001820154815260200160028201805480602002602001604051908101604052809291908181526020016000905b82821015610d7c57838290600052602060002090600202016040518060400160405290816000820154815260200160018201548152505081526020019060010190610d36565b505050915250909392505050565b6001546001600160a01b03163314610de65760405162461bcd60e51b81526004016101cc9060208082526004908201527f6365333100000000000000000000000000000000000000000000000000000000604082015260600190565b60018054600080546001600160a01b03831673ffffffffffffffffffffffffffffffffffffffff199182168117835592169092556040517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3565b610e866040518060e001604052806000815260200160008152602001600081526020016000815260200160008152602001600015158152602001606081525090565b6001600160a01b03821660009081526002602052604090206005015460ff16610f0d5760405162461bcd60e51b815260206004820152603360248201527f43726f77644c696e656172446973747269627574696f6e3a2062656e656669636044820152721a585c9e48191bd95cc81b9bdd08195e1a5cdd606a1b60648201526084016101cc565b6001600160a01b0382166000908152600260208181526040808420815160e0810183528154815260018201548185015293810154848301526003810154606085015260048101546080850152600581015460ff16151560a08501526006810180548351818602810186019094528084529495919460c08701949192909184018215610d7c57838290600052602060002090600202016040518060400160405290816000820154815260200160018201548152505081526020019060010190610d36565b6001600160a01b03811660009081526002602052604081206005015460ff166110575760405162461bcd60e51b815260206004820152603360248201527f43726f77644c696e656172446973747269627574696f6e3a2062656e656669636044820152721a585c9e48191bd95cc81b9bdd08195e1a5cdd606a1b60648201526084016101cc565b6001600160a01b0382166000908152600260208190526040909120015461107d836117a1565b6110879190611d3c565b92915050565b6001600160a01b03811660009081526002602052604081206005015460ff166111145760405162461bcd60e51b815260206004820152603360248201527f43726f77644c696e656172446973747269627574696f6e3a2062656e656669636044820152721a585c9e48191bd95cc81b9bdd08195e1a5cdd606a1b60648201526084016101cc565b506001600160a01b031660009081526002602052604090205490565b60606005821061119c5760405162461bcd60e51b815260206004820152603160248201527f43726f77644c696e656172446973747269627574696f6e3a2076657374696e67604482015270151e5c19481a5cc81b9bdd081d985b1a59607a1b60648201526084016101cc565b600454600090819067ffffffffffffffff8111156111bc576111bc611d75565b6040519080825280602002602001820160405280156111e5578160200160208202803683370190505b50905060005b6004548110156112885760006004828154811061120a5761120a611d0b565b60009182526020808320909101546001600160a01b03168083526002909152604090912060040154909150861415611275578083858151811061124f5761124f611d0b565b6001600160a01b03909216602092830291909101909101528361127181611d21565b9450505b508061128081611d21565b9150506111eb565b509392505050565b6001600160a01b03811660009081526002602052604081206005015460ff166113175760405162461bcd60e51b815260206004820152603360248201527f43726f77644c696e656172446973747269627574696f6e3a2062656e656669636044820152721a585c9e48191bd95cc81b9bdd08195e1a5cdd606a1b60648201526084016101cc565b506001600160a01b03166000908152600260208190526040909120015490565b6004818154811061134757600080fd5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b031633146113a45760405162461bcd60e51b81526004016101cc906020808252600490820152630636533360e41b604082015260600190565b6001600160a01b0381166114205760405162461bcd60e51b815260206004820152603760248201527f43726f77644c696e656172446973747269627574696f6e3a2074686520746f6b60448201527f656e2061646472657373206973206e6f742076616c696400000000000000000060648201526084016101cc565b6005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383161790556040513381527f0e5e8ebbaabfbdc8a125b2072d7f8a64c4cf8d2c7eb3d4a0f5f919544c26947f9060200160405180910390a150565b6001600160a01b03811660009081526002602052604081206005015460ff166115055760405162461bcd60e51b815260206004820152603360248201527f43726f77644c696e656172446973747269627574696f6e3a2062656e656669636044820152721a585c9e48191bd95cc81b9bdd08195e1a5cdd606a1b60648201526084016101cc565b611087826117a1565b6001600160a01b03811660009081526002602052604081206005015460ff166115955760405162461bcd60e51b815260206004820152603360248201527f43726f77644c696e656172446973747269627574696f6e3a2062656e656669636044820152721a585c9e48191bd95cc81b9bdd08195e1a5cdd606a1b60648201526084016101cc565b6001600160a01b0382166000908152600260208190526040909120908101546003909101546110879190611cf3565b6001600160a01b03811660009081526002602052604081206005015460ff1661164b5760405162461bcd60e51b815260206004820152603360248201527f43726f77644c696e656172446973747269627574696f6e3a2062656e656669636044820152721a585c9e48191bd95cc81b9bdd08195e1a5cdd606a1b60648201526084016101cc565b506001600160a01b031660009081526002602052604090206004015490565b6000546001600160a01b031633146116ad5760405162461bcd60e51b81526004016101cc906020808252600490820152630636533360e41b604082015260600190565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526002602052604081206005015460ff166117635760405162461bcd60e51b815260206004820152603360248201527f43726f77644c696e656172446973747269627574696f6e3a2062656e656669636044820152721a585c9e48191bd95cc81b9bdd08195e1a5cdd606a1b60648201526084016101cc565b506001600160a01b031660009081526002602052604090206003015490565b600060646117908385611d8b565b61179a9190611dc0565b9392505050565b6001600160a01b0381166000908152600260208190526040822090810154600382015483916117cf91611cf3565b82549091504210156117e5575060009392505050565b60006117f58360000154426118a6565b9050600181101561180c5750506001015492915050565b6000805b600685015481101561188b57600085600601828154811061183357611833611d0b565b9060005260206000209060020201604051806040016040529081600082015481526020016001820154815250509050806000015184116118785760200151915061188b565b508061188381611d21565b915050611810565b508281101561189a578061189c565b825b9695505050505050565b6000818311156118fa5760405162461bcd60e51b81526004016101cc9060208082526004908201527f4250303300000000000000000000000000000000000000000000000000000000604082015260600190565b60008061191261190d6201518087611dc0565b611972565b50909250905060008061192b61190d6201518088611dc0565b5090925090508261193d85600c611d8b565b8261194985600c611d8b565b6119539190611cf3565b61195d9190611d3c565b6119679190611d3c565b979650505050505050565b60008080838162253d8c6119898362010bd9611dd4565b6119939190611dd4565b9050600062023ab16119a6836004611e13565b6119b09190611e9a565b905060046119c18262023ab1611e13565b6119cc906003611dd4565b6119d69190611e9a565b6119e09083611ec8565b9150600062164b096119f3846001611dd4565b6119ff90610fa0611e13565b611a099190611e9a565b90506004611a19826105b5611e13565b611a239190611e9a565b611a2d9084611ec8565b611a3890601f611dd4565b9250600061098f611a4a856050611e13565b611a549190611e9a565b905060006050611a668361098f611e13565b611a709190611e9a565b611a7a9086611ec8565b9050611a87600b83611e9a565b9450611a9485600c611e13565b611a9f836002611dd4565b611aa99190611ec8565b91508483611ab8603187611ec8565b611ac3906064611e13565b611acd9190611dd4565b611ad79190611dd4565b9a919950975095505050505050565b80356001600160a01b0381168114611afd57600080fd5b919050565b60008060008060808587031215611b1857600080fd5b611b2185611ae6565b935060208501359250604085013560ff81168114611b3e57600080fd5b9396929550929360600135925050565b600060208284031215611b6057600080fd5b61179a82611ae6565b600060208284031215611b7b57600080fd5b5035919050565b600081518084526020808501945080840160005b83811015611bbd578151805188528301518388015260409096019590820190600101611b96565b509495945050505050565b60208152815160208201526020820151604082015260006040830151606080840152611bf76080840182611b82565b949350505050565b6020815281516020820152602082015160408201526040820151606082015260608201516080820152608082015160a082015260a0820151151560c0820152600060c083015160e080840152611bf7610100840182611b82565b6020808252825182820181905260009190848201906040850190845b81811015611c9a5783516001600160a01b031683529284019291840191600101611c75565b50909695505050505050565b600060208284031215611cb857600080fd5b81356005811061179a57600080fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008219821115611d0657611d06611cdd565b500190565b634e487b7160e01b600052603260045260246000fd5b6000600019821415611d3557611d35611cdd565b5060010190565b600082821015611d4e57611d4e611cdd565b500390565b600060208284031215611d6557600080fd5b8151801515811461179a57600080fd5b634e487b7160e01b600052604160045260246000fd5b6000816000190483118215151615611da557611da5611cdd565b500290565b634e487b7160e01b600052601260045260246000fd5b600082611dcf57611dcf611daa565b500490565b6000808212826001600160ff1b0303841381151615611df557611df5611cdd565b82600160ff1b038412811615611e0d57611e0d611cdd565b50500190565b60006001600160ff1b03600084136000841385830485118282161615611e3b57611e3b611cdd565b600160ff1b6000871286820588128184161615611e5a57611e5a611cdd565b60008712925087820587128484161615611e7657611e76611cdd565b87850587128184161615611e8c57611e8c611cdd565b505050929093029392505050565b600082611ea957611ea9611daa565b600160ff1b821460001984141615611ec357611ec3611cdd565b500590565b600080831283600160ff1b01831281151615611ee657611ee6611cdd565b836001600160ff1b03018313811615611f0157611f01611cdd565b5050039056fea26469706673582212200980fc808a979253e9e24d68b6e6ee9029d162ddfa163488e0a9129230629cde64736f6c634300080a0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101825760003560e01c80638da5cb5b116100d8578063dec8f52e1161008c578063ee85f5fe11610066578063ee85f5fe14610410578063f2fde38b14610423578063f8b2cb4f1461043657610182565b8063dec8f52e146103d9578063e30c3978146103ec578063ebb6dad8146103fd57610182565b8063b4d11f35116100bd578063b4d11f35146103a0578063b8d5df95146103b3578063c4d66de8146103c657610182565b80638da5cb5b146103535780639c51e9b61461036457610182565b80634e71e0c81161013a578063543fcf0311610114578063543fcf03146102f5578063606b162314610320578063783804d91461033357610182565b80634e71e0c8146102ba578063505a1b31146102c25780635421213e146102e257610182565b80631fe8430a1161016b5780631fe8430a146101fd5780632ef105511461022357806335c5c0141461029a57610182565b806309a5c10a146101d557806319165587146101ea575b60405162461bcd60e51b81526004016101cc9060208082526004908201527f6365303100000000000000000000000000000000000000000000000000000000604082015260600190565b60405180910390fd5b6101e86101e3366004611b02565b610449565b005b6101e86101f8366004611b4e565b61092f565b61021061020b366004611b4e565b610b78565b6040519081526020015b60405180910390f35b61026b610231366004611b4e565b6002602081905260009182526040909120805460018201549282015460038301546004840154600590940154929493919290919060ff1686565b6040805196875260208701959095529385019290925260608401526080830152151560a082015260c00161021a565b6102ad6102a8366004611b69565b610c1e565b60405161021a9190611bc8565b6101e8610d8a565b6102d56102d0366004611b4e565b610e44565b60405161021a9190611bff565b6102106102f0366004611b4e565b610fd0565b600554610308906001600160a01b031681565b6040516001600160a01b03909116815260200161021a565b61021061032e366004611b4e565b61108d565b610346610341366004611b69565b611130565b60405161021a9190611c59565b6000546001600160a01b0316610308565b61038b610372366004611ca6565b6003602052600090815260409020805460019091015482565b6040805192835260208301919091520161021a565b6102106103ae366004611b4e565b611290565b6103086103c1366004611b69565b611337565b6101e86103d4366004611b4e565b611361565b6102106103e7366004611b4e565b61147e565b6001546001600160a01b0316610308565b61021061040b366004611b4e565b61150e565b61021061041e366004611b4e565b6115c4565b6101e8610431366004611b4e565b61166a565b610210610444366004611b4e565b6116dc565b6000546001600160a01b0316331461048c5760405162461bcd60e51b81526004016101cc906020808252600490820152630636533360e41b604082015260600190565b6005546001600160a01b031661050a5760405162461bcd60e51b815260206004820152603760248201527f43726f77644c696e656172446973747269627574696f6e3a2074686520746f6b60448201527f656e2061646472657373206973206e6f742076616c696400000000000000000060648201526084016101cc565b6001600160a01b03841660009081526002602052604090206005015460ff161561059c5760405162461bcd60e51b815260206004820152602b60248201527f43726f77644c696e656172446973747269627574696f6e3a2062656e6566696360448201527f696172792065786973747300000000000000000000000000000000000000000060648201526084016101cc565b60058260ff16106106095760405162461bcd60e51b815260206004820152603160248201527f43726f77644c696e656172446973747269627574696f6e3a2076657374696e67604482015270151e5c19481a5cc81b9bdd081d985b1a59607a1b60648201526084016101cc565b6000811161067f5760405162461bcd60e51b815260206004820152603a60248201527f43726f77644c696e656172446973747269627574696f6e3a20696e697469616c60448201527f206d7573742062652067726561746572207468616e207a65726f00000000000060648201526084016101cc565b6000600360008460ff16600481111561069a5761069a611cc7565b60048111156106ab576106ab611cc7565b60048111156106bc576106bc611cc7565b8152602001908152602001600020905080600001548160010154836106e19190611cf3565b11156107555760405162461bcd60e51b815260206004820152603760248201527f43726f77644c696e656172446973747269627574696f6e3a204e6f7420656e6f60448201527f75676820746f6b656e20746f206469737472696275746500000000000000000060648201526084016101cc565b60048054600180820183557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b909101805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038916908117909155600090815260026020526040812087815580830186905560ff87169381019390935560058301805460ff19169092179091555b600283015481101561089557600083600201828154811061080357610803611d0b565b906000526020600020906002020160405180604001604052908160008201548152602001600182015481525050905082600601604051806040016040528083600001518152602001610859846020015189611782565b9052815460018181018455600093845260209384902083516002909302019182559290910151910155508061088d81611d21565b9150506107e0565b50600282015460068201906108ac90600190611d3c565b815481106108bc576108bc611d0b565b90600052602060002090600202016001015481600301819055508282600101546108e69190611cf3565b60018301556040516001600160a01b03871681527f2e26b4969e053f8ebba0173dc26d414fc2ce80f756869e75e170409cfda15ef09060200160405180910390a1505050505050565b6005546001600160a01b03166109ad5760405162461bcd60e51b815260206004820152603060248201527f43726f77644c696e656172446973747269627574696f6e3a20746f6b656e206160448201527f646472657373206e6f742076616c69640000000000000000000000000000000060648201526084016101cc565b60006109b882610fd0565b905060008111610a305760405162461bcd60e51b815260206004820152603260248201527f43726f77644c696e656172446973747269627574696f6e3a2072656c6561736160448201527f626c6520616d6f756e74206973207a65726f000000000000000000000000000060648201526084016101cc565b6001600160a01b03821660009081526002602081905260409091200154610a58908290611cf3565b6001600160a01b03831660009081526002602081905260409091209081019190915560030154610a89908290611d3c565b6001600160a01b03838116600081815260026020526040908190206003019390935560055492517fa9059cbb00000000000000000000000000000000000000000000000000000000815260048101919091526024810184905291169063a9059cbb906044016020604051808303816000875af1158015610b0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b319190611d53565b50604080516001600160a01b0384168152602081018390527fc7798891864187665ac6dd119286e44ec13f014527aeeb2b8eb3fd413df93179910160405180910390a15050565b6001600160a01b03811660009081526002602052604081206005015460ff16610bff5760405162461bcd60e51b815260206004820152603360248201527f43726f77644c696e656172446973747269627574696f6e3a2062656e656669636044820152721a585c9e48191bd95cc81b9bdd08195e1a5cdd606a1b60648201526084016101cc565b506001600160a01b031660009081526002602052604090206001015490565b610c4260405180606001604052806000815260200160008152602001606081525090565b60058210610cac5760405162461bcd60e51b815260206004820152603160248201527f43726f77644c696e656172446973747269627574696f6e3a2076657374696e67604482015270151e5c19481a5cc81b9bdd081d985b1a59607a1b60648201526084016101cc565b60036000836004811115610cc257610cc2611cc7565b6004811115610cd357610cd3611cc7565b6004811115610ce457610ce4611cc7565b8152602001908152602001600020604051806060016040529081600082015481526020016001820154815260200160028201805480602002602001604051908101604052809291908181526020016000905b82821015610d7c57838290600052602060002090600202016040518060400160405290816000820154815260200160018201548152505081526020019060010190610d36565b505050915250909392505050565b6001546001600160a01b03163314610de65760405162461bcd60e51b81526004016101cc9060208082526004908201527f6365333100000000000000000000000000000000000000000000000000000000604082015260600190565b60018054600080546001600160a01b03831673ffffffffffffffffffffffffffffffffffffffff199182168117835592169092556040517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3565b610e866040518060e001604052806000815260200160008152602001600081526020016000815260200160008152602001600015158152602001606081525090565b6001600160a01b03821660009081526002602052604090206005015460ff16610f0d5760405162461bcd60e51b815260206004820152603360248201527f43726f77644c696e656172446973747269627574696f6e3a2062656e656669636044820152721a585c9e48191bd95cc81b9bdd08195e1a5cdd606a1b60648201526084016101cc565b6001600160a01b0382166000908152600260208181526040808420815160e0810183528154815260018201548185015293810154848301526003810154606085015260048101546080850152600581015460ff16151560a08501526006810180548351818602810186019094528084529495919460c08701949192909184018215610d7c57838290600052602060002090600202016040518060400160405290816000820154815260200160018201548152505081526020019060010190610d36565b6001600160a01b03811660009081526002602052604081206005015460ff166110575760405162461bcd60e51b815260206004820152603360248201527f43726f77644c696e656172446973747269627574696f6e3a2062656e656669636044820152721a585c9e48191bd95cc81b9bdd08195e1a5cdd606a1b60648201526084016101cc565b6001600160a01b0382166000908152600260208190526040909120015461107d836117a1565b6110879190611d3c565b92915050565b6001600160a01b03811660009081526002602052604081206005015460ff166111145760405162461bcd60e51b815260206004820152603360248201527f43726f77644c696e656172446973747269627574696f6e3a2062656e656669636044820152721a585c9e48191bd95cc81b9bdd08195e1a5cdd606a1b60648201526084016101cc565b506001600160a01b031660009081526002602052604090205490565b60606005821061119c5760405162461bcd60e51b815260206004820152603160248201527f43726f77644c696e656172446973747269627574696f6e3a2076657374696e67604482015270151e5c19481a5cc81b9bdd081d985b1a59607a1b60648201526084016101cc565b600454600090819067ffffffffffffffff8111156111bc576111bc611d75565b6040519080825280602002602001820160405280156111e5578160200160208202803683370190505b50905060005b6004548110156112885760006004828154811061120a5761120a611d0b565b60009182526020808320909101546001600160a01b03168083526002909152604090912060040154909150861415611275578083858151811061124f5761124f611d0b565b6001600160a01b03909216602092830291909101909101528361127181611d21565b9450505b508061128081611d21565b9150506111eb565b509392505050565b6001600160a01b03811660009081526002602052604081206005015460ff166113175760405162461bcd60e51b815260206004820152603360248201527f43726f77644c696e656172446973747269627574696f6e3a2062656e656669636044820152721a585c9e48191bd95cc81b9bdd08195e1a5cdd606a1b60648201526084016101cc565b506001600160a01b03166000908152600260208190526040909120015490565b6004818154811061134757600080fd5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b031633146113a45760405162461bcd60e51b81526004016101cc906020808252600490820152630636533360e41b604082015260600190565b6001600160a01b0381166114205760405162461bcd60e51b815260206004820152603760248201527f43726f77644c696e656172446973747269627574696f6e3a2074686520746f6b60448201527f656e2061646472657373206973206e6f742076616c696400000000000000000060648201526084016101cc565b6005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383161790556040513381527f0e5e8ebbaabfbdc8a125b2072d7f8a64c4cf8d2c7eb3d4a0f5f919544c26947f9060200160405180910390a150565b6001600160a01b03811660009081526002602052604081206005015460ff166115055760405162461bcd60e51b815260206004820152603360248201527f43726f77644c696e656172446973747269627574696f6e3a2062656e656669636044820152721a585c9e48191bd95cc81b9bdd08195e1a5cdd606a1b60648201526084016101cc565b611087826117a1565b6001600160a01b03811660009081526002602052604081206005015460ff166115955760405162461bcd60e51b815260206004820152603360248201527f43726f77644c696e656172446973747269627574696f6e3a2062656e656669636044820152721a585c9e48191bd95cc81b9bdd08195e1a5cdd606a1b60648201526084016101cc565b6001600160a01b0382166000908152600260208190526040909120908101546003909101546110879190611cf3565b6001600160a01b03811660009081526002602052604081206005015460ff1661164b5760405162461bcd60e51b815260206004820152603360248201527f43726f77644c696e656172446973747269627574696f6e3a2062656e656669636044820152721a585c9e48191bd95cc81b9bdd08195e1a5cdd606a1b60648201526084016101cc565b506001600160a01b031660009081526002602052604090206004015490565b6000546001600160a01b031633146116ad5760405162461bcd60e51b81526004016101cc906020808252600490820152630636533360e41b604082015260600190565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b03811660009081526002602052604081206005015460ff166117635760405162461bcd60e51b815260206004820152603360248201527f43726f77644c696e656172446973747269627574696f6e3a2062656e656669636044820152721a585c9e48191bd95cc81b9bdd08195e1a5cdd606a1b60648201526084016101cc565b506001600160a01b031660009081526002602052604090206003015490565b600060646117908385611d8b565b61179a9190611dc0565b9392505050565b6001600160a01b0381166000908152600260208190526040822090810154600382015483916117cf91611cf3565b82549091504210156117e5575060009392505050565b60006117f58360000154426118a6565b9050600181101561180c5750506001015492915050565b6000805b600685015481101561188b57600085600601828154811061183357611833611d0b565b9060005260206000209060020201604051806040016040529081600082015481526020016001820154815250509050806000015184116118785760200151915061188b565b508061188381611d21565b915050611810565b508281101561189a578061189c565b825b9695505050505050565b6000818311156118fa5760405162461bcd60e51b81526004016101cc9060208082526004908201527f4250303300000000000000000000000000000000000000000000000000000000604082015260600190565b60008061191261190d6201518087611dc0565b611972565b50909250905060008061192b61190d6201518088611dc0565b5090925090508261193d85600c611d8b565b8261194985600c611d8b565b6119539190611cf3565b61195d9190611d3c565b6119679190611d3c565b979650505050505050565b60008080838162253d8c6119898362010bd9611dd4565b6119939190611dd4565b9050600062023ab16119a6836004611e13565b6119b09190611e9a565b905060046119c18262023ab1611e13565b6119cc906003611dd4565b6119d69190611e9a565b6119e09083611ec8565b9150600062164b096119f3846001611dd4565b6119ff90610fa0611e13565b611a099190611e9a565b90506004611a19826105b5611e13565b611a239190611e9a565b611a2d9084611ec8565b611a3890601f611dd4565b9250600061098f611a4a856050611e13565b611a549190611e9a565b905060006050611a668361098f611e13565b611a709190611e9a565b611a7a9086611ec8565b9050611a87600b83611e9a565b9450611a9485600c611e13565b611a9f836002611dd4565b611aa99190611ec8565b91508483611ab8603187611ec8565b611ac3906064611e13565b611acd9190611dd4565b611ad79190611dd4565b9a919950975095505050505050565b80356001600160a01b0381168114611afd57600080fd5b919050565b60008060008060808587031215611b1857600080fd5b611b2185611ae6565b935060208501359250604085013560ff81168114611b3e57600080fd5b9396929550929360600135925050565b600060208284031215611b6057600080fd5b61179a82611ae6565b600060208284031215611b7b57600080fd5b5035919050565b600081518084526020808501945080840160005b83811015611bbd578151805188528301518388015260409096019590820190600101611b96565b509495945050505050565b60208152815160208201526020820151604082015260006040830151606080840152611bf76080840182611b82565b949350505050565b6020815281516020820152602082015160408201526040820151606082015260608201516080820152608082015160a082015260a0820151151560c0820152600060c083015160e080840152611bf7610100840182611b82565b6020808252825182820181905260009190848201906040850190845b81811015611c9a5783516001600160a01b031683529284019291840191600101611c75565b50909695505050505050565b600060208284031215611cb857600080fd5b81356005811061179a57600080fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008219821115611d0657611d06611cdd565b500190565b634e487b7160e01b600052603260045260246000fd5b6000600019821415611d3557611d35611cdd565b5060010190565b600082821015611d4e57611d4e611cdd565b500390565b600060208284031215611d6557600080fd5b8151801515811461179a57600080fd5b634e487b7160e01b600052604160045260246000fd5b6000816000190483118215151615611da557611da5611cdd565b500290565b634e487b7160e01b600052601260045260246000fd5b600082611dcf57611dcf611daa565b500490565b6000808212826001600160ff1b0303841381151615611df557611df5611cdd565b82600160ff1b038412811615611e0d57611e0d611cdd565b50500190565b60006001600160ff1b03600084136000841385830485118282161615611e3b57611e3b611cdd565b600160ff1b6000871286820588128184161615611e5a57611e5a611cdd565b60008712925087820587128484161615611e7657611e76611cdd565b87850587128184161615611e8c57611e8c611cdd565b505050929093029392505050565b600082611ea957611ea9611daa565b600160ff1b821460001984141615611ec357611ec3611cdd565b500590565b600080831283600160ff1b01831281151615611ee657611ee6611cdd565b836001600160ff1b03018313811615611f0157611f01611cdd565b5050039056fea26469706673582212200980fc808a979253e9e24d68b6e6ee9029d162ddfa163488e0a9129230629cde64736f6c634300080a0033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.