More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 3,387 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Unlock Token | 19234509 | 138 days ago | IN | 0 ETH | 0.00286741 | ||||
Unlock Token | 18990502 | 172 days ago | IN | 0 ETH | 0.00160808 | ||||
Unlock Token | 18840662 | 193 days ago | IN | 0 ETH | 0.0049088 | ||||
Add Address Info... | 18840645 | 193 days ago | IN | 0 ETH | 0.0020738 | ||||
Unlock Token | 18840248 | 193 days ago | IN | 0 ETH | 0.00354667 | ||||
Unlock Token | 18838375 | 193 days ago | IN | 0 ETH | 0.00232821 | ||||
Unlock Token | 18838367 | 193 days ago | IN | 0 ETH | 0.00319493 | ||||
Unlock Token | 18837370 | 193 days ago | IN | 0 ETH | 0.00395572 | ||||
Unlock Token | 18837345 | 193 days ago | IN | 0 ETH | 0.00311977 | ||||
Unlock Token | 18837319 | 193 days ago | IN | 0 ETH | 0.00418822 | ||||
Unlock Token | 18837089 | 193 days ago | IN | 0 ETH | 0.0034682 | ||||
Unlock Token | 18836939 | 193 days ago | IN | 0 ETH | 0.00311977 | ||||
Unlock Token | 18836848 | 194 days ago | IN | 0 ETH | 0.00383807 | ||||
Unlock Token | 18836836 | 194 days ago | IN | 0 ETH | 0.00326653 | ||||
Unlock Token | 18836783 | 194 days ago | IN | 0 ETH | 0.00448616 | ||||
Unlock Token | 18836764 | 194 days ago | IN | 0 ETH | 0.00394586 | ||||
Unlock Token | 18836742 | 194 days ago | IN | 0 ETH | 0.00328548 | ||||
Unlock Token | 18836703 | 194 days ago | IN | 0 ETH | 0.00469566 | ||||
Unlock Token | 18836629 | 194 days ago | IN | 0 ETH | 0.00350621 | ||||
Unlock Token | 18836442 | 194 days ago | IN | 0 ETH | 0.00495316 | ||||
Unlock Token | 18836429 | 194 days ago | IN | 0 ETH | 0.00367985 | ||||
Unlock Token | 18836313 | 194 days ago | IN | 0 ETH | 0.00576696 | ||||
Unlock Token | 18836210 | 194 days ago | IN | 0 ETH | 0.00495929 | ||||
Unlock Token | 18836160 | 194 days ago | IN | 0 ETH | 0.00508675 | ||||
Unlock Token | 18836074 | 194 days ago | IN | 0 ETH | 0.0050126 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
VictoriaVRVesting
Compiler Version
v0.8.14+commit.80d49f37
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
/** *Submitted for verification at Etherscan.io on 2022-06-02 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.14; library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } 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 Returns the decimals places of the token. */ function decimals() external view returns (uint8); /** * @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); } contract VictoriaVRVesting { using SafeMath for uint256; IERC20 public token = IERC20(0x7d5121505149065b562C789A0145eD750e6E8cdD); address public owner; uint256[] public unlockTimestamps = [1669989600, 1672668000, 1675346400, 1677765600, 1680444000, 1683036000, 1685714400, 1688306400, 1690984800, 1693663200, 1696255200, 1698933600]; struct UnlockInfo { uint256 amount; uint256 unlockTotal; } mapping(address => UnlockInfo) public userUnlockInfos; event EventUnlockToken(address indexed _address, uint256 _amount); modifier onlyOwner() { require( msg.sender == owner, "You don't have permission." ); _; } constructor() public { owner = msg.sender; } function addAddressInfos(address[] calldata _addresses, uint256[] calldata _amounts) public onlyOwner { for (uint i; i < _addresses.length; i++) { addAddressInfo(_addresses[i], _amounts[i]); } } function addAddressInfosNoDecimals(address[] calldata _addresses, uint256[] calldata _amounts) public onlyOwner { for (uint i; i < _addresses.length; i++) { addAddressInfoNoDecimals(_addresses[i], _amounts[i]); } } function tokenDecimals(uint256 _amount) public view returns(uint256) { return _amount * (10 ** uint256(token.decimals())); } function tokenBalanceOf() public view returns(uint256) { return token.balanceOf(address(this)); } function addAddressInfoNoDecimals(address _address, uint256 _amount) public onlyOwner { addAddressInfo(_address, tokenDecimals(_amount)); } function addAddressInfo(address _address, uint256 _amount) public onlyOwner { UnlockInfo storage ui = userUnlockInfos[_address]; require( ui.amount == 0, "This wallet has been added to the unlock contract." ); ui.amount = _amount; } function deleteAddressInfo(address _address) public onlyOwner { UnlockInfo storage ui = userUnlockInfos[_address]; require( ui.amount > 0, "This wallet is not in the current unlocking plan." ); delete userUnlockInfos[_address]; } function blockTimestamp() public virtual view returns(uint256) { return block.timestamp; } function getAvailableMonth() public virtual view returns(uint256) { uint i = 0; while (i < unlockTimestamps.length && blockTimestamp() >= unlockTimestamps[i]) i++; return i; } function unlockToken() public { uint256 availableMonth = getAvailableMonth(); require( availableMonth > 0, "Unlocking time has not started yet." ); UnlockInfo storage ui = userUnlockInfos[msg.sender]; require( ui.amount > 0, "This wallet is not in the current unlocking plan." ); require( ui.amount > ui.unlockTotal, "The user has no available unlocking limit." ); uint256 availableAmount = availableMonth.mul(ui.amount.div(unlockTimestamps.length)); if(availableAmount > ui.amount) { availableAmount = ui.amount; } availableAmount = availableAmount.sub(ui.unlockTotal); require( availableAmount > 0, "The user has no available unlocking limit." ); ui.unlockTotal = ui.unlockTotal.add(availableAmount); _safeTransfer(msg.sender, availableAmount); } function _safeTransfer(address _address, uint256 _amount) private { token.transfer(_address, _amount); emit EventUnlockToken(_address, _amount); } }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"EventUnlockToken","type":"event"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"addAddressInfo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"addAddressInfoNoDecimals","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"name":"addAddressInfos","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"name":"addAddressInfosNoDecimals","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"blockTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"deleteAddressInfo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAvailableMonth","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"tokenDecimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"unlockTimestamps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unlockToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userUnlockInfos","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"unlockTotal","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
600080546001600160a01b031916737d5121505149065b562c789a0145ed750e6e8cdd17905561020060405263638a04e060809081526363b2e36060a0526363dbc1e060c052636400abe060e0526364298a6061010052636451176061012052636479f5e0610140526364a182e0610160526364ca6160610180526364f33fe06101a05263651acce06101c052636543ab606101e0526100a390600290600c6100c8565b503480156100b057600080fd5b50600180546001600160a01b03191633179055610130565b82805482825590600052602060002090810192821561010b579160200282015b8281111561010b578251829063ffffffff169055916020019190600101906100e8565b5061011792915061011b565b5090565b5b80821115610117576000815560010161011c565b610e8e8061013f6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063adb618321161008c578063e58a386b11610066578063e58a386b146101e0578063e5fb067d146101e8578063ed28a92e146101fb578063fc0c546a1461020e57600080fd5b8063adb61832146101bf578063d6bdbf78146101c5578063dd14ad41146101cd57600080fd5b80638da5cb5b116100c85780638da5cb5b146101325780639224747d1461015d5780639d1aaa0c14610170578063a0a129ea1461018357600080fd5b806318a24b5b146100ef57806385af4c4e146100f95780638609f4581461010c575b600080fd5b6100f7610221565b005b6100f7610107366004610a18565b610360565b61011f61011a366004610a42565b61039b565b6040519081526020015b60405180910390f35b600154610145906001600160a01b031681565b6040516001600160a01b039091168152602001610129565b61011f61016b366004610a42565b610431565b6100f761017e366004610a18565b610452565b6101aa610191366004610a5b565b6003602052600090815260409020805460019091015482565b60408051928352602083019190915201610129565b4261011f565b61011f610502565b6100f76101db366004610a5b565b610574565b61011f6105f5565b6100f76101f6366004610ac2565b610649565b6100f7610209366004610ac2565b6106df565b600054610145906001600160a01b031681565b600061022b6105f5565b90506000811161028e5760405162461bcd60e51b815260206004820152602360248201527f556e6c6f636b696e672074696d6520686173206e6f742073746172746564207960448201526232ba1760e91b60648201526084015b60405180910390fd5b33600090815260036020526040902080546102bb5760405162461bcd60e51b815260040161028590610b2e565b60018101548154116102df5760405162461bcd60e51b815260040161028590610b7f565b60025481546000916102fb916102f49161076e565b84906107b7565b825490915081111561030b575080545b600182015461031b908290610839565b90506000811161033d5760405162461bcd60e51b815260040161028590610b7f565b600182015461034c908261087b565b600183015561035b33826108da565b505050565b6001546001600160a01b0316331461038a5760405162461bcd60e51b815260040161028590610bc9565b6103978261017e8361039b565b5050565b60008060009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104139190610c00565b6104219060ff16600a610d1d565b61042b9083610d29565b92915050565b6002818154811061044157600080fd5b600091825260209091200154905081565b6001546001600160a01b0316331461047c5760405162461bcd60e51b815260040161028590610bc9565b6001600160a01b03821660009081526003602052604090208054156104fe5760405162461bcd60e51b815260206004820152603260248201527f546869732077616c6c657420686173206265656e20616464656420746f20746860448201527132903ab73637b1b59031b7b73a3930b1ba1760711b6064820152608401610285565b5550565b600080546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561054b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056f9190610d48565b905090565b6001546001600160a01b0316331461059e5760405162461bcd60e51b815260040161028590610bc9565b6001600160a01b038116600090815260036020526040902080546105d45760405162461bcd60e51b815260040161028590610b2e565b506001600160a01b0316600090815260036020526040812081815560010155565b6000805b6002548110801561062d57506002818154811061061857610618610d61565b906000526020600020015461062a4290565b10155b15610644578061063c81610d77565b9150506105f9565b919050565b6001546001600160a01b031633146106735760405162461bcd60e51b815260040161028590610bc9565b60005b838110156106d8576106c685858381811061069357610693610d61565b90506020020160208101906106a89190610a5b565b8484848181106106ba576106ba610d61565b90506020020135610452565b806106d081610d77565b915050610676565b5050505050565b6001546001600160a01b031633146107095760405162461bcd60e51b815260040161028590610bc9565b60005b838110156106d85761075c85858381811061072957610729610d61565b905060200201602081019061073e9190610a5b565b84848481811061075057610750610d61565b90506020020135610360565b8061076681610d77565b91505061070c565b60006107b083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610999565b9392505050565b6000826000036107c95750600061042b565b60006107d58385610d29565b9050826107e28583610d90565b146107b05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610285565b60006107b083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506109d0565b6000806108888385610db2565b9050838110156107b05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610285565b60005460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af115801561092d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109519190610dca565b50816001600160a01b03167f4b79452661fdab199677c3f8f7f9381f1744f449fe2af79c630ba582946d845b8260405161098d91815260200190565b60405180910390a25050565b600081836109ba5760405162461bcd60e51b81526004016102859190610dec565b5060006109c78486610d90565b95945050505050565b600081848411156109f45760405162461bcd60e51b81526004016102859190610dec565b5060006109c78486610e41565b80356001600160a01b038116811461064457600080fd5b60008060408385031215610a2b57600080fd5b610a3483610a01565b946020939093013593505050565b600060208284031215610a5457600080fd5b5035919050565b600060208284031215610a6d57600080fd5b6107b082610a01565b60008083601f840112610a8857600080fd5b50813567ffffffffffffffff811115610aa057600080fd5b6020830191508360208260051b8501011115610abb57600080fd5b9250929050565b60008060008060408587031215610ad857600080fd5b843567ffffffffffffffff80821115610af057600080fd5b610afc88838901610a76565b90965094506020870135915080821115610b1557600080fd5b50610b2287828801610a76565b95989497509550505050565b60208082526031908201527f546869732077616c6c6574206973206e6f7420696e207468652063757272656e6040820152703a103ab73637b1b5b4b73390383630b71760791b606082015260800190565b6020808252602a908201527f546865207573657220686173206e6f20617661696c61626c6520756e6c6f636b60408201526934b733903634b6b4ba1760b11b606082015260800190565b6020808252601a908201527f596f7520646f6e27742068617665207065726d697373696f6e2e000000000000604082015260600190565b600060208284031215610c1257600080fd5b815160ff811681146107b057600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b80851115610c74578160001904821115610c5a57610c5a610c23565b80851615610c6757918102915b93841c9390800290610c3e565b509250929050565b600082610c8b5750600161042b565b81610c985750600061042b565b8160018114610cae5760028114610cb857610cd4565b600191505061042b565b60ff841115610cc957610cc9610c23565b50506001821b61042b565b5060208310610133831016604e8410600b8410161715610cf7575081810a61042b565b610d018383610c39565b8060001904821115610d1557610d15610c23565b029392505050565b60006107b08383610c7c565b6000816000190483118215151615610d4357610d43610c23565b500290565b600060208284031215610d5a57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b600060018201610d8957610d89610c23565b5060010190565b600082610dad57634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115610dc557610dc5610c23565b500190565b600060208284031215610ddc57600080fd5b815180151581146107b057600080fd5b600060208083528351808285015260005b81811015610e1957858101830151858201604001528201610dfd565b81811115610e2b576000604083870101525b50601f01601f1916929092016040019392505050565b600082821015610e5357610e53610c23565b50039056fea2646970667358221220727e7bd44dd319d2b4c4343ab8e02667463fa502782a731e44b97eb4736bbd8d64736f6c634300080e0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063adb618321161008c578063e58a386b11610066578063e58a386b146101e0578063e5fb067d146101e8578063ed28a92e146101fb578063fc0c546a1461020e57600080fd5b8063adb61832146101bf578063d6bdbf78146101c5578063dd14ad41146101cd57600080fd5b80638da5cb5b116100c85780638da5cb5b146101325780639224747d1461015d5780639d1aaa0c14610170578063a0a129ea1461018357600080fd5b806318a24b5b146100ef57806385af4c4e146100f95780638609f4581461010c575b600080fd5b6100f7610221565b005b6100f7610107366004610a18565b610360565b61011f61011a366004610a42565b61039b565b6040519081526020015b60405180910390f35b600154610145906001600160a01b031681565b6040516001600160a01b039091168152602001610129565b61011f61016b366004610a42565b610431565b6100f761017e366004610a18565b610452565b6101aa610191366004610a5b565b6003602052600090815260409020805460019091015482565b60408051928352602083019190915201610129565b4261011f565b61011f610502565b6100f76101db366004610a5b565b610574565b61011f6105f5565b6100f76101f6366004610ac2565b610649565b6100f7610209366004610ac2565b6106df565b600054610145906001600160a01b031681565b600061022b6105f5565b90506000811161028e5760405162461bcd60e51b815260206004820152602360248201527f556e6c6f636b696e672074696d6520686173206e6f742073746172746564207960448201526232ba1760e91b60648201526084015b60405180910390fd5b33600090815260036020526040902080546102bb5760405162461bcd60e51b815260040161028590610b2e565b60018101548154116102df5760405162461bcd60e51b815260040161028590610b7f565b60025481546000916102fb916102f49161076e565b84906107b7565b825490915081111561030b575080545b600182015461031b908290610839565b90506000811161033d5760405162461bcd60e51b815260040161028590610b7f565b600182015461034c908261087b565b600183015561035b33826108da565b505050565b6001546001600160a01b0316331461038a5760405162461bcd60e51b815260040161028590610bc9565b6103978261017e8361039b565b5050565b60008060009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104139190610c00565b6104219060ff16600a610d1d565b61042b9083610d29565b92915050565b6002818154811061044157600080fd5b600091825260209091200154905081565b6001546001600160a01b0316331461047c5760405162461bcd60e51b815260040161028590610bc9565b6001600160a01b03821660009081526003602052604090208054156104fe5760405162461bcd60e51b815260206004820152603260248201527f546869732077616c6c657420686173206265656e20616464656420746f20746860448201527132903ab73637b1b59031b7b73a3930b1ba1760711b6064820152608401610285565b5550565b600080546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561054b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056f9190610d48565b905090565b6001546001600160a01b0316331461059e5760405162461bcd60e51b815260040161028590610bc9565b6001600160a01b038116600090815260036020526040902080546105d45760405162461bcd60e51b815260040161028590610b2e565b506001600160a01b0316600090815260036020526040812081815560010155565b6000805b6002548110801561062d57506002818154811061061857610618610d61565b906000526020600020015461062a4290565b10155b15610644578061063c81610d77565b9150506105f9565b919050565b6001546001600160a01b031633146106735760405162461bcd60e51b815260040161028590610bc9565b60005b838110156106d8576106c685858381811061069357610693610d61565b90506020020160208101906106a89190610a5b565b8484848181106106ba576106ba610d61565b90506020020135610452565b806106d081610d77565b915050610676565b5050505050565b6001546001600160a01b031633146107095760405162461bcd60e51b815260040161028590610bc9565b60005b838110156106d85761075c85858381811061072957610729610d61565b905060200201602081019061073e9190610a5b565b84848481811061075057610750610d61565b90506020020135610360565b8061076681610d77565b91505061070c565b60006107b083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610999565b9392505050565b6000826000036107c95750600061042b565b60006107d58385610d29565b9050826107e28583610d90565b146107b05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610285565b60006107b083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506109d0565b6000806108888385610db2565b9050838110156107b05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610285565b60005460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af115801561092d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109519190610dca565b50816001600160a01b03167f4b79452661fdab199677c3f8f7f9381f1744f449fe2af79c630ba582946d845b8260405161098d91815260200190565b60405180910390a25050565b600081836109ba5760405162461bcd60e51b81526004016102859190610dec565b5060006109c78486610d90565b95945050505050565b600081848411156109f45760405162461bcd60e51b81526004016102859190610dec565b5060006109c78486610e41565b80356001600160a01b038116811461064457600080fd5b60008060408385031215610a2b57600080fd5b610a3483610a01565b946020939093013593505050565b600060208284031215610a5457600080fd5b5035919050565b600060208284031215610a6d57600080fd5b6107b082610a01565b60008083601f840112610a8857600080fd5b50813567ffffffffffffffff811115610aa057600080fd5b6020830191508360208260051b8501011115610abb57600080fd5b9250929050565b60008060008060408587031215610ad857600080fd5b843567ffffffffffffffff80821115610af057600080fd5b610afc88838901610a76565b90965094506020870135915080821115610b1557600080fd5b50610b2287828801610a76565b95989497509550505050565b60208082526031908201527f546869732077616c6c6574206973206e6f7420696e207468652063757272656e6040820152703a103ab73637b1b5b4b73390383630b71760791b606082015260800190565b6020808252602a908201527f546865207573657220686173206e6f20617661696c61626c6520756e6c6f636b60408201526934b733903634b6b4ba1760b11b606082015260800190565b6020808252601a908201527f596f7520646f6e27742068617665207065726d697373696f6e2e000000000000604082015260600190565b600060208284031215610c1257600080fd5b815160ff811681146107b057600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b80851115610c74578160001904821115610c5a57610c5a610c23565b80851615610c6757918102915b93841c9390800290610c3e565b509250929050565b600082610c8b5750600161042b565b81610c985750600061042b565b8160018114610cae5760028114610cb857610cd4565b600191505061042b565b60ff841115610cc957610cc9610c23565b50506001821b61042b565b5060208310610133831016604e8410600b8410161715610cf7575081810a61042b565b610d018383610c39565b8060001904821115610d1557610d15610c23565b029392505050565b60006107b08383610c7c565b6000816000190483118215151615610d4357610d43610c23565b500290565b600060208284031215610d5a57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b600060018201610d8957610d89610c23565b5060010190565b600082610dad57634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115610dc557610dc5610c23565b500190565b600060208284031215610ddc57600080fd5b815180151581146107b057600080fd5b600060208083528351808285015260005b81811015610e1957858101830151858201604001528201610dfd565b81811115610e2b576000604083870101525b50601f01601f1916929092016040019392505050565b600082821015610e5357610e53610c23565b50039056fea2646970667358221220727e7bd44dd319d2b4c4343ab8e02667463fa502782a731e44b97eb4736bbd8d64736f6c634300080e0033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.