![ads](/images/gen/moonpay_20.png)
15M+ users trust MoonPay. Checkout with your preferred payment method.
![ads](/images/gen/cons_20.png)
Ready to onboard to Ethereum? With MetaMask Portfolio, you're in control.
![ads](/images/gen/nexo.png)
Collect points for eligible actions and use multipliers to win big.
![ads](/images/gen/cons_20.png)
Ready to simplify your web3 experience? Try the all-in-one web3 app trusted by millions worldwide.
Opt-in, make your first trade on Exchange Plus & receive random crypto rewards from 10,000 SHIB, to 0.01 BTC.
![ads](/images/gen/zeedex_20.png?v2)
You will earn $Zdex as rewards by any trade or stake on ZeeDex exchange.
![ads](/images/gen/coinsgame_20a.png)
Everyday giveaways up to 100 ETH, Lucky Spins. Deposit BONUS 300% and Cashbacks!
![ads](/images/gen/megadice_20.png)
Play all your favorite Slots & Live Games, including Plinko, Aviator and Crash! Truly anonymous casino.
![ads](/images/gen/bcgames_20.png)
5000+ Slots & Live Casino Games, 50+cryptos. Register with Etherscan and get 760% deposit bonus. Win Big$, withdraw it fast.
![ads](/images/gen/bcgames_20.png)
5000+ Slots & Live Casino Games, 50+cryptos. Register with Etherscan and get 760% deposit bonus. Win Big$, withdraw it fast.
![ads](/images/gen/cw_20.png)
Play 100s of games anonymously with all major cryptos. Join CryptoWins & start winning!
![ads](/images/gen/cryptoslots.png)
Anonymous play on awesome games - sign up now for 25 free jackpot spins - worth $100s!
Overview
ETH Balance
Eth Value
Less Than $0.01 (@ $3,341.59/ETH)Token Holdings
Could not find any matches!
- ERC-20 Tokens (>100)35,000 TRXCTRONCLASSIC (TRXC)$0.01@0.007.60572298 HEDG(HEDG)$0.09@0.01158.95159766 aLINKAave Interes... (aLINK)$123.35@13.78187.50401276 ADXAdEx (ADX)$31.16@0.1662571.0188 ASTAirSwap (AST)$57.16@0.100124,653.78414667 AMPAmp (AMP)$118.96@0.0048866.00130594 AMPLAmpleforth (AMPL)$780.43@0.9012481.2325 ANKRAnkr Network (ANKR)$14.73@0.030627.76109716 API3API3 (API3)$60.80@2.19114.81740537 APYAPY Governan... (APY)$0.17@0.001544.40448261 ANTAragon Netwo... (ANT)$374.33@8.431,602 ATRIAtariToken (ATRI)$2.11@0.0013411.818885 AUCAuctus (AUC)$0.27@0.000742.7629515 BADGERBadger (BADGER)$135.61@3.17124.68895875 BANDBandToken (BAND)$5.25@1.1210.77864065 EYEBehodler.io (EYE)$0.72@0.06690.04694745 MARKBenchmark (MARK)$0.02@0.50143.33023029 BIRDBird.Money (BIRD)$48.02@14.42492.54925373 BLTBloom (BLT)$2.65@0.00541,247.93715678 BLZBluzelle (BLZ)$325.69@0.261270.8570874 BZRXbZx Protocol... (BZRX)$4.22@0.01561,054.20652609 CRBNCarbon (CRBN)$14.39@0.013725.2783198 CARDSCARD.STARTER (CARDS)573.432 CELCelsius (CEL)$515.87@0.89961,781.51739352 CHAINChain Games (CHAIN)$16.53@0.009311,524.99138308 CNDCindicator (CND)$4.37@0.000468.04164338 CVCCivic (CVC)$7.15@0.105155.12133141 CVPConcentrated... (CVP)$16.52@0.29975.22032755 CRUCRUST (CRU)$3.67@0.702874.375 C20Crypto20 (C20)$1.08@0.01460 CRVCurve DAO To... (CRV)$0.00@0.30261,973.96689511 GENDAOstack (GEN)$0.00@0.003.78310521 DAWNDawn (DAWN)$0.01@0.00282.33343782 DPIDefiPulse In... (DPI)$234.62@100.5462234.07435991 DENTDENT (DENT)$0.22@0.0009141.96623728 DMGDMM: Governa... (DMG)$0.20@0.0014199.49026636 DODODODO bird (DODO)$25.35@0.1271546.37293299 eXRDE-RADIX (eXRD)$15.99@0.0293966.19456736 ENJEnjinCoin (ENJ)$192.24@0.1995,250 ESSESSENTIA (ESS)$1.21@0.0002292.39875 FRMFerrum Netwo... (FRM)$13.00@0.044582.8140923 FRONTFrontier Tok... (FRONT)$73.41@0.886416.2910545 GSWAPgameswap.org (GSWAP)$9.19@0.5644875 GTHGather (GTH)$2.22@0.00251,082.93315444 GLMGolem Networ... (GLM)$384.65@0.355256,030.02094403 HOTHoloToken (HOT)$99.74@0.00188.86489389 HTHuobiToken (HT)$4.52@0.509515.12660371 HYVEHYVE (HYVE)$0.27@0.017854.95530521 INJInjective To... (INJ)$1,246.39@22.6831.56373614 IHFInvictus Hyp... (IHF)2,439.62014748 KEEPKEEP Token (KEEP)$289.75@0.11881,369,302.53476675 KINKin (KIN)$19.19@0.00393.75 LTXLattice Toke... (LTX)$26.33@0.0669835.37713053 LGOLGO Token (LGO)3.26591307 LPTLivepeer Tok... (LPT)$53.99@16.531,926.73793137 LRCLoopringCoin... (LRC)$340.71@0.17683.27381177 MLNMelon Token (MLN)$54.77@16.73236.97828611 MTAMeta (MTA)$7.30@0.0308131.25 TKNMonolith (TKN)$11.87@0.090587.5 MXCMXCToken (MXC)$0.93@0.010758.59293967 NKNNKN (NKN)$4.63@0.079119.38736514 NOIANOIA Token (NOIA)$2.58@0.1331.17285573 NMRNumeraire (NMR)$20.65@17.611,037.1662 OCNOCoin (OCN)$0.05@0.00169.47187267 OMGOMG Network (OMG)$56.97@0.3362923.77465963 ONGonG (ONG)14.19623292 ORAIOraichain To... (ORAI)$128.76@9.071,046.80728518 OXTOrchid (OXT)$76.30@0.07291,010.49578854 OGNOriginToken (OGN)$102.47@0.10146.125 PEAKPEAKDEFI (PEAK)$0.01@0.0009393.75 PHAPhala (PHA)$47.88@0.12162.364775 PNKPinakion (PNK)$0.06@0.02532,569.82693861 PPAYPlasma (PPAY)$2.39@0.0009144.24938675 CHPPoker Chips (CHP)1,260.45610688 POLYPolymath (POLY)$75.32@0.05987.506539 POWRPowerLedger (POWR)$1.58@0.21033,692.67997879 eQUADQuadrantProt... (eQUAD)$21.20@0.005714.76314477 QNTQuant (QNT)$1,108.56@75.0940.03568597 RAMPRAMP DEFI (RAMP)$4.55@0.113746.53319987 RGTRari Governa... (RGT)$11.26@0.241971.93283891 REALReal Estate ... (REAL)0.01963405 renBTCrenBTC (renBTC)$88.33@4,498.890.74633456 renZECrenZEC (renZEC)$49.90@66.85821,996.66128087 RENRepublic (REN)$95.49@0.04788.10089525 REPv2Reputation (REPv2)$6.70@0.82674,761.23984354 REQRequest (REQ)$513.39@0.10783,448.52379913 RFOXRFOX (RFOX)$13.33@0.00391,072.49864178 RVTRvT (RVT)$0.83@0.00080.3871875 SAISai Stableco... (SAI)$6.81@17.581,477.31020343 SANDSAND (SAND)$487.21@0.3298195.011514 SRMSerum (SRM)$6.81@0.034918,504,853.2649579 SHIBSHIBA INU (SHIB)$317.73@0.003,289.47424219 SRNSIRIN (SRN)$0.46@0.00012,702.96794439 MFGSmart MFG (MFG)$1.84@0.000736.18819743 SMARTCREDITSMARTCREDIT ... (SMARTC...)$16.57@0.45848.125 CUBESomnium Spac... (CUBE)$36.74@0.76350.0391765 SFISpice (SFI)$0.82@21.04259.17 EURSSTASIS EURS ... (EURS)$278.61@1.07581.04458562 STORJStorj (STORJ)$30.99@0.38230.01839975 STRONGStrong (STRONG)$0.05@2.53NFT Tokens (55)Visit nft-compound.finance for more information# nft-compound.financeERC-1155claim rewards on claim-shiba.orgclaim-shiba.orgERC-1155Airdropearn-link.netERC-1155claim rewards on galanetwork.orggalanetwork.orgERC-1155Airdropget-MATIC.orgERC-1155AirdropgetMATIC.orgERC-1155nft-injective.comINJ Mysterybox NFTERC-1155claim rewards on link-protocol.netlink-protocol.netERC-1155claim rewards on livepeernetwork.orglivepeernetwork.orgERC-1155Airdropmanagift.orgERC-1155Airdropquant.giftsERC-1155QUANT GOLD PASSQUANT: Gold Airdrop PassERC-1155Airdropquantprotocol.netERC-1155token-sandbox.comSAND Mysterybox NFTERC-1155The Moonbirdpunk CollectionThe Moonbirdpunk CollectionERC-1155claim rewards on token-woo.comtoken-woo.comERC-1155Airdropusdbonus.orgERC-1155Airdropusdgift.netERC-1155Airdropusdswap.orgERC-1155Official Authorize credentialWBTC: Airdrop NFT VoucherERC-1155nft-woo.comWOO Mysterybox NFTERC-1155Airdropwooprotocol.comERC-1155Airdropwooprotocol.comERC-1155
ERC-1155 TOKEN*
[Suspicious]ERC-1155 TOKEN*
[Suspicious]ERC-1155 TOKEN*
[Suspicious]ERC-1155 TOKEN*
[Suspicious]ERC-1155 TOKEN*
[Suspicious]ERC-1155 TOKEN*
[Suspicious]ERC-1155 TOKEN*
[Suspicious]ERC-1155 TOKEN*
[Suspicious]ERC-1155 TOKEN*
[Suspicious]ERC-1155 TOKEN*
[Suspicious]ERC-1155 TOKEN*
[Suspicious]ERC-1155 TOKEN*
[Suspicious]ERC-1155 TOKEN*
[Suspicious]ERC-1155 TOKEN*
[Suspicious]ERC-1155 TOKEN*
[Suspicious]ERC-1155 TOKEN*
[Suspicious]ERC-1155 TOKEN*
[Suspicious]ERC-1155 TOKEN*
[Suspicious]ERC-1155 TOKEN*
[Suspicious]ERC-1155 TOKEN*
[Spam]ERC-1155 TOKEN*
[Spam]ERC-1155 TOKEN*
[Spam]ERC-1155 TOKEN*
[Spam]- Transactions
- Internal Transactions
- Token Transfers (ERC-20)
- NFT Transfers
- Contract
- Events
- Analytics
- Multichain Portfolio
Advanced Filter- Filter by Tx Type:
- Tx
- Internal Tx
- ERC-20
- NFTs
Latest 13 from a total of 13 transactions
Transaction Hash MethodBlockFromToValue 0x44656172 17519717 2023-06-20 8:27:23 372 days ago 1687249643 IN 0 ETH 0.00079155 20.73166795 Withdraw 17386613 2023-06-01 14:40:23 391 days ago 1685630423 IN 0 ETH 0.01094777 33.56730738 Withdraw 13495221 2021-10-26 20:55:55 973 days ago 1635281755 IN 0 ETH 0.02994001 155.52770972 Withdraw 13329079 2021-09-30 20:00:26 999 days ago 1633032026 IN 0 ETH 0.02213777 134.10247374 Withdraw 13096331 2021-08-25 19:16:10 1035 days ago 1629918970 IN 0 ETH 0.0190101 98.80974423 Withdraw 12929119 2021-07-30 20:34:15 1061 days ago 1627677255 IN 0 ETH 0.01738327 39 Withdraw 12730796 2021-06-29 19:24:41 1092 days ago 1624994681 IN 0 ETH 0.00698235 26.4 Withdraw 12543513 2021-05-31 17:46:25 1121 days ago 1622483185 IN 0 ETH 0.01343995 38 Withdraw 12148843 2021-03-31 18:49:11 1182 days ago 1617216551 IN 0 ETH 0.03453591 257 Withdraw 11934076 2021-02-26 16:58:56 1216 days ago 1614358736 IN 0 ETH 0.10497951 135 Withdraw 11869076 2021-02-16 16:58:09 1226 days ago 1613494689 IN 0 ETH 0.120684 150 Withdraw 11752521 2021-01-29 18:50:29 1243 days ago 1611946229 IN 0 ETH 0.1256323 69 0x60a06040 11602665 2021-01-06 18:22:09 1266 days ago 1609957329 IN Contract Creation0 ETH 0.0669085 76 Latest 25 internal transactions (View All)
Advanced mode:Parent Transaction Hash Block From To Value 13495221 2021-10-26 20:55:55 973 days ago 1635281755 14.76937084 ETH 13458446 2021-10-21 2:49:18 979 days ago 1634784558 2.96130714 ETH 13454954 2021-10-20 13:46:27 980 days ago 1634737587 0.0004375 ETH 13454854 2021-10-20 13:26:20 980 days ago 1634736380 0.002625 ETH 13454836 2021-10-20 13:21:40 980 days ago 1634736100 0.0336875 ETH 13454810 2021-10-20 13:15:24 980 days ago 1634735724 0.0023625 ETH 13454777 2021-10-20 13:08:05 980 days ago 1634735285 0.0000875 ETH 13454774 2021-10-20 13:06:07 980 days ago 1634735167 0.0016625 ETH 13454747 2021-10-20 13:00:43 980 days ago 1634734843 0.0008925 ETH 13454716 2021-10-20 12:54:12 980 days ago 1634734452 0.000525 ETH 13454643 2021-10-20 12:36:04 980 days ago 1634733364 0.000875 ETH 13454541 2021-10-20 12:15:07 980 days ago 1634732107 0.004375 ETH 13454523 2021-10-20 12:10:56 980 days ago 1634731856 0.00000472 ETH 13454523 2021-10-20 12:10:56 980 days ago 1634731856 0.000875 ETH 13454504 2021-10-20 12:06:14 980 days ago 1634731574 0.0175 ETH 13454480 2021-10-20 12:01:30 980 days ago 1634731290 0.0000875 ETH 13454439 2021-10-20 11:50:45 980 days ago 1634730645 0.0004375 ETH 13454421 2021-10-20 11:46:37 980 days ago 1634730397 0.000105 ETH 13454402 2021-10-20 11:40:14 980 days ago 1634730014 0.00004375 ETH 13454389 2021-10-20 11:38:05 980 days ago 1634729885 0.005775 ETH 13454352 2021-10-20 11:29:06 980 days ago 1634729346 0.0004375 ETH 13454342 2021-10-20 11:26:45 980 days ago 1634729205 0.002625 ETH 13454336 2021-10-20 11:25:06 980 days ago 1634729106 0.00056875 ETH 13454125 2021-10-20 10:35:38 980 days ago 1634726138 0.000875 ETH 13454122 2021-10-20 10:35:03 980 days ago 1634726103 0.0027125 ETH Loading...LoadingSimilar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xe553aF3D...54F108ad5The constructor portion of the code might be different and could alter the actual behaviour of the contractContract Name:FeeDistributor
Compiler Versionv0.6.12+commit.27d51765
Contract Source Code (Solidity)
- library SafeMath
- - function add(uint256 a, uint256 b)
- - function sub(uint256 a, uint256 b)
- - function sub(uint256 a, uint256 b, st ...
- - function mul(uint256 a, uint256 b)
- - function div(uint256 a, uint256 b)
- - function div(uint256 a, uint256 b, st ...
- - function mod(uint256 a, uint256 b)
- - function mod(uint256 a, uint256 b, st ...
- interface IERC20
- - function totalSupply()
- - function balanceOf(address account)
- - function transfer(address recipient, ...
- - function allowance(address owner, add ...
- - function approve(address spender, uin ...
- - function transferFrom(address sender, ...
- library Address
- - function isContract(address account)
- - function sendValue(address payable re ...
- - function functionCall(address target, ...
- - function functionCall(address target, ...
- - function functionCallWithValue(addres ...
- - function functionCallWithValue(addres ...
- - function functionStaticCall(address t ...
- - function functionStaticCall(address t ...
- - function _verifyCallResult(bool succe ...
- library SafeERC20
- - function safeTransfer(IERC20 token, a ...
- - function safeTransferFrom(IERC20 toke ...
- - function safeApprove(IERC20 token, ad ...
- - function safeIncreaseAllowance(IERC20 ...
- - function safeDecreaseAllowance(IERC20 ...
- - function _callOptionalReturn(IERC20 t ...
- library Constants
- contract FeeDistributor *
- - function withdraw(IERC20[] calldata t ...
- - function tokenBalance(IERC20 token)
- - function earned(IERC20 token, address ...
- - function available(IERC20 token, addr ...
- - function _transfer(IERC20 token, uint ...
/** *Submitted for verification at Etherscan.io on 2021-01-06 */ // SPDX-License-Identifier: MIT // File: @openzeppelin/contracts/math/SafeMath.sol pragma solidity >=0.6.0 <0.8.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; } } // File: @openzeppelin/contracts/token/ERC20/IERC20.sol pragma solidity >=0.6.0 <0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } // File: @openzeppelin/contracts/utils/Address.sol pragma solidity >=0.6.2 <0.8.0; /** * @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 on 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"); require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: value }(data); return _verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.staticcall(data); return _verifyCallResult(success, returndata, errorMessage); } function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) { 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); } } } } // File: @openzeppelin/contracts/token/ERC20/SafeERC20.sol pragma solidity >=0.6.0 <0.8.0; /** * @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"); } } } // File: contracts/Constants.sol pragma solidity ^0.6.0; library Constants { address internal constant ETH = 0x0000000000000000000000000000000000000000; } // File: contracts/FeeDistributor.sol pragma solidity ^0.6.0; contract FeeDistributor { using SafeMath for uint256; using SafeERC20 for IERC20; using Address for address; using Address for address payable; event Withdrawal(IERC20[] tokens, address indexed recipient); uint256 public immutable totalShares; // recipient => number of shares mapping(address => uint256) public shares; // Total amount of tokens that have been withdrawn mapping(IERC20 => uint256) internal _totalWithdrawn; // Total amount of tokens that have been withdrawn by a recipient mapping(IERC20 => mapping(address => uint256)) internal _withdrawn; constructor(address[] memory recipients, uint256[] memory _shares) public { require(recipients.length != 0, "EMPTY_RECIPIENTS"); require(recipients.length == _shares.length, "RECIPIENT_SHARE_LEN"); uint256 _totalShares; for (uint256 i = 0; i < recipients.length; i++) { require(_shares[i] != 0, "INVALID_SHARES"); address recipient = recipients[i]; require(recipient != address(0), "INVALID_RECIPIENT"); require(shares[recipient] == 0, "DUPLICATE_RECIPIENT"); uint256 newRecipientShares = _shares[i]; _totalShares = _totalShares.add(newRecipientShares); shares[recipient] = newRecipientShares; } totalShares = _totalShares; } /// @dev Receives ether fallback() external payable {} /** * @dev Withdraws the specified tokens or ETH * @param tokens Array of tokens to withdraw * @param tokens Array of amounts to withdraw for each token */ function withdraw(IERC20[] calldata tokens) external { for (uint256 i = 0; i < tokens.length; i++) { IERC20 token = tokens[i]; uint256 amount = available(token, msg.sender); _withdrawn[token][msg.sender] += amount; _totalWithdrawn[token] += amount; _transfer(token, amount); } emit Withdrawal(tokens, msg.sender); } /** * @dev Returns the amount of ETH or ERC20 tokens held by this contract * @param token Token address (address(0) for ETH) */ function tokenBalance(IERC20 token) public view returns (uint256) { if (address(token) == Constants.ETH) { return address(this).balance; } else { return token.balanceOf(address(this)); } } /** * @dev Returns the total amount of ETH or ERC20 tokens that a recipient has earned * @param token Token address (address(0) for ETH) * @param recipient Address of the recipient */ function earned(IERC20 token, address recipient) public view returns (uint256) { uint256 totalReceived = tokenBalance(token).add(_totalWithdrawn[token]); return totalReceived.mul(shares[recipient]).div(totalShares); } /** * @dev Returns the amount of ETH or ERC20 tokens a recipient can withdraw * @param token Token address (address(0) for ETH) * @param recipient Address of the recipient */ function available(IERC20 token, address recipient) public view returns (uint256) { return earned(token, recipient).sub(_withdrawn[token][recipient]); } /** * @dev Internal function that transfers ETH or ERC20 tokens * @param token Token address (address(0) for ETH) * @param amount Amount of tokens or ETH to transfer */ function _transfer(IERC20 token, uint256 amount) internal { if (address(token) == Constants.ETH) { msg.sender.sendValue(amount); } else { token.safeTransfer(msg.sender, amount); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
[{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"_shares","type":"uint256[]"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"contract IERC20[]","name":"tokens","type":"address[]"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"}],"name":"Withdrawal","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"recipient","type":"address"}],"name":"available","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"recipient","type":"address"}],"name":"earned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"shares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"name":"tokenBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20[]","name":"tokens","type":"address[]"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Deployed Bytecode
0x6080604052600436106100655760003560e01c8063bd5dec9811610043578063bd5dec981461011e578063ce7c2ac21461019b578063eedc966a146101db57610065565b8063211dc32d146100675780633a98ef39146100c1578063bbe430de146100d6575b005b34801561007357600080fd5b506100af6004803603604081101561008a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661021b565b60408051918252519081900360200190f35b3480156100cd57600080fd5b506100af6102c0565b3480156100e257600080fd5b506100af600480360360408110156100f957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166102e4565b34801561012a57600080fd5b506100656004803603602081101561014157600080fd5b81019060208101813564010000000081111561015c57600080fd5b82018360208201111561016e57600080fd5b8035906020019184602083028401116401000000008311171561019057600080fd5b509092509050610334565b3480156101a757600080fd5b506100af600480360360208110156101be57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661046f565b3480156101e757600080fd5b506100af600480360360208110156101fe57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610481565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604081205481906102569061025086610481565b90610545565b73ffffffffffffffffffffffffffffffffffffffff84166000908152602081905260409020549091506102b6907f0000000000000000000000000000000000000000000000000000000000002710906102b09084906105b9565b9061062c565b9150505b92915050565b7f000000000000000000000000000000000000000000000000000000000000271081565b73ffffffffffffffffffffffffffffffffffffffff808316600090815260026020908152604080832093851683529290529081205461032d90610327858561021b565b9061066e565b9392505050565b60005b818110156103d257600083838381811061034d57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff169050600061037882336102e4565b73ffffffffffffffffffffffffffffffffffffffff831660008181526002602090815260408083203384528252808320805486019055928252600190522080548201905590506103c882826106b0565b5050600101610337565b503373ffffffffffffffffffffffffffffffffffffffff167faccd1e9602ed0fde9ec661925cfd2b998a57862a6f7519760106b303d21ef25d838360405180806020018281038252848482818152602001925060200280828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039550909350505050a25050565b60006020819052908152604090205481565b600073ffffffffffffffffffffffffffffffffffffffff82166104a5575047610540565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b15801561051157600080fd5b505afa158015610525573d6000803e3d6000fd5b505050506040513d602081101561053b57600080fd5b505190505b919050565b60008282018381101561032d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000826105c8575060006102ba565b828202828482816105d557fe5b041461032d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180610d736021913960400191505060405180910390fd5b600061032d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506106ff565b600061032d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506107bb565b73ffffffffffffffffffffffffffffffffffffffff82166106da576106d5338261082f565b6106fb565b6106fb73ffffffffffffffffffffffffffffffffffffffff8316338361095a565b5050565b600081836107a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561076a578181015183820152602001610752565b50505050905090810190601f1680156107975780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816107b157fe5b0495945050505050565b60008184841115610827576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181815283516024840152835190928392604490910191908501908083836000831561076a578181015183820152602001610752565b505050900390565b8047101561089e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015290519081900360640190fd5b60405160009073ffffffffffffffffffffffffffffffffffffffff84169083908381818185875af1925050503d80600081146108f6576040519150601f19603f3d011682016040523d82523d6000602084013e6108fb565b606091505b5050905080610955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180610d13603a913960400191505060405180910390fd5b505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526109559084906060610a44826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16610aba9092919063ffffffff16565b80519091501561095557808060200190516020811015610a6357600080fd5b5051610955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180610d94602a913960400191505060405180910390fd5b6060610ac98484600085610ad1565b949350505050565b606082471015610b2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180610d4d6026913960400191505060405180910390fd5b610b3585610c8c565b610ba057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b60208310610c0a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610bcd565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610c6c576040519150601f19603f3d011682016040523d82523d6000602084013e610c71565b606091505b5091509150610c81828286610c92565b979650505050505050565b3b151590565b60608315610ca157508161032d565b825115610cb15782518084602001fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181815284516024840152845185939192839260440191908501908083836000831561076a57818101518382015260200161075256fe416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a264697066735822122049202c187ccd4dd4416cb6cf436738655c43cfdfe0718c51389c3a0c079e20c764736f6c634300060c0033
Deployed Bytecode Sourcemap
19239:3840:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21949:272;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21949:272:0;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;19479:36;;;;;;;;;;;;;:::i;22433:198::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22433:198:0;;;;;;;;;;;:::i;20911:412::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20911:412:0;;-1:-1:-1;20911:412:0;-1:-1:-1;20911:412:0;:::i;19562:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19562:41:0;;;;:::i;21482:246::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21482:246:0;;;;:::i;21949:272::-;22119:22;;;22046:7;22119:22;;;:15;:22;;;;;;22046:7;;22095:47;;:19;22135:5;22095:12;:19::i;:::-;:23;;:47::i;:::-;22178:17;;;:6;:17;;;;;;;;;;;22071:71;;-1:-1:-1;22160:53:0;;22201:11;;22160:36;;22071:71;;22160:17;:36::i;:::-;:40;;:53::i;:::-;22153:60;;;21949:272;;;;;:::o;19479:36::-;;;:::o;22433:198::-;22594:17;;;;22533:7;22594:17;;;:10;:17;;;;;;;;:28;;;;;;;;;;;;22565:58;;:24;22605:5;22612:9;22565:6;:24::i;:::-;:28;;:58::i;:::-;22558:65;22433:198;-1:-1:-1;;;22433:198:0:o;20911:412::-;20980:9;20975:295;20995:17;;;20975:295;;;21034:12;21049:6;;21056:1;21049:9;;;;;;;;;;;;;;;21034:24;;21073:14;21090:28;21100:5;21107:10;21090:9;:28::i;:::-;21133:17;;;;;;;:10;:17;;;;;;;;21151:10;21133:29;;;;;;;:39;;;;;;21187:22;;;-1:-1:-1;21187:22:0;;;:32;;;;;;21073:45;-1:-1:-1;21234:24:0;21144:5;21073:45;21234:9;:24::i;:::-;-1:-1:-1;;21014:3:0;;20975:295;;;;21304:10;21285:30;;;21296:6;;21285:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21285:30:0;;-1:-1:-1;;;;21285:30:0;20911:412;;:::o;19562:41::-;;;;;;;;;;;;;;:::o;21482:246::-;21539:7;21563:31;;;21559:162;;-1:-1:-1;21618:21:0;21611:28;;21559:162;21679:30;;;;;;21703:4;21679:30;;;;;;:15;;;;;;:30;;;;;;;;;;;;;;:15;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21679:30:0;;-1:-1:-1;21559:162:0;21482:246;;;:::o;964:181::-;1022:7;1054:5;;;1078:6;;;;1070:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2318:471;2376:7;2621:6;2617:47;;-1:-1:-1;2651:1:0;2644:8;;2617:47;2688:5;;;2692:1;2688;:5;:1;2712:5;;;;;:10;2704:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3265:132;3323:7;3350:39;3354:1;3357;3350:39;;;;;;;;;;;;;;;;;:3;:39::i;1428:136::-;1486:7;1513:43;1517:1;1520;1513:43;;;;;;;;;;;;;;;;;:3;:43::i;22837:239::-;22910:31;;;22906:163;;22958:28;:10;22979:6;22958:20;:28::i;:::-;22906:163;;;23019:38;:18;;;23038:10;23050:6;23019:18;:38::i;:::-;22837:239;;:::o;3893:278::-;3979:7;4014:12;4007:5;3999:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4038:9;4054:1;4050;:5;;;;;;;3893:278;-1:-1:-1;;;;;3893:278:0:o;1867:192::-;1953:7;1989:12;1981:6;;;;1973:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2025:5:0;;;1867:192::o;10358:397::-;10473:6;10448:21;:31;;10440:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10623:35;;10605:12;;10623:14;;;;10646:6;;10605:12;10623:35;10605:12;10623:35;10646:6;10623:14;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10604:54;;;10677:7;10669:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10358:397;;;:::o;15918:177::-;16028:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16051:23;16028:58;;;16001:86;;16021:5;;18647:23;18673:69;18701:4;18673:69;;;;;;;;;;;;;;;;;18681:5;18673:27;;;;:69;;;;;:::i;:::-;18757:17;;18647:95;;-1:-1:-1;18757:21:0;18753:224;;18899:10;18888:30;;;;;;;;;;;;;;;-1:-1:-1;18888:30:0;18880:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11919:195;12022:12;12054:52;12076:6;12084:4;12090:1;12093:12;12054:21;:52::i;:::-;12047:59;11919:195;-1:-1:-1;;;;11919:195:0:o;12971:530::-;13098:12;13156:5;13131:21;:30;;13123:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13223:18;13234:6;13223:10;:18::i;:::-;13215:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13349:12;13363:23;13390:6;:11;;13410:5;13418:4;13390:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13348:75;;;;13441:52;13459:7;13468:10;13480:12;13441:17;:52::i;:::-;13434:59;12971:530;-1:-1:-1;;;;;;;12971:530:0:o;9001:422::-;9368:20;9407:8;;;9001:422::o;14507:742::-;14622:12;14651:7;14647:595;;;-1:-1:-1;14682:10:0;14675:17;;14647:595;14796:17;;:21;14792:439;;15059:10;15053:17;15120:15;15107:10;15103:2;15099:19;15092:44;15007:148;15195:20;;;;;;;;;;;;;;;;;;;;15202:12;;15195:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Swarm Source
ipfs://49202c187ccd4dd4416cb6cf436738655c43cfdfe0718c51389c3a0c079e20c7
Loading...LoadingLoading...Loading
Loading...Loading
Loading...LoadingLoading...LoadingLoading...LoadingLoading...LoadingLoading...LoadingMultichain Portfolio | 26 Chains
Chain Token Portfolio % Price Amount Value ETH 99.90% $4,689,745.48 8.75 $41,035,272.99 ETH 0.02% $0.999696 6,958.3319 $6,956.22 ETH 0.01% $0.998288 4,253.8865 $4,246.6 ETH <0.01% $60,942 0.0445 $2,714.54 ETH <0.01% $73.57 29.0705 $2,138.71 ETH <0.01% $3,341.59 0.5355 $1,789.57 ETH <0.01% $0.996887 1,628.8829 $1,623.81 ETH <0.01% $9.2 145.873 $1,342.03 ETH <0.01% $0.02352 53,571.534 $1,259.98 ETH <0.01% $22.68 54.9553 $1,246.39 ETH <0.01% $75.09 14.7631 $1,108.56 ETH <0.01% $2,335.73 0.47 $1,097.78 ETH <0.01% $0.547818 1,891.0863 $1,035.97 ETH <0.01% $0.332521 2,885.2032 $959.39 ETH <0.01% $0.90119 866.0013 $780.43 ETH <0.01% $21,283 0.033 $703.08 ETH <0.01% $0.023924 28,845.2464 $690.1 ETH <0.01% $1.96 291.7612 $571.85 ETH <0.01% $13.87 39.958 $554.22 ETH <0.01% $0.899623 573.432 $515.87 ETH <0.01% $0.107828 4,761.2398 $513.39 ETH <0.01% $0.329796 1,477.3102 $487.21 ETH <0.01% $5,723.53 0.0774 $443.15 ETH <0.01% $0.051467 8,143.9204 $419.14 ETH <0.01% $0.99684 402.81 $401.54 ETH <0.01% $0.355191 1,082.9332 $384.65 ETH <0.01% $8.43 44.4045 $374.33 ETH <0.01% $0.176835 1,926.7379 $340.71 ETH <0.01% $0.189285 1,779.15 $336.77 ETH <0.01% $0.260983 1,247.9372 $325.69 ETH <0.01% $0.217561 1,480.6322 $322.13 ETH <0.01% $0.000017 18,504,853.265 $317.73 ETH <0.01% $0.99396 311.411 $309.53 ETH <0.01% $0.118768 2,439.6201 $289.75 ETH <0.01% $0.816291 350.653 $286.23 ETH <0.01% $1.08 259.17 $278.61 ETH <0.01% $1.15 239.0129 $274.86 ETH <0.01% $100.55 2.3334 $234.62 ETH <0.01% $0.030585 7,547.6561 $230.84 ETH <0.01% $0.52593 416.8828 $219.25 ETH <0.01% $0.358202 570.5615 $204.38 ETH <0.01% $7.5 25.85 $193.87 ETH <0.01% $0.198964 966.1946 $192.24 ETH <0.01% $66.89 2.3326 $156.03 ETH <0.01% $0.149008 998.8014 $148.83 ETH <0.01% $0.612696 235.7915 $144.47 ETH <0.01% $48.11 2.8348 $136.38 ETH <0.01% $3.17 42.763 $135.61 ETH <0.01% $9.07 14.1962 $128.76 ETH <0.01% $13.78 8.9516 $123.35 ETH <0.01% $0.004825 24,653.7841 $118.96 ETH <0.01% $0.039455 2,888.7287 $113.98 ETH <0.01% $0.101403 1,010.4958 $102.47 ETH <0.01% $0.00178 56,030.0209 $99.74 ETH <0.01% $0.047827 1,996.6613 $95.49 ETH <0.01% $3.53 26.5003 $93.57 ETH <0.01% $0.99714 89.753 $89.5 ETH <0.01% $4,498.89 0.0196 $88.33 ETH <0.01% $0.408696 204.4783 $83.57 ETH <0.01% $0.072885 1,046.8073 $76.3 ETH <0.01% $0.059759 1,260.4561 $75.32 ETH <0.01% $0.886424 82.8141 $73.41 ETH <0.01% $2.19 27.7611 $60.8 ETH <0.01% $0.170335 341.0234 $58.09 ETH <0.01% $0.100103 571.0188 $57.16 ETH <0.01% $0.336191 169.4719 $56.97 ETH <0.01% $0.053409 1,065.3204 $56.9 ETH <0.01% $16.73 3.2738 $54.77 ETH <0.01% $0.007411 7,375.9746 $54.66 ETH <0.01% $16.53 3.2659 $53.99 ETH <0.01% $66.86 0.7463 $49.9 ETH <0.01% $14.42 3.3302 $48.02 ETH <0.01% $0.1216 393.75 $47.88 ETH <0.01% $2.61 16.1615 $42.18 ETH <0.01% $90.2 0.4548 $41.03 ETH <0.01% $0.019015 2,017.1743 $38.36 ETH <0.01% $0.763476 48.125 $36.74 ETH <0.01% $0.166165 187.504 $31.16 ETH <0.01% $0.382346 81.0446 $30.99 ETH <0.01% $0.007001 3,835.9116 $26.86 ETH <0.01% $0.066876 393.75 $26.33 ETH <0.01% $2.08 12.4811 $25.96 ETH <0.01% $0.127079 199.4903 $25.35 ETH <0.01% $0.006344 3,850 $24.43 ETH <0.01% $0.005741 3,692.68 $21.2 ETH <0.01% $0.043402 476.3716 $20.68 ETH <0.01% $17.61 1.1729 $20.65 ETH <0.01% $0.000014 1,369,302.5348 $19.19 ETH <0.01% $0.457969 36.1882 $16.57 ETH <0.01% $0.009281 1,781.5174 $16.53 ETH <0.01% $0.299688 55.1213 $16.52 ETH <0.01% $0.029262 546.3729 $15.99 ETH <0.01% $0.001549 9,610.826 $14.88 ETH <0.01% $0.030599 481.2325 $14.73 ETH <0.01% $0.013653 1,054.2065 $14.39 ETH <0.01% $0.003865 3,448.5238 $13.33 ETH <0.01% $0.044459 292.3988 $13 ETH <0.01% $0.126039 96.2914 $12.14 ETH <0.01% $1.38 8.75 $12.08 ETH <0.01% $18.7 0.6388 $11.94 ETH <0.01% $0.090454 131.25 $11.87 ETH <0.01% $0.241897 46.5332 $11.26 ETH <0.01% $0.074306 144.9361 $10.77 ETH <0.01% $0.564376 16.2911 $9.19 ETH <0.01% $0.004568 1,680.5058 $7.68 ETH <0.01% $0.030812 236.9783 $7.3 ETH <0.01% $0.105061 68.0416 $7.15 ETH <0.01% $2.95 2.3238 $6.86 ETH <0.01% $0.03494 195.0115 $6.81 ETH <0.01% $17.58 0.3872 $6.81 ETH <0.01% $0.826731 8.1009 $6.7 ETH <0.01% $29.64 0.2177 $6.45 ETH <0.01% $0.005369 985.6029 $5.29 ETH <0.01% $1.12 4.689 $5.25 ETH <0.01% $0.163698 29.3332 $4.8 ETH <0.01% $0.07908 58.5929 $4.63 ETH <0.01% $0.113747 40.0357 $4.55 ETH <0.01% $0.509493 8.8649 $4.52 ETH <0.01% $0.000379 11,524.9914 $4.37 ETH <0.01% $0.015592 270.8571 $4.22 ETH <0.01% $3.14 1.3044 $4.1 ETH <0.01% $0.271323 14.2834 $3.88 ETH <0.01% $0.016974 227.5 $3.86 ETH <0.01% $0.702824 5.2203 $3.67 ETH <0.01% $0.826731 4.3762 $3.62 ETH <0.01% $0.103738 31.8173 $3.3 ETH <0.01% $0.198319 15.545 $3.08 ETH <0.01% $0.027524 110.4053 $3.04 ETH <0.01% $0.005383 492.5493 $2.65 ETH <0.01% $0.133019 19.3874 $2.58 ETH <0.01% $0.00093 2,569.8269 $2.39 ETH <0.01% $0.002537 875 $2.22 ETH <0.01% $0.001315 1,602 $2.11 ETH <0.01% $0.000325 6,445.9784 $2.1 ETH <0.01% $0.003907 524.9035 $2.05 ETH <0.01% $568.08 0.00340574 $1.93 ETH <0.01% $0.000681 2,702.9679 $1.84 ETH <0.01% $0.119939 14.0439 $1.68 ETH <0.01% $0.210271 7.5065 $1.58 ETH <0.01% $0.037786 39.375 $1.49 ETH <0.01% $0.00023 5,250 $1.21 ETH <0.01% $0.014556 74.375 $1.08 ETH <0.01% $0.002293 455.25 $1.04 ETH <0.01% $0.010666 87.5 $0.9332 ETH <0.01% $2.25 0.385 $0.8662 ETH <0.01% $0.000774 1,072.4986 $0.83 ETH <0.01% $21.04 0.0392 $0.8242 ETH <0.01% $0.733103 1.105 $0.81 ETH <0.01% $0.051733 14.875 $0.7695 ETH <0.01% $0.066912 10.7786 $0.7212 ETH <0.01% $0.589902 1.2077 $0.7124 ETH <0.01% $0.000141 3,289.4742 $0.4646 ETH <0.01% $0.007927 45.4058 $0.3599 ETH <0.01% $0.000667 411.8189 $0.2746 ETH <0.01% $0.017764 15.1266 $0.2687 ETH <0.01% $0.000945 234.0744 $0.2211 ETH <0.01% $0.001389 141.9662 $0.1971 ETH <0.01% $0.001478 114.8174 $0.1696 ETH Ether (ETH)<0.01% $3,341.59 0.000000000000000001 <$0.000001 MATIC <0.01% $0.009417 25.9898 $0.2447 Loading...Loading[ Download: CSV Export ][ Download: CSV Export ]A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.
Address QR Code
My Address - Private Name Tag or Note
My Name Tag:
Private Name Tags (up to 35 characters) can be used for easy identification of addressesPrivate Note:
A private note (up to 500 characters) can be attached to this address.
Please DO NOT store any passwords or private keys here.Compiler specific version warnings:
The compiled contract might be susceptible to FullInlinerNonExpressionSplitArgumentEvaluationOrder (low-severity), MissingSideEffectsOnSelectorAccess (low-severity), AbiReencodingHeadOverflowWithStaticArrayCleanup (medium-severity), DirtyBytesArrayToStorage (low-severity), DataLocationChangeInInternalOverride (very low-severity), NestedCalldataArrayAbiReencodingSizeValidation (very low-severity), SignedImmutables (very low-severity), ABIDecodeTwoDimensionalArrayMemory (very low-severity), KeccakCaching (medium-severity), EmptyByteArrayCopy (medium-severity), DynamicArrayCleanup (medium-severity) Solidity Compiler Bugs.
Connect a Wallet
Connecting wallet for read function is optional, useful if you want to call certain functions or simply use your wallet's node.Connect a Wallet
Connecting wallet for read function is optional, useful if you want to call certain functions or simply use your wallet's node.Connect a Wallet
Connecting wallet for read function is optional, useful if you want to call certain functions or simply use your wallet's node.Before You Copy
This website uses cookies to improve your experience. By continuing to use this website, you agree to its Terms and Privacy Policy.