More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 46 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim Dividend | 15118153 | 1009 days ago | IN | 0 ETH | 0.00152663 | ||||
Claim Dividend | 14778548 | 1065 days ago | IN | 0 ETH | 0.00142981 | ||||
Claim Dividend | 14612094 | 1092 days ago | IN | 0 ETH | 0.00186894 | ||||
Claim Dividend | 14600890 | 1093 days ago | IN | 0 ETH | 0.00189826 | ||||
Claim Dividend | 14541064 | 1103 days ago | IN | 0 ETH | 0.00312997 | ||||
Claim Dividend | 14527054 | 1105 days ago | IN | 0 ETH | 0.00300318 | ||||
Claim Dividend | 14527045 | 1105 days ago | IN | 0 ETH | 0.00583642 | ||||
Claim Dividend | 14509513 | 1108 days ago | IN | 0 ETH | 0.00383642 | ||||
Claim Dividend | 14508396 | 1108 days ago | IN | 0 ETH | 0.00294705 | ||||
Claim Dividend | 14490039 | 1111 days ago | IN | 0 ETH | 0.00294273 | ||||
Claim Dividend | 14454307 | 1116 days ago | IN | 0 ETH | 0.0016568 | ||||
Claim Dividend | 14427358 | 1120 days ago | IN | 0 ETH | 0.0015023 | ||||
Claim Dividend | 14373236 | 1129 days ago | IN | 0 ETH | 0.00183579 | ||||
Claim Dividend | 14359799 | 1131 days ago | IN | 0 ETH | 0.00174556 | ||||
Claim Dividend | 14355099 | 1132 days ago | IN | 0 ETH | 0.00197524 | ||||
Claim Dividend | 14353908 | 1132 days ago | IN | 0 ETH | 0.00201619 | ||||
Claim Dividend | 14337274 | 1134 days ago | IN | 0 ETH | 0.00275098 | ||||
Claim Dividend | 14336548 | 1135 days ago | IN | 0 ETH | 0.00430515 | ||||
Claim Dividend | 14336437 | 1135 days ago | IN | 0 ETH | 0.00415653 | ||||
Claim Dividend | 14333917 | 1135 days ago | IN | 0 ETH | 0.0025116 | ||||
Claim Dividend | 14330737 | 1135 days ago | IN | 0 ETH | 0.00114003 | ||||
Claim Dividend | 14330734 | 1135 days ago | IN | 0 ETH | 0.00107397 | ||||
Claim Dividend | 14329955 | 1136 days ago | IN | 0 ETH | 0.00196148 | ||||
Claim Dividend | 14329955 | 1136 days ago | IN | 0 ETH | 0.00196148 | ||||
Claim Dividend | 14327160 | 1136 days ago | IN | 0 ETH | 0.00197995 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Method | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|---|
Transfer | 18910241 | 469 days ago | 0.02216681 ETH | ||||
Deposit | 18910241 | 469 days ago | 0 ETH | ||||
Transfer | 18910241 | 469 days ago | 7.54053542 ETH | ||||
Transfer | 15118153 | 1009 days ago | 0.00662975 ETH | ||||
- | 14844219 | 1055 days ago | 7.54053542 ETH | ||||
- | 14799602 | 1062 days ago | 7.54053542 ETH | ||||
- | 14799602 | 1062 days ago | 0.00748855 ETH | ||||
- | 14793767 | 1063 days ago | 7.54053542 ETH | ||||
- | 14793767 | 1063 days ago | 0.00363713 ETH | ||||
- | 14778548 | 1065 days ago | 0.01711872 ETH | ||||
- | 14663252 | 1084 days ago | 7.54053542 ETH | ||||
- | 14663252 | 1084 days ago | 0.07454156 ETH | ||||
- | 14662183 | 1084 days ago | 7.54053542 ETH | ||||
- | 14662183 | 1084 days ago | 0.01782714 ETH | ||||
- | 14618558 | 1091 days ago | 7.54053542 ETH | ||||
- | 14618558 | 1091 days ago | 0.00840868 ETH | ||||
- | 14612116 | 1092 days ago | 7.54053542 ETH | ||||
- | 14612116 | 1092 days ago | 0.00031587 ETH | ||||
- | 14612116 | 1092 days ago | 0.05543652 ETH | ||||
- | 14612116 | 1092 days ago | 7.52044655 ETH | ||||
- | 14612094 | 1092 days ago | 0.02370357 ETH | ||||
- | 14611309 | 1092 days ago | 7.52044655 ETH | ||||
- | 14611309 | 1092 days ago | 0.00242138 ETH | ||||
- | 14600925 | 1093 days ago | 7.52044655 ETH | ||||
- | 14600890 | 1093 days ago | 0.00873162 ETH |
Loading...
Loading
Contract Name:
DividendDistributor
Compiler Version
v0.6.12+commit.27d51765
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.6.0; import './IDividendDistributor.sol'; import './SafeMath.sol'; import './IERC20.sol'; import './ReentrancyGuard.sol'; contract DividendDistributor is IDividendDistributor, ReentrancyGuard { using SafeMath for uint256; event DividendDistributed(address shareholder, uint256 amount); address _token; struct Share { uint256 amount; uint256 totalExcluded; uint256 totalRealised; } address[] shareholders; mapping(address => uint256) shareholderIndexes; mapping(address => uint256) shareholderClaims; mapping(address => Share) public shares; uint256 public totalShares; uint256 public totalDividends; uint256 public totalDistributed; uint256 public dividendsPerShare; uint256 public dividendsPerShareAccuracyFactor = 10**36; uint256 public minPeriod = 1 hours; uint256 public minDistribution = 1 * (10**18); uint256 currentIndex; modifier onlyToken() { require(msg.sender == _token); _; } constructor() public { _token = msg.sender; } function setDistributionCriteria( uint256 _minPeriod, uint256 _minDistribution ) external override onlyToken { minPeriod = _minPeriod; minDistribution = _minDistribution; } function setShare(address shareholder, uint256 amount) external override onlyToken { if (shares[shareholder].amount > 0) { distributeDividend(payable(shareholder)); } if (amount > 0 && shares[shareholder].amount == 0) { addShareholder(shareholder); } else if (amount == 0 && shares[shareholder].amount > 0) { removeShareholder(shareholder); } totalShares = totalShares.sub(shares[shareholder].amount).add(amount); shares[shareholder].amount = amount; shares[shareholder].totalExcluded = getCumulativeDividends( shares[shareholder].amount ); } function deposit() external payable override onlyToken { totalDividends = totalDividends.add(msg.value); dividendsPerShare = dividendsPerShare.add( dividendsPerShareAccuracyFactor.mul(msg.value).div(totalShares) ); } function distributeDividend(address payable shareholder) internal nonReentrant { if (shares[shareholder].amount == 0) { return; } uint256 amount = getUnpaidEarnings(shareholder); if (amount > 0) { totalDistributed = totalDistributed.add(amount); shareholder.transfer(amount); shareholderClaims[shareholder] = block.timestamp; shares[shareholder].totalRealised = shares[shareholder] .totalRealised .add(amount); shares[shareholder].totalExcluded = getCumulativeDividends( shares[shareholder].amount ); emit DividendDistributed(shareholder, amount); } } function claimDividend() external { distributeDividend(msg.sender); } function getUnpaidEarnings(address shareholder) public view returns (uint256) { if (shares[shareholder].amount == 0) { return 0; } uint256 shareholderTotalDividends = getCumulativeDividends( shares[shareholder].amount ); uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded; if (shareholderTotalDividends <= shareholderTotalExcluded) { return 0; } return shareholderTotalDividends.sub(shareholderTotalExcluded); } function getCumulativeDividends(uint256 share) internal view returns (uint256) { return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor); } function addShareholder(address shareholder) internal { shareholderIndexes[shareholder] = shareholders.length; shareholders.push(shareholder); } function getShareholders() external view returns (address[] memory) { return shareholders; } function getShareholderAmount(address shareholder) external view returns (uint256) { return shares[shareholder].amount; } function removeShareholder(address shareholder) internal { shareholders[shareholderIndexes[shareholder]] = shareholders[ shareholders.length - 1 ]; shareholderIndexes[ shareholders[shareholders.length - 1] ] = shareholderIndexes[shareholder]; shareholders.pop(); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.6.0; interface IDividendDistributor { function setDistributionCriteria( uint256 _minPeriod, uint256 _minDistribution ) external; function setShare(address shareholder, uint256 amount) external; function deposit() external payable; }
// SPDX-License-Identifier: MIT pragma solidity ^0.6.0; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ 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) { 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; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.6.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.6.0; abstract contract ReentrancyGuard { uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() public { _status = _NOT_ENTERED; } modifier nonReentrant() { require(_status != _ENTERED, 'ReentrancyGuard: reentrant call'); _status = _ENTERED; _; _status = _NOT_ENTERED; } modifier isHuman() { require(tx.origin == msg.sender, 'sorry humans only'); _; } }
{ "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
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"shareholder","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"DividendDistributed","type":"event"},{"inputs":[],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"dividendsPerShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dividendsPerShareAccuracyFactor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getShareholderAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getShareholders","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getUnpaidEarnings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minDistribution","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minPeriod","type":"uint256"},{"internalType":"uint256","name":"_minDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setShare","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"shares","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"totalExcluded","type":"uint256"},{"internalType":"uint256","name":"totalRealised","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDistributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040526ec097ce7bc90715b34b9f1000000000600a55610e10600b55670de0b6b3a7640000600c5534801561003557600080fd5b506001600081905580546001600160a01b03191633179055610bc88061005c6000396000f3fe6080604052600436106100e85760003560e01c8063997664d71161008a578063e2d2e21911610059578063e2d2e219146102e2578063efca2eed146102f7578063f0fc6bca1461030c578063ffd49c8414610321576100e8565b8063997664d714610241578063abd3775314610256578063ce7c2ac214610289578063d0e30db0146102da576100e8565b80632d48e896116100c65780632d48e896146101825780633a98ef39146101b257806341ca641e146101c75780634fab0ae81461022c576100e8565b806311ce023d146100ed57806314b6ca961461011457806328fd31981461014f575b600080fd5b3480156100f957600080fd5b50610102610336565b60408051918252519081900360200190f35b34801561012057600080fd5b5061014d6004803603604081101561013757600080fd5b506001600160a01b03813516906020013561033c565b005b34801561015b57600080fd5b506101026004803603602081101561017257600080fd5b50356001600160a01b0316610461565b34801561018e57600080fd5b5061014d600480360360408110156101a557600080fd5b50803590602001356104ed565b3480156101be57600080fd5b5061010261050f565b3480156101d357600080fd5b506101dc610515565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610218578181015183820152602001610200565b505050509050019250505060405180910390f35b34801561023857600080fd5b50610102610577565b34801561024d57600080fd5b5061010261057d565b34801561026257600080fd5b506101026004803603602081101561027957600080fd5b50356001600160a01b0316610583565b34801561029557600080fd5b506102bc600480360360208110156102ac57600080fd5b50356001600160a01b031661059e565b60408051938452602084019290925282820152519081900360600190f35b61014d6105bf565b3480156102ee57600080fd5b50610102610612565b34801561030357600080fd5b50610102610618565b34801561031857600080fd5b5061014d61061e565b34801561032d57600080fd5b50610102610629565b600a5481565b6001546001600160a01b0316331461035357600080fd5b6001600160a01b0382166000908152600560205260409020541561037a5761037a8261062f565b6000811180156103a057506001600160a01b038216600090815260056020526040902054155b156103b3576103ae826107ca565b6103e6565b801580156103d857506001600160a01b03821660009081526005602052604090205415155b156103e6576103e68261082b565b6001600160a01b03821660009081526005602052604090205460065461041791839161041191610918565b90610963565b6006556001600160a01b038216600090815260056020526040902081905561043e816109bd565b6001600160a01b0390921660009081526005602052604090206001019190915550565b6001600160a01b038116600090815260056020526040812054610486575060006104e8565b6001600160a01b0382166000908152600560205260408120546104a8906109bd565b6001600160a01b0384166000908152600560205260409020600101549091508082116104d9576000925050506104e8565b6104e38282610918565b925050505b919050565b6001546001600160a01b0316331461050457600080fd5b600b91909155600c55565b60065481565b6060600280548060200260200160405190810160405280929190818152602001828054801561056d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161054f575b5050505050905090565b600c5481565b60075481565b6001600160a01b031660009081526005602052604090205490565b60056020526000908152604090208054600182015460029092015490919083565b6001546001600160a01b031633146105d657600080fd5b6007546105e39034610963565b600755600654600a5461060d91610604916105fe90346109da565b90610a33565b60095490610963565b600955565b60095481565b60085481565b6106273361062f565b565b600b5481565b60026000541415610687576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600260009081556001600160a01b0382168152600560205260409020546106ad576107c2565b60006106b882610461565b905080156107c0576008546106cd9082610963565b6008556040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610706573d6000803e3d6000fd5b506001600160a01b0382166000908152600460209081526040808320429055600590915290206002015461073a9082610963565b6001600160a01b0383166000908152600560205260409020600281019190915554610764906109bd565b6001600160a01b03831660008181526005602090815260409182902060010193909355805191825291810183905281517f84fcdd4a7f507f2206dd50958e7473061bf941f91791c6ffaf74033a07c82f12929181900390910190a15b505b506001600055565b600280546001600160a01b039092166000818152600360205260408120849055600184018355919091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180546001600160a01b0319169091179055565b60028054600019810190811061083d57fe5b60009182526020808320909101546001600160a01b038481168452600390925260409092205460028054929093169291811061087557fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905591831681526003918290526040812054600280549193929160001981019081106108c357fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205560028054806108f357fe5b600082815260209020810160001990810180546001600160a01b031916905501905550565b600061095a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610a75565b90505b92915050565b60008282018381101561095a576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600061095d600a546105fe600954856109da90919063ffffffff16565b6000826109e95750600061095d565b828202828482816109f657fe5b041461095a5760405162461bcd60e51b8152600401808060200182810382526021815260200180610b726021913960400191505060405180910390fd5b600061095a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610b0c565b60008184841115610b045760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ac9578181015183820152602001610ab1565b50505050905090810190601f168015610af65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183610b5b5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610ac9578181015183820152602001610ab1565b506000838581610b6757fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122098cdaff230485efc5b98fcc147b04ab1a61ca8743a89f106e482b0ad51a90f9464736f6c634300060c0033
Deployed Bytecode
0x6080604052600436106100e85760003560e01c8063997664d71161008a578063e2d2e21911610059578063e2d2e219146102e2578063efca2eed146102f7578063f0fc6bca1461030c578063ffd49c8414610321576100e8565b8063997664d714610241578063abd3775314610256578063ce7c2ac214610289578063d0e30db0146102da576100e8565b80632d48e896116100c65780632d48e896146101825780633a98ef39146101b257806341ca641e146101c75780634fab0ae81461022c576100e8565b806311ce023d146100ed57806314b6ca961461011457806328fd31981461014f575b600080fd5b3480156100f957600080fd5b50610102610336565b60408051918252519081900360200190f35b34801561012057600080fd5b5061014d6004803603604081101561013757600080fd5b506001600160a01b03813516906020013561033c565b005b34801561015b57600080fd5b506101026004803603602081101561017257600080fd5b50356001600160a01b0316610461565b34801561018e57600080fd5b5061014d600480360360408110156101a557600080fd5b50803590602001356104ed565b3480156101be57600080fd5b5061010261050f565b3480156101d357600080fd5b506101dc610515565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610218578181015183820152602001610200565b505050509050019250505060405180910390f35b34801561023857600080fd5b50610102610577565b34801561024d57600080fd5b5061010261057d565b34801561026257600080fd5b506101026004803603602081101561027957600080fd5b50356001600160a01b0316610583565b34801561029557600080fd5b506102bc600480360360208110156102ac57600080fd5b50356001600160a01b031661059e565b60408051938452602084019290925282820152519081900360600190f35b61014d6105bf565b3480156102ee57600080fd5b50610102610612565b34801561030357600080fd5b50610102610618565b34801561031857600080fd5b5061014d61061e565b34801561032d57600080fd5b50610102610629565b600a5481565b6001546001600160a01b0316331461035357600080fd5b6001600160a01b0382166000908152600560205260409020541561037a5761037a8261062f565b6000811180156103a057506001600160a01b038216600090815260056020526040902054155b156103b3576103ae826107ca565b6103e6565b801580156103d857506001600160a01b03821660009081526005602052604090205415155b156103e6576103e68261082b565b6001600160a01b03821660009081526005602052604090205460065461041791839161041191610918565b90610963565b6006556001600160a01b038216600090815260056020526040902081905561043e816109bd565b6001600160a01b0390921660009081526005602052604090206001019190915550565b6001600160a01b038116600090815260056020526040812054610486575060006104e8565b6001600160a01b0382166000908152600560205260408120546104a8906109bd565b6001600160a01b0384166000908152600560205260409020600101549091508082116104d9576000925050506104e8565b6104e38282610918565b925050505b919050565b6001546001600160a01b0316331461050457600080fd5b600b91909155600c55565b60065481565b6060600280548060200260200160405190810160405280929190818152602001828054801561056d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161054f575b5050505050905090565b600c5481565b60075481565b6001600160a01b031660009081526005602052604090205490565b60056020526000908152604090208054600182015460029092015490919083565b6001546001600160a01b031633146105d657600080fd5b6007546105e39034610963565b600755600654600a5461060d91610604916105fe90346109da565b90610a33565b60095490610963565b600955565b60095481565b60085481565b6106273361062f565b565b600b5481565b60026000541415610687576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600260009081556001600160a01b0382168152600560205260409020546106ad576107c2565b60006106b882610461565b905080156107c0576008546106cd9082610963565b6008556040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610706573d6000803e3d6000fd5b506001600160a01b0382166000908152600460209081526040808320429055600590915290206002015461073a9082610963565b6001600160a01b0383166000908152600560205260409020600281019190915554610764906109bd565b6001600160a01b03831660008181526005602090815260409182902060010193909355805191825291810183905281517f84fcdd4a7f507f2206dd50958e7473061bf941f91791c6ffaf74033a07c82f12929181900390910190a15b505b506001600055565b600280546001600160a01b039092166000818152600360205260408120849055600184018355919091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180546001600160a01b0319169091179055565b60028054600019810190811061083d57fe5b60009182526020808320909101546001600160a01b038481168452600390925260409092205460028054929093169291811061087557fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905591831681526003918290526040812054600280549193929160001981019081106108c357fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205560028054806108f357fe5b600082815260209020810160001990810180546001600160a01b031916905501905550565b600061095a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610a75565b90505b92915050565b60008282018381101561095a576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600061095d600a546105fe600954856109da90919063ffffffff16565b6000826109e95750600061095d565b828202828482816109f657fe5b041461095a5760405162461bcd60e51b8152600401808060200182810382526021815260200180610b726021913960400191505060405180910390fd5b600061095a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610b0c565b60008184841115610b045760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ac9578181015183820152602001610ab1565b50505050905090810190601f168015610af65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183610b5b5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610ac9578181015183820152602001610ab1565b506000838581610b6757fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122098cdaff230485efc5b98fcc147b04ab1a61ca8743a89f106e482b0ad51a90f9464736f6c634300060c0033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $1,626.75 | 13.3454 | $21,709.63 |
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.