Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
0x60806040 | 11108551 | 1494 days ago | IN | 0 ETH | 0.04022018 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
sbEthFeePool
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity Multiple files format)
// SPDX-License-Identifier: MIT pragma solidity ^0.6.12; import "./IERC20.sol"; import "./SafeMath.sol"; import "./sbControllerInterface.sol"; import "./sbStrongValuePoolInterface.sol"; contract sbEthFeePool { using SafeMath for uint256; bool public initDone; address public admin; address public pendingAdmin; address payable public superAdmin; address payable public pendingSuperAdmin; sbControllerInterface public sbController; sbStrongValuePoolInterface public sbStrongValuePool; IERC20 public strongToken; uint256 public superAdminFeeNumerator; uint256 public superAdminFeeDenominator; uint256 public logsSumFeeAmount; mapping(address => uint256[]) public logsContractFeeDays; mapping(address => uint256[]) public logsContractFeeAmounts; address public constant burnAddress = address( 0x000000000000000000000000000000000000dEaD ); function init( address sbControllerAddress, address sbStrongValuePoolAddress, address strongTokenAddress, address adminAddress, address payable superAdminAddress ) public { require(!initDone, "init done"); sbController = sbControllerInterface(sbControllerAddress); sbStrongValuePool = sbStrongValuePoolInterface( sbStrongValuePoolAddress ); strongToken = IERC20(strongTokenAddress); admin = adminAddress; superAdmin = superAdminAddress; initDone = true; } function updateSuperAdminFee(uint256 numerator, uint256 denominator) public { require(msg.sender == superAdmin); require(denominator != 0, "invalid value"); superAdminFeeNumerator = numerator; superAdminFeeDenominator = denominator; } function deposit() public payable { uint256 currentDay = _getCurrentDay(); uint256 len = logsContractFeeDays[msg.sender].length; if (len == 0) { logsContractFeeDays[msg.sender].push(currentDay); logsContractFeeAmounts[msg.sender].push(msg.value); } else { uint256 lastIndex = logsContractFeeDays[msg.sender].length.sub(1); uint256 lastDay = logsContractFeeDays[msg.sender][lastIndex]; if (lastDay == currentDay) { logsContractFeeAmounts[msg .sender][lastIndex] = logsContractFeeAmounts[msg .sender][lastIndex] .add(msg.value); } else { logsContractFeeDays[msg.sender].push(currentDay); logsContractFeeAmounts[msg.sender].push(msg.value); } } uint256 toSuperAdmin = msg.value.mul(superAdminFeeNumerator).div( superAdminFeeDenominator ); logsSumFeeAmount = logsSumFeeAmount.add(msg.value); superAdmin.transfer(toSuperAdmin); } function setPendingAdmin(address newPendingAdmin) public { require(msg.sender == admin, "not admin"); pendingAdmin = newPendingAdmin; } function acceptAdmin() public { require( msg.sender == pendingAdmin && msg.sender != address(0), "not pendingAdmin" ); admin = pendingAdmin; pendingAdmin = address(0); } function setPendingSuperAdmin(address payable newPendingSuperAdmin) public { require(msg.sender == superAdmin, "not superAdmin"); pendingSuperAdmin = newPendingSuperAdmin; } function acceptSuperAdmin() public { require( msg.sender == pendingSuperAdmin && msg.sender != address(0), "not pendingSuperAdmin" ); superAdmin = pendingSuperAdmin; pendingSuperAdmin = address(0); } function getContractFeeData(address cntrct, uint256 dayNumber) public view returns (uint256, uint256) { uint256 day = dayNumber == 0 ? _getCurrentDay() : dayNumber; return _getContractFeeData(cntrct, day); } function _getContractFeeData(address cntrct, uint256 day) internal view returns (uint256, uint256) { uint256[] memory _Days = logsContractFeeDays[cntrct]; uint256[] memory _Amounts = logsContractFeeAmounts[cntrct]; return _get(_Days, _Amounts, day); } function _get( uint256[] memory _Days, uint256[] memory _Units, uint256 day ) internal pure returns (uint256, uint256) { uint256 len = _Days.length; if (len == 0) { return (day, 0); } if (day < _Days[0]) { return (day, 0); } uint256 lastIndex = len.sub(1); uint256 lastDay = _Days[lastIndex]; if (day == lastDay) { return (day, _Units[lastIndex]); } return _find(_Days, _Units, day); } function _find( uint256[] memory _Days, uint256[] memory _Units, uint256 day ) internal pure returns (uint256, uint256) { uint256 left = 0; uint256 right = _Days.length.sub(1); uint256 middle = right.add(left).div(2); while (_Days[middle] != day && left < right) { if (_Days[middle] > day) { right = middle.sub(1); } else if (_Days[middle] < day) { left = middle.add(1); } middle = right.add(left).div(2); } if (_Days[middle] != day) { return (day, 0); } else { return (day, _Units[middle]); } } function _getCurrentDay() internal view returns (uint256) { return block.timestamp.div(1 days).add(1); } }
// 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; /** * @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.12; interface sbControllerInterface { function requestRewards(address miner, uint256 amount) external; function isValuePoolAccepted(address valuePool) external view returns (bool); function getValuePoolRewards(address valuePool, uint256 day) external view returns (uint256); function getValuePoolMiningFee(address valuePool) external returns (uint256, uint256); function getValuePoolUnminingFee(address valuePool) external returns (uint256, uint256); function getValuePoolClaimingFee(address valuePool) external returns (uint256, uint256); function isServicePoolAccepted(address servicePool) external view returns (bool); function getServicePoolRewards(address servicePool, uint256 day) external view returns (uint256); function getServicePoolClaimingFee(address servicePool) external returns (uint256, uint256); function getServicePoolRequestFeeInWei(address servicePool) external returns (uint256); function getVoteForServicePoolsCount() external view returns (uint256); function getVoteForServicesCount() external view returns (uint256); function getVoteCastersRewards(uint256 dayNumber) external view returns (uint256); function getVoteReceiversRewards(uint256 dayNumber) external view returns (uint256); function getMinerMinMineDays() external view returns (uint256); function getServiceMinMineDays() external view returns (uint256); function getMinerMinMineAmountInWei() external view returns (uint256); function getServiceMinMineAmountInWei() external view returns (uint256); function getValuePoolVestingDays(address valuePool) external view returns (uint256); function getServicePoolVestingDays(address poservicePoolol) external view returns (uint256); function getVoteCasterVestingDays() external view returns (uint256); function getVoteReceiverVestingDays() external view returns (uint256); }
// SPDX-License-Identifier: MIT pragma solidity ^0.6.12; interface sbStrongValuePoolInterface { function mineFor(address miner, uint256 amount) external; function getMinerMineData(address miner, uint256 day) external view returns ( uint256, uint256, uint256 ); function getMineData(uint256 day) external view returns ( uint256, uint256, uint256 ); function serviceMinMined(address miner) external view returns (bool); function minerMinMined(address miner) external view returns (bool); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"name":"acceptAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptSuperAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"cntrct","type":"address"},{"internalType":"uint256","name":"dayNumber","type":"uint256"}],"name":"getContractFeeData","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sbControllerAddress","type":"address"},{"internalType":"address","name":"sbStrongValuePoolAddress","type":"address"},{"internalType":"address","name":"strongTokenAddress","type":"address"},{"internalType":"address","name":"adminAddress","type":"address"},{"internalType":"address payable","name":"superAdminAddress","type":"address"}],"name":"init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initDone","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"logsContractFeeAmounts","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"logsContractFeeDays","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"logsSumFeeAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingSuperAdmin","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sbController","outputs":[{"internalType":"contract sbControllerInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sbStrongValuePool","outputs":[{"internalType":"contract sbStrongValuePoolInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"setPendingAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newPendingSuperAdmin","type":"address"}],"name":"setPendingSuperAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"strongToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"superAdmin","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"superAdminFeeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"superAdminFeeNumerator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}],"name":"updateSuperAdminFee","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50610f93806100206000396000f3fe6080604052600436106101355760003560e01c8063965d61b9116100ab578063d39ca7de1161006f578063d39ca7de1461036c578063e58eaf5b1461039f578063e7f9cefd146103d8578063f851a440146103ed578063fa371f8714610402578063fed0a20e1461043257610135565b8063965d61b9146102d3578063a4bd4840146102e8578063b30a7d84146102fd578063c92194011461034f578063d0e30db01461036457610135565b8063359ef75b116100fd578063359ef75b146101c157806348028d63146102165780634dd18bf51461022b57806363de7db31461025e5780636dfd8e1a146102a957806370d5ae05146102be57610135565b80630d65d00a1461013a5780630e18b6811461016b578063267822471461018257806329575f6a146101975780632fa41caf146101ac575b600080fd5b34801561014657600080fd5b5061014f61045b565b604080516001600160a01b039092168252519081900360200190f35b34801561017757600080fd5b5061018061046a565b005b34801561018e57600080fd5b5061014f6104f9565b3480156101a357600080fd5b5061014f610508565b3480156101b857600080fd5b5061014f610517565b3480156101cd57600080fd5b50610180600480360360a08110156101e457600080fd5b506001600160a01b03813581169160208101358216916040820135811691606081013582169160809091013516610526565b34801561022257600080fd5b5061014f6105e2565b34801561023757600080fd5b506101806004803603602081101561024e57600080fd5b50356001600160a01b03166105f1565b34801561026a57600080fd5b506102976004803603604081101561028157600080fd5b506001600160a01b038135169060200135610663565b60408051918252519081900360200190f35b3480156102b557600080fd5b50610297610691565b3480156102ca57600080fd5b5061014f610697565b3480156102df57600080fd5b5061014f61069d565b3480156102f457600080fd5b506102976106ac565b34801561030957600080fd5b506103366004803603604081101561032057600080fd5b506001600160a01b0381351690602001356106b2565b6040805192835260208301919091528051918290030190f35b34801561035b57600080fd5b506102976106e2565b6101806106e8565b34801561037857600080fd5b506101806004803603602081101561038f57600080fd5b50356001600160a01b03166108b9565b3480156103ab57600080fd5b50610297600480360360408110156103c257600080fd5b506001600160a01b03813516906020013561092b565b3480156103e457600080fd5b50610180610944565b3480156103f957600080fd5b5061014f6109cd565b34801561040e57600080fd5b506101806004803603604081101561042557600080fd5b50803590602001356109e1565b34801561043e57600080fd5b50610447610a45565b604080519115158252519081900360200190f35b6004546001600160a01b031681565b6001546001600160a01b03163314801561048357503315155b6104c7576040805162461bcd60e51b815260206004820152601060248201526f3737ba103832b73234b733a0b236b4b760811b604482015290519081900360640190fd5b6001805460008054610100600160a81b0319166101006001600160a01b038416021790556001600160a01b0319169055565b6001546001600160a01b031681565b6002546001600160a01b031681565b6005546001600160a01b031681565b60005460ff161561056a576040805162461bcd60e51b8152602060048201526009602482015268696e697420646f6e6560b81b604482015290519081900360640190fd5b600480546001600160a01b03199081166001600160a01b03978816179091556005805482169587169590951790945560068054851693861693909317909255600080546002805490951693861693909317909355610100600160a81b031990911661010091909316029190911760ff19166001179055565b6003546001600160a01b031681565b60005461010090046001600160a01b03163314610641576040805162461bcd60e51b81526020600482015260096024820152683737ba1030b236b4b760b91b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600b602052816000526040600020818154811061067c57fe5b90600052602060002001600091509150505481565b60075481565b61dead81565b6006546001600160a01b031681565b60095481565b6000808083156106c257836106ca565b6106ca610a4e565b90506106d68582610a6d565b92509250509250929050565b60085481565b60006106f2610a4e565b336000908152600a60205260409020549091508061074c57336000818152600a6020908152604080832080546001818101835591855283852001879055938352600b82528220805493840181558252902034910155610843565b336000908152600a6020526040812054610767906001610b59565b336000908152600a60205260408120805492935090918390811061078757fe5b906000526020600020015490508381141561080257336000908152600b6020526040902080546107d6913491859081106107bd57fe5b9060005260206000200154610ba490919063ffffffff16565b336000908152600b602052604090208054849081106107f157fe5b600091825260209091200155610840565b336000818152600a6020908152604080832080546001818101835591855283852001899055938352600b825282208054938401815582529020349101555b50505b600061086660085461086060075434610bfe90919063ffffffff16565b90610c57565b6009549091506108769034610ba4565b6009556002546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156108b3573d6000803e3d6000fd5b50505050565b6002546001600160a01b03163314610909576040805162461bcd60e51b815260206004820152600e60248201526d3737ba1039bab832b920b236b4b760911b604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b600a602052816000526040600020818154811061067c57fe5b6003546001600160a01b03163314801561095d57503315155b6109a6576040805162461bcd60e51b81526020600482015260156024820152743737ba103832b73234b733a9bab832b920b236b4b760591b604482015290519081900360640190fd5b60038054600280546001600160a01b03199081166001600160a01b03841617909155169055565b60005461010090046001600160a01b031681565b6002546001600160a01b031633146109f857600080fd5b80610a3a576040805162461bcd60e51b815260206004820152600d60248201526c696e76616c69642076616c756560981b604482015290519081900360640190fd5b600791909155600855565b60005460ff1681565b6000610a686001610a624262015180610c57565b90610ba4565b905090565b6001600160a01b0382166000908152600a6020908152604080832080548251818502810185019093528083528493606093929190830182828015610ad057602002820191906000526020600020905b815481526020019060010190808311610abc575b5050506001600160a01b0388166000908152600b602090815260409182902080548351818402810184019094528084529596506060959294509250830182828015610b3a57602002820191906000526020600020905b815481526020019060010190808311610b26575b50505050509050610b4c828287610c99565b9350935050509250929050565b6000610b9b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d46565b90505b92915050565b600082820183811015610b9b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600082610c0d57506000610b9e565b82820282848281610c1a57fe5b0414610b9b5760405162461bcd60e51b8152600401808060200182810382526021815260200180610f3d6021913960400191505060405180910390fd5b6000610b9b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610ddd565b8251600090819080610cb2578360009250925050610d3e565b85600081518110610cbf57fe5b6020026020010151841015610cdb578360009250925050610d3e565b6000610ce8826001610b59565b90506000878281518110610cf857fe5b6020026020010151905080861415610d2b5785878381518110610d1757fe5b602002602001015194509450505050610d3e565b610d36888888610e42565b945094505050505b935093915050565b60008184841115610dd55760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610d9a578181015183820152602001610d82565b50505050905090810190601f168015610dc75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183610e2c5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610d9a578181015183820152602001610d82565b506000838581610e3857fe5b0495945050505050565b600080600080610e5d60018851610b5990919063ffffffff16565b90506000610e7060026108608486610ba4565b90505b85888281518110610e8057fe5b602002602001015114158015610e9557508183105b15610f065785888281518110610ea757fe5b60200260200101511115610ec757610ec0816001610b59565b9150610ef0565b85888281518110610ed457fe5b60200260200101511015610ef057610eed816001610ba4565b92505b610eff60026108608486610ba4565b9050610e73565b85888281518110610f1357fe5b602002602001015114610f2f5785600094509450505050610d3e565b85878281518110610d1757fefe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220e0205e42631887c49669d4df5e8e6a3bb272d6c632b5dec773de6145db0d76ec64736f6c634300060c0033
Deployed Bytecode
0x6080604052600436106101355760003560e01c8063965d61b9116100ab578063d39ca7de1161006f578063d39ca7de1461036c578063e58eaf5b1461039f578063e7f9cefd146103d8578063f851a440146103ed578063fa371f8714610402578063fed0a20e1461043257610135565b8063965d61b9146102d3578063a4bd4840146102e8578063b30a7d84146102fd578063c92194011461034f578063d0e30db01461036457610135565b8063359ef75b116100fd578063359ef75b146101c157806348028d63146102165780634dd18bf51461022b57806363de7db31461025e5780636dfd8e1a146102a957806370d5ae05146102be57610135565b80630d65d00a1461013a5780630e18b6811461016b578063267822471461018257806329575f6a146101975780632fa41caf146101ac575b600080fd5b34801561014657600080fd5b5061014f61045b565b604080516001600160a01b039092168252519081900360200190f35b34801561017757600080fd5b5061018061046a565b005b34801561018e57600080fd5b5061014f6104f9565b3480156101a357600080fd5b5061014f610508565b3480156101b857600080fd5b5061014f610517565b3480156101cd57600080fd5b50610180600480360360a08110156101e457600080fd5b506001600160a01b03813581169160208101358216916040820135811691606081013582169160809091013516610526565b34801561022257600080fd5b5061014f6105e2565b34801561023757600080fd5b506101806004803603602081101561024e57600080fd5b50356001600160a01b03166105f1565b34801561026a57600080fd5b506102976004803603604081101561028157600080fd5b506001600160a01b038135169060200135610663565b60408051918252519081900360200190f35b3480156102b557600080fd5b50610297610691565b3480156102ca57600080fd5b5061014f610697565b3480156102df57600080fd5b5061014f61069d565b3480156102f457600080fd5b506102976106ac565b34801561030957600080fd5b506103366004803603604081101561032057600080fd5b506001600160a01b0381351690602001356106b2565b6040805192835260208301919091528051918290030190f35b34801561035b57600080fd5b506102976106e2565b6101806106e8565b34801561037857600080fd5b506101806004803603602081101561038f57600080fd5b50356001600160a01b03166108b9565b3480156103ab57600080fd5b50610297600480360360408110156103c257600080fd5b506001600160a01b03813516906020013561092b565b3480156103e457600080fd5b50610180610944565b3480156103f957600080fd5b5061014f6109cd565b34801561040e57600080fd5b506101806004803603604081101561042557600080fd5b50803590602001356109e1565b34801561043e57600080fd5b50610447610a45565b604080519115158252519081900360200190f35b6004546001600160a01b031681565b6001546001600160a01b03163314801561048357503315155b6104c7576040805162461bcd60e51b815260206004820152601060248201526f3737ba103832b73234b733a0b236b4b760811b604482015290519081900360640190fd5b6001805460008054610100600160a81b0319166101006001600160a01b038416021790556001600160a01b0319169055565b6001546001600160a01b031681565b6002546001600160a01b031681565b6005546001600160a01b031681565b60005460ff161561056a576040805162461bcd60e51b8152602060048201526009602482015268696e697420646f6e6560b81b604482015290519081900360640190fd5b600480546001600160a01b03199081166001600160a01b03978816179091556005805482169587169590951790945560068054851693861693909317909255600080546002805490951693861693909317909355610100600160a81b031990911661010091909316029190911760ff19166001179055565b6003546001600160a01b031681565b60005461010090046001600160a01b03163314610641576040805162461bcd60e51b81526020600482015260096024820152683737ba1030b236b4b760b91b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600b602052816000526040600020818154811061067c57fe5b90600052602060002001600091509150505481565b60075481565b61dead81565b6006546001600160a01b031681565b60095481565b6000808083156106c257836106ca565b6106ca610a4e565b90506106d68582610a6d565b92509250509250929050565b60085481565b60006106f2610a4e565b336000908152600a60205260409020549091508061074c57336000818152600a6020908152604080832080546001818101835591855283852001879055938352600b82528220805493840181558252902034910155610843565b336000908152600a6020526040812054610767906001610b59565b336000908152600a60205260408120805492935090918390811061078757fe5b906000526020600020015490508381141561080257336000908152600b6020526040902080546107d6913491859081106107bd57fe5b9060005260206000200154610ba490919063ffffffff16565b336000908152600b602052604090208054849081106107f157fe5b600091825260209091200155610840565b336000818152600a6020908152604080832080546001818101835591855283852001899055938352600b825282208054938401815582529020349101555b50505b600061086660085461086060075434610bfe90919063ffffffff16565b90610c57565b6009549091506108769034610ba4565b6009556002546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156108b3573d6000803e3d6000fd5b50505050565b6002546001600160a01b03163314610909576040805162461bcd60e51b815260206004820152600e60248201526d3737ba1039bab832b920b236b4b760911b604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b600a602052816000526040600020818154811061067c57fe5b6003546001600160a01b03163314801561095d57503315155b6109a6576040805162461bcd60e51b81526020600482015260156024820152743737ba103832b73234b733a9bab832b920b236b4b760591b604482015290519081900360640190fd5b60038054600280546001600160a01b03199081166001600160a01b03841617909155169055565b60005461010090046001600160a01b031681565b6002546001600160a01b031633146109f857600080fd5b80610a3a576040805162461bcd60e51b815260206004820152600d60248201526c696e76616c69642076616c756560981b604482015290519081900360640190fd5b600791909155600855565b60005460ff1681565b6000610a686001610a624262015180610c57565b90610ba4565b905090565b6001600160a01b0382166000908152600a6020908152604080832080548251818502810185019093528083528493606093929190830182828015610ad057602002820191906000526020600020905b815481526020019060010190808311610abc575b5050506001600160a01b0388166000908152600b602090815260409182902080548351818402810184019094528084529596506060959294509250830182828015610b3a57602002820191906000526020600020905b815481526020019060010190808311610b26575b50505050509050610b4c828287610c99565b9350935050509250929050565b6000610b9b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d46565b90505b92915050565b600082820183811015610b9b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600082610c0d57506000610b9e565b82820282848281610c1a57fe5b0414610b9b5760405162461bcd60e51b8152600401808060200182810382526021815260200180610f3d6021913960400191505060405180910390fd5b6000610b9b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610ddd565b8251600090819080610cb2578360009250925050610d3e565b85600081518110610cbf57fe5b6020026020010151841015610cdb578360009250925050610d3e565b6000610ce8826001610b59565b90506000878281518110610cf857fe5b6020026020010151905080861415610d2b5785878381518110610d1757fe5b602002602001015194509450505050610d3e565b610d36888888610e42565b945094505050505b935093915050565b60008184841115610dd55760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610d9a578181015183820152602001610d82565b50505050905090810190601f168015610dc75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183610e2c5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610d9a578181015183820152602001610d82565b506000838581610e3857fe5b0495945050505050565b600080600080610e5d60018851610b5990919063ffffffff16565b90506000610e7060026108608486610ba4565b90505b85888281518110610e8057fe5b602002602001015114158015610e9557508183105b15610f065785888281518110610ea757fe5b60200260200101511115610ec757610ec0816001610b59565b9150610ef0565b85888281518110610ed457fe5b60200260200101511015610ef057610eed816001610ba4565b92505b610eff60026108608486610ba4565b9050610e73565b85888281518110610f1357fe5b602002602001015114610f2f5785600094509450505050610d3e565b85878281518110610d1757fefe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220e0205e42631887c49669d4df5e8e6a3bb272d6c632b5dec773de6145db0d76ec64736f6c634300060c0033
Deployed Bytecode Sourcemap
188:5506:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;419:41;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;419:41:3;;;;;;;;;;;;;;3063:229;;;;;;;;;;;;;:::i;:::-;;300:27;;;;;;;;;;;;;:::i;333:33::-;;;;;;;;;;;;;:::i;466:51::-;;;;;;;;;;;;;:::i;919:579::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;919:579:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;372:40::-;;;;;;;;;;;;;:::i;2902:155::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2902:155:3;-1:-1:-1;;;;;2902:155:3;;:::i;743:59::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;743:59:3;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;555:37;;;;;;;;;;;;;:::i;809:103::-;;;;;;;;;;;;;:::i;523:25::-;;;;;;;;;;;;;:::i;644:31::-;;;;;;;;;;;;;:::i;3762:255::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3762:255:3;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;598:39;;;;;;;;;;;;;:::i;1792:1104::-;;;:::i;3298:193::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3298:193:3;-1:-1:-1;;;;;3298:193:3;;:::i;681:56::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;681:56:3;;;;;;;;:::i;3497:259::-;;;;;;;;;;;;;:::i;274:20::-;;;;;;;;;;;;;:::i;1504:282::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1504:282:3;;;;;;;:::i;248:20::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;419:41;;;-1:-1:-1;;;;;419:41:3;;:::o;3063:229::-;3138:12;;-1:-1:-1;;;;;3138:12:3;3124:10;:26;:54;;;;-1:-1:-1;3154:10:3;:24;;3124:54;3103:117;;;;;-1:-1:-1;;;3103:117:3;;;;;;;;;;;;-1:-1:-1;;;3103:117:3;;;;;;;;;;;;;;;3238:12;;;;3230:20;;-1:-1:-1;;;;;;3230:20:3;3238:12;-1:-1:-1;;;;;3238:12:3;;3230:20;;;;-1:-1:-1;;;;;;3260:25:3;;;3063:229::o;300:27::-;;;-1:-1:-1;;;;;300:27:3;;:::o;333:33::-;;;-1:-1:-1;;;;;333:33:3;;:::o;466:51::-;;;-1:-1:-1;;;;;466:51:3;;:::o;919:579::-;1153:8;;;;1152:9;1144:31;;;;;-1:-1:-1;;;1144:31:3;;;;;;;;;;;;-1:-1:-1;;;1144:31:3;;;;;;;;;;;;;;;1185:12;:57;;-1:-1:-1;;;;;;1185:57:3;;;-1:-1:-1;;;;;1185:57:3;;;;;;;1252:17;:94;;;;;;;;;;;;;;1356:11;:40;;;;;;;;;;;;;;-1:-1:-1;1406:20:3;;1436:10;:30;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1406:20:3;;;1185:57;1406:20;;;;;;;;;-1:-1:-1;;1476:15:3;-1:-1:-1;1476:15:3;;;919:579::o;372:40::-;;;-1:-1:-1;;;;;372:40:3;;:::o;2902:155::-;2991:5;;;;;-1:-1:-1;;;;;2991:5:3;2977:10;:19;2969:41;;;;;-1:-1:-1;;;2969:41:3;;;;;;;;;;;;-1:-1:-1;;;2969:41:3;;;;;;;;;;;;;;;3020:12;:30;;-1:-1:-1;;;;;;3020:30:3;-1:-1:-1;;;;;3020:30:3;;;;;;;;;;2902:155::o;743:59::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;555:37::-;;;;:::o;809:103::-;864:42;809:103;:::o;523:25::-;;;-1:-1:-1;;;;;523:25:3;;:::o;644:31::-;;;;:::o;3762:255::-;3870:7;;;3916:14;;:45;;3952:9;3916:45;;;3933:16;:14;:16::i;:::-;3902:59;;3978:32;3998:6;4006:3;3978:19;:32::i;:::-;3971:39;;;;;3762:255;;;;;:::o;598:39::-;;;;:::o;1792:1104::-;1836:18;1857:16;:14;:16::i;:::-;1917:10;1883:11;1897:31;;;:19;:31;;;;;:38;1836:37;;-1:-1:-1;1949:8:3;1945:720;;1993:10;1973:31;;;;:19;:31;;;;;;;;:48;;;;;;;;;;;;;;;;;;2035:34;;;:22;:34;;;;:50;;;;;;;;;;;2075:9;2035:50;;;1945:720;;;2156:10;2116:17;2136:31;;;:19;:31;;;;;:38;:45;;2179:1;2136:42;:45::i;:::-;2233:10;2195:15;2213:31;;;:19;:31;;;;;:42;;2116:65;;-1:-1:-1;2195:15:3;;2116:65;;2213:42;;;;;;;;;;;;;;2195:60;;2284:10;2273:7;:21;2269:386;;;2406:31;2383:55;;;;:22;:55;;;;;:66;;:102;;2475:9;;2439;;2383:66;;;;;;;;;;;;;;:91;;:102;;;;:::i;:::-;2337:31;2314:55;;;;:22;:55;;;;;:66;;2370:9;;2314:66;;;;;;;;;;;;;;;:171;2269:386;;;2544:10;2524:31;;;;:19;:31;;;;;;;;:48;;;;;;;;;;;;;;;;;;2590:34;;;:22;:34;;;;:50;;;;;;;;;;;2630:9;2590:50;;;2269:386;1945:720;;;2674:20;2697:89;2752:24;;2697:37;2711:22;;2697:9;:13;;:37;;;;:::i;:::-;:41;;:89::i;:::-;2815:16;;2674:112;;-1:-1:-1;2815:31:3;;2836:9;2815:20;:31::i;:::-;2796:16;:50;2856:10;;:33;;-1:-1:-1;;;;;2856:10:3;;;;:33;;;;;2876:12;;2856:10;:33;:10;:33;2876:12;2856:10;:33;;;;;;;;;;;;;;;;;;;;;1792:1104;;;:::o;3298:193::-;3405:10;;-1:-1:-1;;;;;3405:10:3;3391;:24;3383:51;;;;;-1:-1:-1;;;3383:51:3;;;;;;;;;;;;-1:-1:-1;;;3383:51:3;;;;;;;;;;;;;;;3444:17;:40;;-1:-1:-1;;;;;;3444:40:3;-1:-1:-1;;;;;3444:40:3;;;;;;;;;;3298:193::o;681:56::-;;;;;;;;;;;;;;;;;;3497:259;3577:17;;-1:-1:-1;;;;;3577:17:3;3563:10;:31;:59;;;;-1:-1:-1;3598:10:3;:24;;3563:59;3542:127;;;;;-1:-1:-1;;;3542:127:3;;;;;;;;;;;;-1:-1:-1;;;3542:127:3;;;;;;;;;;;;;;;3692:17;;;3679:10;:30;;-1:-1:-1;;;;;;3679:30:3;;;-1:-1:-1;;;;;3692:17:3;;3679:30;;;;3719;;;3497:259::o;274:20::-;;;;;;-1:-1:-1;;;;;274:20:3;;:::o;1504:282::-;1624:10;;-1:-1:-1;;;;;1624:10:3;1610;:24;1602:33;;;;;;1653:16;1645:42;;;;;-1:-1:-1;;;1645:42:3;;;;;;;;;;;;-1:-1:-1;;;1645:42:3;;;;;;;;;;;;;;;1697:22;:34;;;;1741:24;:38;1504:282::o;248:20::-;;;;;;:::o;5576:116::-;5625:7;5651:34;5683:1;5651:27;:15;5671:6;5651:19;:27::i;:::-;:31;;:34::i;:::-;5644:41;;5576:116;:::o;4023:307::-;-1:-1:-1;;;;;4185:27:3;;4128:7;4185:27;;;:19;:27;;;;;;;;4160:52;;;;;;;;;;;;;;;;;4128:7;;4160:22;;:52;4185:27;4160:52;;;4185:27;4160:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;4250:30:3;;;;;;:22;:30;;;;;;;;;4222:58;;;;;;;;;;;;;;;;;4160:52;;-1:-1:-1;4222:25:3;;:58;;-1:-1:-1;4250:30:3;-1:-1:-1;4222:58:3;;4250:30;4222:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4297:26;4302:5;4309:8;4319:3;4297:4;:26::i;:::-;4290:33;;;;;;4023:307;;;;;:::o;1321:134:1:-;1379:7;1405:43;1409:1;1412;1405:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1398:50;;1321:134;;;;;:::o;874:176::-;932:7;963:5;;;986:6;;;;978:46;;;;;-1:-1:-1;;;978:46:1;;;;;;;;;;;;;;;;;;;;;;;;;;;2180:459;2238:7;2479:6;2475:45;;-1:-1:-1;2508:1:1;2501:8;;2475:45;2542:5;;;2546:1;2542;:5;:1;2565:5;;;;;:10;2557:56;;;;-1:-1:-1;;;2557:56:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3101:130;3159:7;3185:39;3189:1;3192;3185:39;;;;;;;;;;;;;;;;;:3;:39::i;4336:533:3:-;4507:12;;4465:7;;;;4533:8;4529:54;;4565:3;4570:1;4557:15;;;;;;;4529:54;4602:5;4608:1;4602:8;;;;;;;;;;;;;;4596:3;:14;4592:60;;;4634:3;4639:1;4626:15;;;;;;;4592:60;4661:17;4681:10;:3;4689:1;4681:7;:10::i;:::-;4661:30;;4701:15;4719:5;4725:9;4719:16;;;;;;;;;;;;;;4701:34;;4756:7;4749:3;:14;4745:76;;;4787:3;4792:6;4799:9;4792:17;;;;;;;;;;;;;;4779:31;;;;;;;;;4745:76;4837:25;4843:5;4850:6;4858:3;4837:5;:25::i;:::-;4830:32;;;;;;;4336:533;;;;;;;:::o;1746:187:1:-;1832:7;1867:12;1859:6;;;;1851:29;;;;-1:-1:-1;;;1851:29:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1902:5:1;;;1746:187::o;3713:272::-;3799:7;3833:12;3826:5;3818:28;;;;-1:-1:-1;;;3818:28:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3856:9;3872:1;3868;:5;;;;;;;3713:272;-1:-1:-1;;;;;3713:272:1:o;4875:695:3:-;5005:7;5014;5033:12;5059:13;5075:19;5092:1;5075:5;:12;:16;;:19;;;;:::i;:::-;5059:35;-1:-1:-1;5104:14:3;5121:22;5141:1;5121:15;5059:35;5131:4;5121:9;:15::i;:22::-;5104:39;;5153:277;5177:3;5160:5;5166:6;5160:13;;;;;;;;;;;;;;:20;;:36;;;;;5191:5;5184:4;:12;5160:36;5153:277;;;5232:3;5216:5;5222:6;5216:13;;;;;;;;;;;;;;:19;5212:163;;;5263:13;:6;5274:1;5263:10;:13::i;:::-;5255:21;;5212:163;;;5317:3;5301:5;5307:6;5301:13;;;;;;;;;;;;;;:19;5297:78;;;5347:13;:6;5358:1;5347:10;:13::i;:::-;5340:20;;5297:78;5397:22;5417:1;5397:15;:5;5407:4;5397:9;:15::i;:22::-;5388:31;;5153:277;;;5460:3;5443:5;5449:6;5443:13;;;;;;;;;;;;;;:20;5439:125;;5487:3;5492:1;5479:15;;;;;;;;;5439:125;5533:3;5538:6;5545;5538:14;;;;;;
Swarm Source
ipfs://e0205e42631887c49669d4df5e8e6a3bb272d6c632b5dec773de6145db0d76ec
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 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.