More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 149 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim | 13099147 | 1111 days ago | IN | 0 ETH | 0.0060224 | ||||
Claim | 12174415 | 1254 days ago | IN | 0 ETH | 0.00585951 | ||||
Claim | 11641741 | 1336 days ago | IN | 0 ETH | 0.00553697 | ||||
Claim | 11438288 | 1368 days ago | IN | 0 ETH | 0.00108051 | ||||
Claim | 11406742 | 1372 days ago | IN | 0 ETH | 0.00322542 | ||||
Claim | 11363902 | 1379 days ago | IN | 0 ETH | 0.00322542 | ||||
Claim | 11349887 | 1381 days ago | IN | 0 ETH | 0.00066121 | ||||
Claim | 11342958 | 1382 days ago | IN | 0 ETH | 0.00107514 | ||||
Claim | 11339021 | 1383 days ago | IN | 0 ETH | 0.00145143 | ||||
Claim | 11337279 | 1383 days ago | IN | 0 ETH | 0.00107514 | ||||
Claim | 11325607 | 1385 days ago | IN | 0 ETH | 0.00161271 | ||||
Claim | 11322499 | 1385 days ago | IN | 0 ETH | 0.00344937 | ||||
Claim | 11311348 | 1387 days ago | IN | 0 ETH | 0.00365547 | ||||
Claim | 11310012 | 1387 days ago | IN | 0 ETH | 0.00182157 | ||||
Claim | 11308866 | 1388 days ago | IN | 0 ETH | 0.00177398 | ||||
Claim | 11302746 | 1388 days ago | IN | 0 ETH | 0.00430056 | ||||
Claim | 11302746 | 1388 days ago | IN | 0 ETH | 0.00310056 | ||||
Claim | 11302594 | 1388 days ago | IN | 0 ETH | 0.00375942 | ||||
Claim | 11302593 | 1388 days ago | IN | 0 ETH | 0.00521442 | ||||
Claim | 11301366 | 1389 days ago | IN | 0 ETH | 0.00161271 | ||||
Claim | 11301288 | 1389 days ago | IN | 0 ETH | 0.00279536 | ||||
Claim | 11301123 | 1389 days ago | IN | 0 ETH | 0.00193525 | ||||
Claim | 11300436 | 1389 days ago | IN | 0 ETH | 0.00124178 | ||||
Claim | 11299909 | 1389 days ago | IN | 0 ETH | 0.00136037 | ||||
Claim | 11299901 | 1389 days ago | IN | 0 ETH | 0.00172022 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
MultiStablesClaimReturn
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-11-19 */ // SPDX-License-Identifier: MIT pragma solidity 0.6.12; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } /** * @dev 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; } } /** * @dev Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // This method relies in extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; // solhint-disable-next-line no-inline-assembly assembly { size := extcodesize(account) } return size > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain`call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } /** * @title SafeERC20 * @dev Wrappers around ERC20 operations that throw on failure (when the token * contract returns false). Tokens that return no value (and instead revert or * throw on failure) are also supported, non-reverting calls are assumed to be * successful. * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, * which allows you to call the safe operations as `token.safeTransfer(...)`, etc. */ library SafeERC20 { using SafeMath for uint256; using Address for address; function safeTransfer(IERC20 token, address to, uint256 value) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); } /** * @dev Deprecated. This function has issues similar to the ones found in * {IERC20-approve}, and its usage is discouraged. * * Whenever possible, use {safeIncreaseAllowance} and * {safeDecreaseAllowance} instead. */ function safeApprove(IERC20 token, address spender, uint256 value) internal { // safeApprove should only be called when setting an initial allowance, // or when resetting it to zero. To increase and decrease it, use // 'safeIncreaseAllowance' and 'safeDecreaseAllowance' // solhint-disable-next-line max-line-length require((value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); } function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender).add(value); _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender).sub(value, "SafeERC20: decreased allowance below zero"); _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } /** * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement * on the return value: the return value is optional (but if data is returned, it must not be false). * @param token The token targeted by the call. * @param data The call data (encoded using abi.encode or one of its variants). */ function _callOptionalReturn(IERC20 token, bytes memory data) private { // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that // the target address contains contract code and also asserts for success in the low-level call. bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed"); if (returndata.length > 0) { // Return data is optional // solhint-disable-next-line max-line-length require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); } } } contract MultiStablesClaimReturn { using SafeMath for uint; using SafeERC20 for IERC20; IERC20 public tokenDAI = IERC20(0x6B175474E89094C44Da98b954EedeAC495271d0F); address public governance; // 2M DAI uint constant TOTAL_AMOUNT = 2000000 * 10**18; uint constant PRECISION = 10**18; uint public totalClaimed = 0; mapping(address => uint) poolPercent; event Claimed(address indexed user, uint amount); constructor() public { poolPercent[0x812BE2983CA8057668e324D4dc69Ef9cE19F2E73] = uint(103851909873102987); poolPercent[0x5229406Cbb785E7754BDD6af66b94263f1c7dAb7] = uint(96044602856523642); poolPercent[0x4086E3e1e99a563989a9390faCff553A4f29b6eE] = uint(76675395859829907); poolPercent[0x047B3e73043BBF7421b78893110fC30b7db6b126] = uint(68580696923039742); poolPercent[0x36cc7B13029B5DEe4034745FB4F24034f3F2ffc6] = uint(60110755262441228); poolPercent[0xB1AdceddB2941033a090dD166a462fe1c2029484] = uint(43895388752146932); poolPercent[0x978527Ab21Fbbe1A80b2a8a24DF9a41E63C7221B] = uint(39695818143473979); poolPercent[0x332aeee03111a6EB5BA9F96f9249CDc2367fd99C] = uint(37270811570735216); poolPercent[0x9C42EBDf0fA6fA0274aEEBf981613Dfa9c99BFF8] = uint(30955074267691041); poolPercent[0x983130D9948224262F90090a471bDF5CFF140869] = uint(26327212980757001); poolPercent[0xda17e4d1Ef6eA697A22Fd8484bd2F1E1f6f53CA7] = uint(25049901138253119); poolPercent[0x6aBf3F8581f88002b87699608183675b7F2972f7] = uint(22488911556305054); poolPercent[0x2A097805c9bCA80925b840B5C42E482ebC8C985E] = uint(22423173506256594); poolPercent[0x0F109e11B76e83f8a984C9D80D379fC806fa2B65] = uint(20410889569877748); poolPercent[0xC9addb098446BBD7fc3D90b84591Da26f3dbc5eC] = uint(18583798973904956); poolPercent[0xa29f9169A6Bd23864e30Ea4846a3d9b2bfAc89b8] = uint(18384749715223722); poolPercent[0x42f1F47F1d5C2c61A38fD96A46EF95f24C12Eb41] = uint(18245421006553498); poolPercent[0x082B687C7b6F37973ea560c2D8cd01aFbaD09a1d] = uint(17312430420651858); poolPercent[0xa8d25C5A6f832a9423038c86529391aA7B7F91a0] = uint(13162778362188577); poolPercent[0xdd1dF77B43653cc56e0CbF5309Edd83aFb7b681F] = uint(12370948072238901); poolPercent[0x3c8c80fB3C4d3337f904cf2ea195A158E8747361] = uint(9896894766030845); poolPercent[0xdbeDB1B7d359b0776E139D385c78a5ac9B27C0f9] = uint(8796728458696510); poolPercent[0x0000000000000D9054F605cA65A2647c2B521422] = uint(8778401252780423); poolPercent[0x1f4E3BeeA02643e4b06Ff37CA8309caaBA745874] = uint(8774786082666731); poolPercent[0xA0e04247d39eBc07f38ACca38Dc10E14fa8d6C98] = uint(8349977752220193); poolPercent[0x5DD596C901987A2b28C38A9C1DfBf86fFFc15d77] = uint(7951891508320949); poolPercent[0x01173Bd5895Acf19c67F6170f15d503D4153CF04] = uint(7836020295951428); poolPercent[0x38e481367E0c50f4166AD2A1C9fde0E3c662CFBa] = uint(7602746774224631); poolPercent[0xC2326dc6e79F6750541550AF0064F829ce8312c0] = uint(7040867777287646); poolPercent[0x03DcA0e82c9Fd8876245ee54997dD4aF73849FD2] = uint(6383853016123569); poolPercent[0x6c856d4E74aF777b48b0af920Ef4a6e697dB7a43] = uint(6036223878633232); poolPercent[0xE1025E226B741cc121ad4E4d25017785f8c83c76] = uint(5877807315360724); poolPercent[0x1f0a6d7Db80E0C5Af146FDb836e04FAC0B1E8202] = uint(5739998421257469); poolPercent[0x4312CAe7E407243a81Bf7aC74f8d8187252aF51a] = uint(5627703173608491); poolPercent[0x2eD65Eb5888Cd73d74b9C847Ffe4B801eE818720] = uint(5494833858185275); poolPercent[0x012b82C47049f9E0E35Cd3Bba6B0033c71010c08] = uint(5266959575511045); poolPercent[0x3dBa662d484F73c7ec387376E0e8373f483D04CC] = uint(5203889252170668); poolPercent[0x9179c2f787788E590e6Fbf79090a6B94E0d11E5f] = uint(5084118592727006); poolPercent[0x77777a55576E4b03844AC5133B8e9A99057492d6] = uint(4478552872174259); poolPercent[0xa29e3738F6Bf205522A02a6BC580b828dD19383f] = uint(4433727055294351); poolPercent[0xb1C57869f6eacD51D1A74c558ec4C578394dAF0B] = uint(4394904577877377); poolPercent[0x3e8734Ec146C981E3eD1f6b582D447DDE701d90c] = uint(4393480093325622); poolPercent[0x92F59dcFB0D00dfC23972499a33Fc2adfAa1ED76] = uint(4343801012099734); poolPercent[0x93c0824cdEB2675317f05D4DB08c1F90fdb1D8ea] = uint(4337238965261326); poolPercent[0x2Fc9B2B376dCdbd86da622eDAac352391704A111] = uint(4336149567548241); poolPercent[0xe5A8654631B3729F73ca3503bA09a5d3e11b46da] = uint(3950292986952034); poolPercent[0x5D81940e60DAdda8b85d0b6fB5dC9941A3Db2C64] = uint(3927617086019548); poolPercent[0x85ace660391c4Fb72581bfeE3df840EDA189e552] = uint(3361863581059707); poolPercent[0x34E8dB41c4EC274429D01597Bc86AEed4d6e9B5e] = uint(3150797129615699); poolPercent[0x02b31379Ba6Eac0635a6141067a14C1526c506D3] = uint(3120151474686539); poolPercent[0x93C027865354e96a1e9ec69fc8253e6d49013f82] = uint(3089425736425334); poolPercent[0x898eFA55Ce5cCEC7EFad8C7b77204edEB8847961] = uint(3075349913606904); poolPercent[0xCebaa26C11Bdf4F239424CcC17864B2C0f03e2BD] = uint(2464142528976263); poolPercent[0x4118B48813c64977CB0D1b02eD268cFB3f6195e2] = uint(2291941690056106); poolPercent[0xa89C876BE69223295A0925D7A62Cb6868dEc4ac8] = uint(2204298288047923); poolPercent[0xF9D594DAcDf73982fbA8e2711C8728909F8D1205] = uint(2194209282373755); poolPercent[0x7421c1eD16B400e4868CE696452C3C985F8CD04D] = uint(2064426924253778); poolPercent[0xdA4e42749Cb44afA7222643CA0A3218d8Df5DDb6] = uint(1769809642819860); poolPercent[0x5f0B23D415B82421780AaEea6362860e76e90a2F] = uint(1757374850762334); poolPercent[0xF9e6028cffB7B8d055219B97829698943B149222] = uint(1572688966486068); poolPercent[0x1dA14E9cDaE510aE75972f5221200FA781FDb4C8] = uint(1530136792889973); poolPercent[0x87fC1313880d579039aC48dB8B25428ed5F33C4a] = uint(1440001871442540); poolPercent[0xe7bb437c0DD10Dc51fB6126990E034B5752e8165] = uint(1220085839640999); poolPercent[0x03853603beeD695de2011710f8f967a6042Ed92D] = uint(1138251949517258); poolPercent[0x801EFaA08e37EfEaAd37bEc444A50583362e31A3] = uint(1053540861157456); poolPercent[0xD9d3dd56936F90ea4c7677F554dfEFD45eF6Df0F] = uint(1017827032518972); poolPercent[0x8B553E50B2C2fabA3148aac9C40eA9971Cd25F86] = uint(998101399560152); poolPercent[0xB07ac339291FdbA30D2c75355AAe22eD6f3d1c7c] = uint(966287698200556); poolPercent[0x8ac7AC7361d7917Ddd06a5d763c7f324b7F5E435] = uint(943226945475508); poolPercent[0x98A529e3488c2d44566881FEAB335B17B1c3b430] = uint(928761059243697); poolPercent[0x3818c6d5B6c62646aEa6977ed7Ea17C9DD306a26] = uint(895494659343807); poolPercent[0x3D3C3EEAc517B72670DB36cb7380cd18B929430b] = uint(878361274921183); poolPercent[0x37a952DC59533852E65bd83cDE0e29c3ee02EaD0] = uint(877695478007704); poolPercent[0x9eBAFf2192d2746FeC76561bdF72fd249d7a73ab] = uint(867939996365686); poolPercent[0xAB0f6b8C486FeC656B270Ff2B53aE09e454E12E1] = uint(805035272320907); poolPercent[0xeaE98E98CeA0577Cf78e2Efce00B3Faa9444130C] = uint(804148207755992); poolPercent[0x16d1663A00d4d1a216E0baa84B0AbC69ba35C156] = uint(789305324597927); poolPercent[0x4d9FD403CAD5d8E3416D022fd584d5384B39e4f0] = uint(766249795991572); poolPercent[0xeD558De2E1Fb9fce685096C8D2173C4DA09bFaE6] = uint(708165574664640); poolPercent[0x5D1Ec9869c70b8b6A36CdD5879A2CD9639151C76] = uint(702483713895816); poolPercent[0xc126C683c2eEd8564c7141B29c75FeaDadF13069] = uint(625268982962806); poolPercent[0x8C4d5F3eaC04072245654E0BA480f1a5e1d91Dd5] = uint(614215746124866); poolPercent[0x012937aBA6955Bd6F7b2894c7E7079441F27e51A] = uint(573442494052014); poolPercent[0xC85Ca407b61129AB62A2cdEc176035e6FECF153E] = uint(532031943644062); poolPercent[0xB599A3f7c47A9Fd64fd17190F9B8E4215B7e1FE4] = uint(526625685760329); poolPercent[0x6a414B51CEAf33eF465eb853B0B070512AFDD717] = uint(492885199226109); poolPercent[0xe92A014E59210BAfd9302C42dc0A96f0006E1Cd1] = uint(492080662165940); poolPercent[0x24403C7f45Bd16F6DfFDe0c1c45792d9825fe9a6] = uint(490605687617664); poolPercent[0x6f0A3Cff9514Bae0B86Ac300E72a1B9986074B35] = uint(469745171575446); poolPercent[0x5F723856AC7E6f6292473730449E79F483909867] = uint(441912625525200); poolPercent[0x5D7926412Dd9Ba3F00A74AD9F8C5A50Bb80fc297] = uint(439098392117571); poolPercent[0xBB2d41AcfEA24A3A2aD4A6F95C3AcE1cC98c6ed6] = uint(438944417494991); poolPercent[0x2DE7040994abF7b8064B91b4CAe73e9432d84f00] = uint(438555836007025); poolPercent[0xeB8cd71159f6D05962011F46B00B806df227e89a] = uint(361370100658379); poolPercent[0x899Bc43d25bD7b6AbA3999d02746b0284D88778E] = uint(330442429333844); poolPercent[0x7a855E3E13585368576a5A583c50451339AcC561] = uint(301879879076863); poolPercent[0x3D6dAb25Cb8168615B2BF75dE4E987204468856C] = uint(295933355653487); poolPercent[0x2b2411BD9Dcfb0d3F375521917e623676987dFb1] = uint(287200595329967); poolPercent[0x67Ff8944fB0999dD9d7fAc4Ca0Bd79c714162538] = uint(281259723453667); poolPercent[0xA5c071916Bd1DC65e4DefA553aEe4C2822bf5b30] = uint(277142231873719); poolPercent[0x66c93DBa5340A9CB612aA9B27046e5f298A91c16] = uint(262265556267139); poolPercent[0xed4c4aab2232319481745849f3406397BeBAEaA2] = uint(202038915277846); poolPercent[0xDB611d682cb1ad72fcBACd944a8a6e2606a6d158] = uint(201313985582635); poolPercent[0xF327eA8952B7Cf816821436A63235B0211FCEf69] = uint(179258945543530); poolPercent[0x4070E40FC3E382437aB7BaC2249205D276Bdd15A] = uint(176716995397034); poolPercent[0x8A09990601E7FF5CdccBEc6E9dd0684620a21a29] = uint(175537741342387); poolPercent[0x2E973bc711e1D50508938c8B66D5aC4398Dbf29C] = uint(175279258219656); poolPercent[0x9d86A7F15C668ad1511B0FAb20BC8D7448108ba8] = uint(148146879842271); poolPercent[0x09A01a4cc5b0EC8d606EA3B42bBec7145173BACe] = uint(144150186144024); poolPercent[0x8D1e46e92dC5B24c09bDf46F9B7D20a8e47cea70] = uint(129344804477404); poolPercent[0xF25DFA49AbCc51109cAaFE9dabdA8d109804bd35] = uint(120027890977234); poolPercent[0xD9f44963C2498C1B4ce4d4E93D751Bd8E54CaD85] = uint(119295984731460); poolPercent[0x40534E513dF8277870B81e97B5107B3f39DE4f15] = uint(116162445599545); poolPercent[0x3Ecf02FdF558B311fd9c9D55857283CD211aE9c0] = uint(115209886483954); poolPercent[0xD2c3d722E9fBa408CF33A0aBE0c3903419a5bbda] = uint(109617218919279); poolPercent[0x416e92F37Fb344Ee99b7Af6340025434B59F13bb] = uint(91024223780615); poolPercent[0x9137a536313EdA9d57c1B5d8e645aE123Ec522ce] = uint(90173387080437); poolPercent[0x8c297f1Bc4437388Ca86569607801a76756534bB] = uint(88496855821062); poolPercent[0xaa73A811A4898ca0E116376BE752B3960D554021] = uint(88484112856732); poolPercent[0xedf4FA418216A13E7629fED73e7448985CC8Bc82] = uint(88416411928321); poolPercent[0x2Db8b93B125A1cC9337AA4AD33F8C4096803e73B] = uint(82497996207592); poolPercent[0xEd60839632D9BfE3586810Ef2579620293AA5A1d] = uint(68694397365237); poolPercent[0x3C1Fbe83eF0F5B04bE5fc54edaC2Bec2c25DC07c] = uint(66616968680615); poolPercent[0xFAff02F1D7F9315529B64F64611fB35FFaE41c1D] = uint(61602883361426); poolPercent[0x52F1F2957b7Ee88eE66B5b67cB765D6762304F30] = uint(61588389773196); poolPercent[0xDa0402Ae38ec0A808134CC990B6bD28C1f64aAa8] = uint(57299717327749); poolPercent[0xf83719280BA7f4b1e390bb1524ad42b427c80F4E] = uint(51641523027210); poolPercent[0x5e84E8508B731e020eF0E8Ea1B0e7dBA75638881] = uint(50164022056155); poolPercent[0x111cD92405B1Dfbd19882D361418F49D99d8FED8] = uint(43894794631396); poolPercent[0x6c4de74f5752960e991D7bf580fDE2cFc5E2CA59] = uint(43878511257040); poolPercent[0x8369E7900fF2359BB36eF1c40A60E5F76373A6ED] = uint(43872259330882); poolPercent[0x34E561CEE3F22FD97F3a247Decd6565f9027c52A] = uint(35431113003049); poolPercent[0xceBda014e382119795825A00147C6CaC92B06421] = uint(33350875641359); poolPercent[0x602dC1d22884E333FCA32eB03105773c3b97b22B] = uint(24852482910858); poolPercent[0x3A70e8C00f3bCf3eb845B6b6928AbA92b465C183] = uint(24574341013581); poolPercent[0x8C862bB9F12A87Fe69703C19F561d6306e01A94D] = uint(20847790238819); poolPercent[0xEB3F3F5b1Ec4430451059cB6Bddc984f723C037A] = uint(17945891936910); poolPercent[0x5f0Ee5c6ff90F3F50a42d41aF4c18EBDD3D7FF1F] = uint(17589685295619); poolPercent[0xf7622487765A21a907Ec4DAbb318c92c520e1a1E] = uint(11705068777596); poolPercent[0x74CCe25E03841eC7C9b946D89c943EaF1BA0C6cb] = uint(10390812388967); poolPercent[0xd81008065eC031e540B251E9aFa5A3f246e1C6fb] = uint(9178900728773); poolPercent[0xa710a581997F31a4467E58a39D203c8414096F41] = uint(1756952973682); poolPercent[0x7Be4D5A99c903C437EC77A20CB6d0688cBB73c7f] = uint(866010669257); poolPercent[0xfB71f273284e52e6191B061052C298f10c2A6817] = uint(440229288870); governance = msg.sender; } function calcClaimAmount(address user) public view returns (uint) { return poolPercent[user].mul(TOTAL_AMOUNT).div(PRECISION); } function claim() public returns (uint) { uint amount = calcClaimAmount(msg.sender); require(amount > 0, "amount = 0"); poolPercent[msg.sender] = 0; tokenDAI.safeTransfer(msg.sender, amount); emit Claimed(msg.sender, amount); totalClaimed = totalClaimed.add(amount); return amount; } function setGovernance(address _governance) public { require(msg.sender == governance, "!governance"); governance = _governance; } /** * This function allows governance to take unsupported tokens out of the contract. This is in an effort to make someone whole, should they seriously mess up. * There is no guarantee governance will vote to return these. It also allows for removal of airdropped tokens. */ function governanceRecoverUnsupported(IERC20 _token, uint amount, address to) external { require(msg.sender == governance, "!governance"); _token.safeTransfer(to, amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Claimed","type":"event"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"calcClaimAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"governance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"governanceRecoverUnsupported","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_governance","type":"address"}],"name":"setGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tokenDAI","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
6080604052600080546001600160a01b031916736b175474e89094c44da98b954eedeac495271d0f17815560025534801561003957600080fd5b506003602052670170f4c3053b708b7f1a854c3ce6940cbb35e2665c74caaca95ebeba4582d4c3d6ab13d5c96b20d87955670155380eb3db477a7f190f921a38ea6b5b51dfd5a0fc9df4ad18ab86e2beb06912046017af6169e97c5567011067ddc53cd4937fb7a04fd21212feb0c0f89c120f76de3eb28de195b1c641479ae472684405b0b85566f3a5c7ce8be7fe7f152ab0570fc56845bf3faac59fa8cb78f8b19d6c40055cf7876eccf3a81a62d55566d58e69d699270c7fdc1a4ccbd61c9323f8ab9b1883a8e982563fce4d5d16e826d468e35bf9fd77e355669bf29f9dd971f47f807d60708f3ea893ea3d266301eb84594d86e354f401f669b5ba9ef74303b8eb55668d0722e382a13b7f5c034235d891b80ae697841c129ca5ac2850fb0bf18ecb92150d6e97a4abee50556684699b0c2a08707f68e21fc236c892c777565ba264d3209eb16cbbf8de5b571d4e210c018abfb40955666df979ddb8b8217ff5ab650dc8e2941c56678f14d7409f4387a58ded11f53e5d7c60a6544fe3656b55665d8875f1a4e2097f3c7c70b8169bf9a7abf79e51458037a5db4f29a794092ee745ee81bfc981c5c7556658fec09b01153f7fd4facbb48c76dde645475e15302767e70a1e8f734c39518b6da09068ae34fc0c55664fe58bc0b2e09e7fae2ba135b9e51d86ba32fec5cb713ad10a4ee2d061d418da48156a634307a0a255664fa9c1eb93ced27f5865f2b0b53fcdfe1bf3ecd41b52cbf6b922ad037d0787a08dc47f3bab95684b55664883988e5cbef47f75800b25a8d724e499ebf1533532b5b753f830ff24205e310be9934e1d81956a55664205dde06ab83c7f09134eebd1aa33aa08ad72ffeac104cbb39261d7ec2fa1c9b93c911161ab57db55664150d51c0f74aa7feedd2689309cbaa79bd05e122b437ed98491aaef58d00deebfd51908b712df14556640d21d1ddf819a7feeeb2188ce985adf72e64a846d86849ac2e0010d9eb721f26fbc2093d4f0ce7955663d8190516bef527f05818fd99b80f27148edf985309a6bdc7a562a33b6b84fc6e852f7c4bc0c0a8155662ec37a288913217f8d66ae8627dd9e3bd03705afe9105d6cc6b9a1fcaa73efbc58d9e54744dfc54855662bf34fcd616f357ff779eae7070121ddee263d60afd8baddbb09953a3a5d5ec04e7eb278600a87eb556623292c60e89ffd7f1534f6a1347c0f753a6818c68d9c9cfd68de8f3740752479b5bc4f64383d0e0955661f4093f2f7573e7fded2d9e693b263f6af2eb17b6948aab8a5c44d5e28c9b5ab0c1a3d7ee9f1cff355661f2fe8d05e29877f2c301d772c1a77c976f61435836896189ecf9f854366641c8c7c0e6ddaf8cb2d55661f2c9f176ff8eb7fffc0f6cdf047e306afbb72949aa2e7e169695dca43981863eeb25d199e3eaefd55661daa42b1cdb2217ff6ce2dbf354745169d78157dcbf3c6bc4a8079f70a32ee1ff4359b77e06cb2fe55661c403404a55ab57f5347d21c7105767bbda30d20f684121a612a6d3b8b754dd5f01de8d0c7a4f98755661bd6d1a63164447f6d9268112164cfd384dafad9e507c2b430a4a825d98e84858218e4227a675c8555661b02a86ccb7ef77fb0a8b12a298e3ee2519d97b9130c0284b1860b85dead8ab8d59069acb0b0a41755661903a1c6c695de7f16664694506fa982cc15ca589a0b5fa9aa9a8beb3bbdbcf65cce54fc3e4175fe556616ae149b5308b17f63ab1432535959bc52ecbe8f7d6800b0f924a5f06bdefc4e721d196c8cea3a4e55661571e9e41217107fecf5c932312644b343e92944f0db683a037e3f31c4ccee976b31e9bc467f948f556614e1d5a9171bd47feacefafe5946e233c5a130bb52b3143573717ae086cd452599d5bc47555ad5e3556614647f86e90cfd7f43c85a6ebb677c973b5f453cd986fe4e0cdc7ac741b1b174375492d3b59892aa556613fe5dc090742b7f99333130cc4ce5e618773040bd08492417a7d63b3a1b27ef5c52b9d7f7a6b98f5566138585b437883b7ff0137d79d46809eb10fa2d9df0549a664231e8d838d6a157e9e2858368f521c7556612b645968b70057fca0ccfd3dbbe922503bb245463b7e6ea27baff73c05e06d8f00a0b2c7c835e205566127ce8e2537bac7fed37d617648d9dcb414f49648fa36f7afe01c1dd612f44fe42ba96f0d70f5f905566120ffa9ab727de7f4e9c1d384fb20687370b73baaf27bd8cd5381abb7893fd9ea5909a950e50c68455660fe938590dc2b37fbc5dbb1f9762e276f93a7066753f51a128b08d055eae9d4b0748f506c3a356b055660fc07386296f8f7f2a44e6d1148beff6d4283e640af0bd14bb50ed31f25d74887342620d7a72d92255660f9d24762fa5817f6af352ebd7864bee2f223cc751270bb9395edf90879c4c427cc88ad9b0d2a3bf55660f9bd8cc4a59367f306c25bfbe7a17dcd25259a2e0b319941e4a4636485e6068708bfe58a47f20a355660f6ea9fc4d1a967fdf1a7a9b42031f1d6ac2663a1ba18d6411d9952f09474bc15e031d71143e68bd55660f68b223d4940e7fff5ce9ea7ad6656b84b7936d441d08f0e419dd8f1f668e9f890bb4b5455d7bed55660f67b47eaaab517f9989de05074a0e7dd6daa2ec1e046f9ac2ee87fc736541e60ef91bc869a6467255660e08c5423ef9627ffa044b816409fb7d2533acf9f389a7e7f15306eab641bd3bec88b6c96c45bfc155660df4259d39d7dc7f42b3dbc0b6288e1ed2a711df088fd2c5a2f68f6c8be52063fa2412a8694d7b0b55660bf198dc884a7b7f3f68c30a9ec403d178de8f8bb59f4eb3c5e7ad7b66dd6b6e468a2a800bbfad2c55660b31a21fab89537f5c37e604da5d3779cc198b7be3ae23bf2b68e8c028d248773fc6a3d4a9dbd40355660b15c2e04b4a4b7f1ad77cb730da0722af678b78a03e8f283cf45751e96164a39121415707ce7a9455660af9d0fb945f767fcd59dd45e0de3c4a0c19b89d5dda609eaa7de342b72682df9fb4c61b54b3957055660aed03b3291af87f0db2052f62563f28f6fc0c45a62d5fba236d76e24ab5b105b92f1a9bb36ffb95556608c11fe41d95877faff5626b3b509c540124694e8bbcce1d6697f56b59de47ff3ecacf52260d33a6556608248242481daa7fe822f8335e21d55a26b4af6cda79541a17e4fe7a330c9a83373edb6a6eb43f40556607d4cc307027337fa98181504a03bdbf016b26f1c353cd3e6031c80ebd649104b6f099dfd1b68fe5556607cb9f28d6b87b7f210cea0b55c293e9feba9b69c418e3cf0c104e8f64bb8e4ff36c81d22eb17e1d5566075595d97c22527f0971d97f40bdd3218c780f9714cfdb58327572d0c5188bcda938603bb2940e3955660649a1eb1491147f7b56541a0562d37c27daabaedc102bc55c4950081e82aebf9a42c74e078268da5566063e52b7b7865e7f96061c7717f4691713f926b6cf5a78e5905857d445692111b8ebdffde6e75507556605965a2f3088347ff5e53f3f6b335643318dab5d87dff5da223949aa303e8ddd167ef57736e567eb5566056fa6bbff7a757f44cdda8a561f3f967f00eea9aec32f0994e7f3118b69a63b206c0e415c584d785566051dac9005f26c7faf86c62da7dcd30e97d8e34eb5e748305b57760f9c3f91ce73094db38aab3ab355660455a95f1139a77fab2678dc7da666215756f5a646a086aa9b5ce6ed513b3995da7beb9076b837755566040b3bef1da9ca7f04ac926eba50769d64cf560701c8182d647519617cf2cbcc8754be233452cd95556603be3098c920507fcedb33310ad969a32a8a2b665df280aaaa0d46cbafd76633e6cc2931581953cb5566039db552b7513c7f750233624961e281b1931c712f2ca0ea85a63d267009f02ece34be83cc57ce675566038bc4975edfd87f37e9545c18072a2684b5a8774940363ec77dfa3ebe60ed2b899a2eb62c31ea1f5566036ed5630087ec7f79b0d242c1a843508eba34a91eba53a9ad6e847fda8626e621bd0e16b57dfd4555660359dc230713b47fa59416c50d417d7f8ad2fbedc208268555b44a8856ce516810d5a7ffb7bbf9d35566034cb4090476b17ffeb16ff1fc20ed8b1e2108eafa5e63c4397c9a47e309254766865dcc9d0fb9335566032e72991185bf7fcf8dcde5dd9d989c244f4ec79e44560e7c742bd2dc369a1c84e42235d9b396235566031edd6bc6b0df7fbdb60c38caae5f8a2f56007526c7edfd4e84398fc93be0f8ebaf6ae4d52c960e5566031e42673007987fd3d2ee982b36826d5c2fb9b45236a340358ddf287be38a1841fba47c766c43a85566031563072b73767f5c51af7c19a0ccb61ed5e0b3db2e1d1e4cc25878a0539d67547e41a37dc64ee7556602dc2ce170378b7f4fa9220fdf1bc490205cc5bbaf49eaee3f283a6e929d5f94f021be0c8b0f1074556602db5e584522d87fef0fcf8aa02e06b2adb7ad044a922084c8692312db9a14bcdddfa7a25fd22b95556602cdde777df2a77f124425782b393d8bef5a01fcb64d468b80b03bc96a8e22043f1b478521c92c7e556602b8e66ee638147f3b2c1d001ce0deedc477ce6c2728d5b1ad61d363ea60a71be870da407e96eb0d5566028412a58521c07f1c7e143d1ada0854e5ac4bfbc03b40b62c9175b4d1bded3019342527b391cb6f5566027ee7bc3a2d887fbc3d01bb22683729e294b4bccf627ffdb19d5e3ed007afb259881bdb1d2de61e55660238adc79e5a767f990f5941750cdb3ceda3d5e75eb4b0b25f52feeb39d7d9ca4a81b07ed83c4f915566022ea03f5cfc427f8a21c49ade8e4fff9a6b8fb5c5c3ad833026053088b4c73ec8a17640ce1c61dd556602098afc2836ae7f654664107f6e1bb0632b15fecb8c8386feb7fc041c70b8435be2667389860234556601e3e15702939e7fcb09a6fea8b17a5697ff341fca2ed04d1ceac75d668ff622a3f3b95766c210e5556601def698ede9497fe8039ca70dc651cae078f9d2f1ae2b6cb5624c44667241bcd78a98240a6c7fd3556601c046c73704fd7f01e1ab4eef1743635535247dff2e268e20ca1f0cf8073bb50259441423bc9631556601bf8b7511b9b47f5a820016e93f6dc89d4801fc5d661f74ba0c2a2677a9261c12c8619e25bc5aca556601be3409bc38807f2fbcef4fad53d177f1259d11179b0fa9dfdd47f3e267cd74dd2ae14d3f75060d556601ab3b121632967f19ae625044a11970ea698886005da8c74a22172144ed4f35055af613a1637eb655660191eacd10f1d07f20d120b8ad666fb256ee305ff9a33180bebf483088407411ebe7744266196a015566018f5b8faf01437f9bae9d7709b55c21038b33c6ca38e357373ef85a10eec11dfa05c879569a08f75566018f37b614b7cf7fc6a0d7772547313f870ce49fa71bc9e33060196504ba695b6bfecc11866b3c315566018edd3cd1c2717f01d05ad2eb63fb7e1a9edad627330a646b0f62ed871a2ce5258c3de7a88657e255660148aa087b70cb7f9c3426e810b92a61cfe8aa9ca6d7893462b782c7ab6fa2b7805f2f6a630b17895566012c891f9e81547f14a9641b9f3b3ba6a5d915097dca9b80d537c5479728e08edde384317f870b40556601128ee2f50bff7f69735da9e85b942323619c5c414ad994763b50ce8324bcf5d7e6fe8093ad73895566010d265a8a796f7f12d311e6baab67ec02d654e4bac5c9e1bd0a85b78b9b4633ab477334765b6b6b55660105351976c3af7f5f6586b512457379f942eaa65d50804343874f38964718eabf9fc449b937af735565ffcde1e7f4e37f2eac87066f57ca3fc9c047fcc7433cdd6a0755bb56715386f6122a92b509a3bf5565fc0f344878b77f4a497c8ccbce46bcaca1f942af45caf9f425e5d3cf305fa815b08723f46ab3cc5565ee87755170837fdab2c913c01bf7f82bf8fc02ba202cf8fef3a89fd989407aa7c09412e91396e65565b7c0d9c6a4167f19bc59a98273b1a14ff6187a72b643bf0fbe4b02cd538fb44f6faf6b0be8a0a45565b7181099562b7fabf7c76f6f9aee7c6f839ac91ca7368ad86962a19a84d45958c513b4826e03cc5565a308f9c59d6a7f4b40c606929d0d248e4bdd03b076d698ec560121faecd76cadbbf07145d6fc5f5565a0b921bc85aa7f81ae74e5c8baba305f8f6502fe4c6cbe8b678ee941744e2a7b6aaa5a4df7f25655659fa690b7a6b37f192cabf415b98e1f033f3f3e5280e6b12b2fae80c3df518041ee79b10b4e146055659f6a61ec34887f43be9a39a66c657e3160069c745ce43c2457b49d3ea3a4b2facfff40bfb3d879556586bd2225c7df7f5f83f2cc8126f38fc37aaed5b64508e6f69eae1437cf61c49d0954224e44fe4b5565831a94a3b1187f9ecf531aa6122e986909b93b61e688188031fcd59c552b0400c4df7129464dc5556575a36f1fd9dc7fe23fa0d5c0bebd844a3e04a1e77c461dc62e8772c30f0180625d08c25bf1ee9655656d2a2bce09d27f22e9fe502ad323915779982fbaf3d91382644aec603504bee232ef514349466655656c7fc2cb05447fc0b3e2e9bb808c2ebec9281402b2edf58a52ff025dff388f376003efbaa8d8ef556569a62d4e63397fb4341e6285d44eb97931cf25d0b12bfa5fce5ff63f216c43992f9ed97626d9df556568c8645bc5f27f184fafc569a41cda2b81000fc0f41a0cdb6d753f2a247fad603d77f14bd5ad71556563b23f651b6f7f4c8f70276a6e18cbf1748d1546c40833a249dce871c37545a1766cf07910f9af556552c93a863f077f648e946538837b7ab659e96464cd62d2c31997a495bf8897178cc3e925790f4f5565520320b482f57f3f7b4d6396fc1f2b3d49d87e0402e1990f6d5dac35114ed96c0d43e8ebbb31ad5565507cc7a7ab067f520985f85568a0c68a6f895ea33ade8f4e9b571054f860fb32a25082d8d858ea55655079d01d769c7f5ec202401d75395d48ca2766fc64ce802d16b1c5d9f72d25a2a81a34d64428ec5565506a0cd347017fbd66ac1b08f542729eed6c0a6f46f711c1f3b8bd103c0dc2e42fef39410e8ca055654b080fc235e87fcbbe541e2375c2167dadca36b8bc062d9a2df4fee6df6c98824c9541cdfaa47155653e7a29272bf57fff63476eed5083b29bf8516fa11a32605e990f4b85555a2ab64368cdc246c5a055653c9678c114a77ff76508a576843476de55ffc15b95f086f4aaad0e9bc5b819418b2bc364c165685565380709fada927fa75ea6d57e3069a03caf3ba022b5efb03b7b913181d6f4b58a9c069131152d3455653803aa183f8c7fe0d557ab9a741459b2913afe2857d2793946d602a5786ff85124885a0b3363d75565341d214c0b857ff0f9931b247af66d9e146359bd85041944b256adc795d6f8283e4e2db45915ce55652ef7baa2bd0a7f47d1a661ccc76b4f5e9636b3df9805d7b28f4b7743a5b0be222dec7cadc6b02e55652d9fb8b714db7f429c3f7db738d698b72ac95e1da2e59cb28ca17adae685cbce3123c22d16d469556527ec0da438e47f4168eff5ead20cecbb00b2536d1b40e997019b60eec97be3b0976bb48e262513556527e84313a5d07f848bd2530765632b45240770cb6e855a5f5994675fdab3416ababfeda00e1c2b556527e6ce6ed3427f58022c96605420c5be28c89f310f61e575cdf793726eb4d407008632f8cc51ff5565203972e790297ff1cb827c754da4e3173c96c096c6aa395b82ee082961c3b2b68f818deb53658e55651e551b18760f7f8ad62fb1854de9324af43dfed4c58057282466252155aab734a74863351379275565169a6b6a6a8a7f33b303ae8723b8e2c57f8c918789e70a6ba7e235f2a1cdc208908a3c70b5970755651659a8dde04d7ff26bf3810a26c0788d8a3fb0fac98dd0dd8479f211be24ef29ce46436d5adc99556512f60121ac637fc987dd175fdfa6db06d291775d752486c54048f18b103913bc13f170065ea311556510525a839a8e7f51fc908dd551becf06b3319fbeed9487d6bbae3ddd515810fdffb877f142fc8055650fff6af19a037fb6d7aa3e577795803978ad963aacdfe8109859002a0d901e90b712733de65cc855650aa54c77707c7f15a049b2bd7ee09fc5b6647deb55d281895d3bb45752b9e618b3a8e8a9fc2f97556509734cae6e677f2c83a835327821b55735363c670bb205cb4e52dd0835b9496883406268f1a5cd55650859211e0bc57fd02566dcdc59d5c53dc08a1f19ac89df1cc9cea64441d30805625915714d061a55650199128ed1727fa66851e499905da137e981179727f613c1f387c696e73ffa9c97135404ff21b75564c9a24220c97f63eb3c3e16ff15ec9b640129b65787bd611b8750dc2a2c761fcf417351b9e4575573fb71f273284e52e6191b061052c298f10c2a681760005264667fb5dba67f9edb31294d3894fecd290d7e6db9ab5a88934fa9ce3d75ddeeea0dafecb4deaf55600180546001600160a01b03191633179055610805806117eb6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063a2befa641161005b578063a2befa64146100f8578063ab033ea91461011e578063cea8b27f14610144578063d54ad2a11461014c5761007d565b80634e71d92d1461008257806354575af41461009c5780635aa6e675146100d4575b600080fd5b61008a610154565b60408051918252519081900360200190f35b6100d2600480360360608110156100b257600080fd5b506001600160a01b03813581169160208101359160409091013516610218565b005b6100dc61027e565b604080516001600160a01b039092168252519081900360200190f35b61008a6004803603602081101561010e57600080fd5b50356001600160a01b031661028d565b6100d26004803603602081101561013457600080fd5b50356001600160a01b03166102d5565b6100dc610344565b61008a610353565b6000806101603361028d565b9050600081116101a4576040805162461bcd60e51b815260206004820152600a6024820152690616d6f756e74203d20360b41b604482015290519081900360640190fd5b336000818152600360205260408120819055546101cd916001600160a01b039091169083610359565b60408051828152905133917fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a919081900360200190a260025461021090826103ab565b600255905090565b6001546001600160a01b03163314610265576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b6102796001600160a01b0384168284610359565b505050565b6001546001600160a01b031681565b6001600160a01b0381166000908152600360205260408120546102cf90670de0b6b3a7640000906102c9906a01a784379d99db4200000061040c565b90610465565b92915050565b6001546001600160a01b03163314610322576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031681565b60025481565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526102799084906104a7565b600082820183811015610405576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60008261041b575060006102cf565b8282028284828161042857fe5b04146104055760405162461bcd60e51b81526004018080602001828103825260218152602001806107856021913960400191505060405180910390fd5b600061040583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610558565b60606104fc826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166105fa9092919063ffffffff16565b8051909150156102795780806020019051602081101561051b57600080fd5b50516102795760405162461bcd60e51b815260040180806020018281038252602a8152602001806107a6602a913960400191505060405180910390fd5b600081836105e45760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156105a9578181015183820152602001610591565b50505050905090810190601f1680156105d65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816105f057fe5b0495945050505050565b60606106098484600085610611565b949350505050565b606061061c8561077e565b61066d576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106106ac5780518252601f19909201916020918201910161068d565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461070e576040519150601f19603f3d011682016040523d82523d6000602084013e610713565b606091505b509150915081156107275791506106099050565b8051156107375780518082602001fd5b60405162461bcd60e51b81526020600482018181528651602484015286518793919283926044019190850190808383600083156105a9578181015183820152602001610591565b3b15159056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a26469706673582212206b19b771acf0aa82b1b6835d6bed9032fa93f6b06b11cdacbee2dada33f8ebb664736f6c634300060c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061007d5760003560e01c8063a2befa641161005b578063a2befa64146100f8578063ab033ea91461011e578063cea8b27f14610144578063d54ad2a11461014c5761007d565b80634e71d92d1461008257806354575af41461009c5780635aa6e675146100d4575b600080fd5b61008a610154565b60408051918252519081900360200190f35b6100d2600480360360608110156100b257600080fd5b506001600160a01b03813581169160208101359160409091013516610218565b005b6100dc61027e565b604080516001600160a01b039092168252519081900360200190f35b61008a6004803603602081101561010e57600080fd5b50356001600160a01b031661028d565b6100d26004803603602081101561013457600080fd5b50356001600160a01b03166102d5565b6100dc610344565b61008a610353565b6000806101603361028d565b9050600081116101a4576040805162461bcd60e51b815260206004820152600a6024820152690616d6f756e74203d20360b41b604482015290519081900360640190fd5b336000818152600360205260408120819055546101cd916001600160a01b039091169083610359565b60408051828152905133917fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a919081900360200190a260025461021090826103ab565b600255905090565b6001546001600160a01b03163314610265576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b6102796001600160a01b0384168284610359565b505050565b6001546001600160a01b031681565b6001600160a01b0381166000908152600360205260408120546102cf90670de0b6b3a7640000906102c9906a01a784379d99db4200000061040c565b90610465565b92915050565b6001546001600160a01b03163314610322576040805162461bcd60e51b815260206004820152600b60248201526a21676f7665726e616e636560a81b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031681565b60025481565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526102799084906104a7565b600082820183811015610405576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60008261041b575060006102cf565b8282028284828161042857fe5b04146104055760405162461bcd60e51b81526004018080602001828103825260218152602001806107856021913960400191505060405180910390fd5b600061040583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610558565b60606104fc826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166105fa9092919063ffffffff16565b8051909150156102795780806020019051602081101561051b57600080fd5b50516102795760405162461bcd60e51b815260040180806020018281038252602a8152602001806107a6602a913960400191505060405180910390fd5b600081836105e45760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156105a9578181015183820152602001610591565b50505050905090810190601f1680156105d65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816105f057fe5b0495945050505050565b60606106098484600085610611565b949350505050565b606061061c8561077e565b61066d576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106106ac5780518252601f19909201916020918201910161068d565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461070e576040519150601f19603f3d011682016040523d82523d6000602084013e610713565b606091505b509150915081156107275791506106099050565b8051156107375780518082602001fd5b60405162461bcd60e51b81526020600482018181528651602484015286518793919283926044019190850190808383600083156105a9578181015183820152602001610591565b3b15159056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a26469706673582212206b19b771acf0aa82b1b6835d6bed9032fa93f6b06b11cdacbee2dada33f8ebb664736f6c634300060c0033
Deployed Bytecode Sourcemap
17669:14717:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31370:350;;;:::i;:::-;;;;;;;;;;;;;;;;32187:196;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;32187:196:0;;;;;;;;;;;;;;;;;:::i;:::-;;17856:25;;;:::i;:::-;;;;-1:-1:-1;;;;;17856:25:0;;;;;;;;;;;;;;31220:142;;;;;;;;;;;;;;;;-1:-1:-1;31220:142:0;-1:-1:-1;;;;;31220:142:0;;:::i;31728:153::-;;;;;;;;;;;;;;;;-1:-1:-1;31728:153:0;-1:-1:-1;;;;;31728:153:0;;:::i;17774:75::-;;;:::i;17996:28::-;;;:::i;31370:350::-;31403:4;31420:11;31434:27;31450:10;31434:15;:27::i;:::-;31420:41;;31489:1;31480:6;:10;31472:33;;;;;-1:-1:-1;;;31472:33:0;;;;;;;;;;;;-1:-1:-1;;;31472:33:0;;;;;;;;;;;;;;;31528:10;31542:1;31516:23;;;:11;:23;;;;;:27;;;31554:8;:41;;-1:-1:-1;;;;;31554:8:0;;;;31588:6;31554:21;:41::i;:::-;31611:27;;;;;;;;31619:10;;31611:27;;;;;;;;;;31664:12;;:24;;31681:6;31664:16;:24::i;:::-;31649:12;:39;31706:6;-1:-1:-1;31370:350:0;:::o;32187:196::-;32307:10;;-1:-1:-1;;;;;32307:10:0;32293;:24;32285:48;;;;;-1:-1:-1;;;32285:48:0;;;;;;;;;;;;-1:-1:-1;;;32285:48:0;;;;;;;;;;;;;;;32344:31;-1:-1:-1;;;;;32344:19:0;;32364:2;32368:6;32344:19;:31::i;:::-;32187:196;;;:::o;17856:25::-;;;-1:-1:-1;;;;;17856:25:0;;:::o;31220:142::-;-1:-1:-1;;;;;31304:17:0;;31280:4;31304:17;;;:11;:17;;;;;;:50;;17983:6;;31304:35;;17934:16;31304:21;:35::i;:::-;:39;;:50::i;:::-;31297:57;31220:142;-1:-1:-1;;31220:142:0:o;31728:153::-;31812:10;;-1:-1:-1;;;;;31812:10:0;31798;:24;31790:48;;;;;-1:-1:-1;;;31790:48:0;;;;;;;;;;;;-1:-1:-1;;;31790:48:0;;;;;;;;;;;;;;;31849:10;:24;;-1:-1:-1;;;;;;31849:24:0;-1:-1:-1;;;;;31849:24:0;;;;;;;;;;31728:153::o;17774:75::-;;;-1:-1:-1;;;;;17774:75:0;;:::o;17996:28::-;;;;:::o;14596:177::-;14706:58;;;-1:-1:-1;;;;;14706:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14706:58:0;-1:-1:-1;;;14706:58:0;;;14679:86;;14699:5;;14679:19;:86::i;3615:181::-;3673:7;3705:5;;;3729:6;;;;3721:46;;;;;-1:-1:-1;;;3721:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3787:1;3615:181;-1:-1:-1;;;3615:181:0:o;4969:471::-;5027:7;5272:6;5268:47;;-1:-1:-1;5302:1:0;5295:8;;5268:47;5339:5;;;5343:1;5339;:5;:1;5363:5;;;;;:10;5355:56;;;;-1:-1:-1;;;5355:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5916:132;5974:7;6001:39;6005:1;6008;6001:39;;;;;;;;;;;;;;;;;:3;:39::i;16901:761::-;17325:23;17351:69;17379:4;17351:69;;;;;;;;;;;;;;;;;17359:5;-1:-1:-1;;;;;17351:27:0;;;:69;;;;;:::i;:::-;17435:17;;17325:95;;-1:-1:-1;17435:21:0;17431:224;;17577:10;17566:30;;;;;;;;;;;;;;;-1:-1:-1;17566:30:0;17558:85;;;;-1:-1:-1;;;17558:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6544:278;6630:7;6665:12;6658:5;6650:28;;;;-1:-1:-1;;;6650:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6689:9;6705:1;6701;:5;;;;;;;6544:278;-1:-1:-1;;;;;6544:278:0:o;11674:196::-;11777:12;11809:53;11832:6;11840:4;11846:1;11849:12;11809:22;:53::i;:::-;11802:60;11674:196;-1:-1:-1;;;;11674:196:0:o;13051:979::-;13181:12;13214:18;13225:6;13214:10;:18::i;:::-;13206:60;;;;;-1:-1:-1;;;13206:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13340:12;13354:23;13381:6;-1:-1:-1;;;;;13381:11:0;13401:8;13412:4;13381:36;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13381:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13339:78;;;;13432:7;13428:595;;;13463:10;-1:-1:-1;13456:17:0;;-1:-1:-1;13456:17:0;13428:595;13577:17;;:21;13573:439;;13840:10;13834:17;13901:15;13888:10;13884:2;13880:19;13873:44;13788:148;13976:20;;-1:-1:-1;;;13976:20:0;;;;;;;;;;;;;;;;;13983:12;;13976:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8756:422;9123:20;9162:8;;;8756:422::o
Swarm Source
ipfs://6b19b771acf0aa82b1b6835d6bed9032fa93f6b06b11cdacbee2dada33f8ebb6
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.999622 | 0.8805 | $0.8801 |
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.