Ready to onboard to Polygon? With MetaMask Portfolio, you're in control.
15M+ users trust MoonPay. Checkout with your preferred payment method.
Get up to 0.5% cashback per purchase and receive daily interest.
3000+ Slots, 20+ Cryptos, 75K Raffle, Sports Promos - World's largest Crypto Casino & Sportsbook - Provably Fair!
Play in crypto to make deposits and withdrawals easy! Register and get a free daily shot at a progressive jackpot.
Play and Win POL!
Daily free Spin 50000 Matic ,760% Deposit Bonus, 20%Rakeback, And Get 1000000 Matic free bonus on BC.Game
Deposit BONUS 300% and Cashbacks. without verification!
Join Metawin for the ultimate Web3 Casino Experience. Frictionless Signup & Instant Withdrawals. Play Now & Earn $MWIN Points.
Overview
MATIC Balance
MATIC Value
$2.39 (@ $0.36/MATIC)Token Holdings
Could not find any matches!
- ERC-20 Tokens (>100)20.86500963 DAI(PoS) Dai St... (DAI)$20.89@1.0010.013239 USDT(PoS) Tether... (USDT)$0.01@1.0010.00000411 miMATICmiMATIC (miMATI...)$0.00@1.000.005267 USDC.eUSD Coin (Po... (USDC.e)$0.01@0.99950.00000001 WMATICWrapped Mati... (WMATIC)$0.00@0.349943,767 AAVE [ACCESS AAVE.ASIA]! AAVE.asia (AAVE [...)12,555 $ CLAIM ON: eth-ethens.com #! ETHENA ($ CLAI...)5,000 ACCESS [ETHENA-ENA.ORG] TO FARM YOUR COINS! ETHENA DRO... (ACCESS...)13,888 $ ACCESS ON (www.ethena-vv.com) ]! ETHENA. ! ($ ACCE...)9,860 ACCESS [ETH-ENA.VIP] TO RECEIVE TOKENS! ETHNA [ETH... (ACCESS...)345,870 ACCESS [TURBO-AI.APP] TO RECEIVE YOUR COINS! TURBO [TUR... (ACCESS...)1ERC20 ***14,888 $ ACCESS [eth-ethens.com] `!ETHENA ($ ACCE...)12,500 $ ACCESS ON: ethena-ethens.com!ETHENA AIRD... ($ ACCE...)125,000 $ ACCESS ON: ethena-ethens.com!ETHENA AIRD... ($ ACCE...)13,300 $ ACCESS 0N: ethena-ethens.com!ETHNA ($ ACCE...)15,000 $ CLAlM 0N eth-ethens.com!ETHNA ($ CLAl...)10,000 $ CLAlM 0N eth-ethens.com!ETHNA ($ CLAl...)12,500 $ CLAlM 0N eth-ethens.com!ETHNA ($ CLAl...)15,500 $ CLAlM 0N eth-ethens.com!ETHNA ($ CLAl...)14,400 $ ACCESS 0N: ethena-ethens.com!ETHNA ($ ACCE...)12,500 $ ACCESS 0N: ethena-ethens.com!ETHNA ($ ACCE...)12,500 $ CLAlM 0N eth-ethens.com!ETHNA ($ CLAl...)1 10USD Airdrop kshield.io/?Ygxdhs10USD Airdro... (10USD ...)500 BUSD250busd.com (BUSD)1,001 Invite Link : https://layerzero.world/Airdrop : La... (Invite...)362.75ERC20 ***15,000 appsei.icuappsei.icu (appsei...)50,000 0B O N U S - ... (0)1,700 BASE Rewards Link : https://base-bridge.xyz/BASE (BASE ...)578 ETH Claim Link: https://base-bridge.xyz/Base (ETH Cl...)1,700 Base Airdrop Claim: https://base-bridge.xyz/Base (Base A...)1 BTCBitcoin (BTC)1 BTCBitcoin (BTC)1 BTCBitcoin (BTC)1 BTCBitcoin (BTC)1 BTCBitcoin (BTC)1 Some very long token symbol ;Bitcoin / (Some v...)10,000 $E T H - B O ... ($)10,000 $ CLAlM 0N eth-ethens.com ^ETHENA # ($ CLAl...)15,000 $ CLAlM 0N eth-ethens.com %ETHENA $ ($ CLAl...)6,600 $ ACCESS ON: ethena-ethen.comETHENA Airdr... ($ ACCE...)5,500 $ ACCESS ON: [ethena-vv.com]ETHENA Airdr... ($ ACCE...)6,000 $ ACCESS ON: [ethena-ethen.com]ETHENA Airdr... ($ ACCE...)6,500 $ ACCESS ON: eth-ethens.netETHENA Airdr... ($ ACCE...)13,300 $ ACCESS 0N: ethena-ethens.com >ETHENA { ($ ACCE...)80,000 nft.bitconnect666.comFree NFT go ... (nft.bi...)10,000 $ Check: gasfee.io AirDrop InviteGSF ($ Chec...)10,000 $ Check: gasfee.io You received a refundGSF ($ Chec...)10,000 $ Check: gasfee.io AirDrop InviteGSF ($ Chec...)100 Some very long token symbol www.ankr.com .HELLO . (Some v...)10,000 $iPEPE СLАlМ▷ipepe.clickiPEPE ($iPEPE...)10,000 $iPEPE СLАlМ▷ipepe.clickiPEPE ($iPEPE...)10,000 $iPEPE СLАlМ▷ipepe.clickiPEPE ($iPEPE...)10,000 $iPEPE СLАlМ▷ipepe.clickiPEPE ($iPEPE...)10,000 $iPEPE СLАlМ▷ipepe.clickiPEPE ($iPEPE...)1 Just holders can get: Elido.siteLido Vaucher (Just h...)10,000 DROPTECH.XYZ AIRDROPMANTA (DROPTE...)999 matic-rewards.xyzMTC (matic-...)0.345 MTKMyToken (MTK)20,000 NOT Airdrop Link https://not-rewards.xyz/NOT (NOT Ai...)50,153 pSwap⚡PolySwap (pSwap⚡)71,143,605 SCRL ( Claim Link: www.getscroll.xyz )Scroll (SCRL ...)23.9781932 SIMSimba Empire1,000 SnoodleSNOOD (Snoodl...)1 Some very long token symbol *Some very lo... (Some v...)1 Some very long token symbol /Some very lo... (Some v...)1 Some very long token symbol /Some very lo... (Some v...)1 Some very long token symbol }Some very lo... (Some v...)1 Some very long token symbolSome very lo... (Some v...)1 Some very long token symbolSome very lo... (Some v...)1 Swap it: steth-drop.xyzstETH Vouche... (Swap i...)10,000 web3stein.io | Get 50$ in ETHSTN (web3st...)10,000 web3-chess.com Airdrop $1,000,000 STNSTN (web3-c...)10,000 STEIN web3-chess.com CRYPTO CHESSSTN (STEIN ...)10,000 web3-chess.com 20ETH for playersSTN (web3-c...)10,000 STEIN-CHESS.COM | AirDrop - You are invitedSTN (STEIN-...)10,000 STEIN-CHESS.COM | AirDrop - You are invitedSTN (STEIN-...)10,000 web3stein.io | Get 50$ in ETHSTN (web3st...)1 Use just official link: TRUSTBOX.SITETRUST WALLET... (Use ju...)1 Use just official link: Trust-earn.xyzTRUST WALLET... (Use ju...)1,000 usd-rewards.xyzUSD (usd-re...)200 USD Airdrop kshield.io/?YgxdhsUSD Airdrop ... (USD Ai...)1,000 USD Airdrop kshield.io/?YgxdhsUSD Airdrop ... (USD Ai...)100 WGCWild Goat Coin0.00000004 WBNBWrapped BNB (Wormhole)100,000,000,000,000,000ERC20 ***4,555 xBlast Airdrop Link https://xblast-app.xyzxBlast (xBlast...)3,000 xBlast AirDrop Link https://xblast-app.xyzxBlast (xBlast...)3,921 xBlast AirDrop Link https://xblast-app.xyzxBlast (xBlast...)3,545 xBlast AirDrop Link https://xblast-app.xyzxBlast (xBlast...)1,765 xBlast AirDrop Link https://xblast-app.xyzxBlast (xBlast...)300 xBlast Giveaway link https://xblast-app.xyz/xBlast Givea... (xBlast...)80,000 Pepe-erc.vipYou Earned $... (Pepe-e...)1 zerolends.comzerolends.co... (zerole...)12,500 ZKsync AirDrop 2.0 link https://zk-chain.xyz/ZKsync: AirD... (ZKsync...)778 ZRO Reward Link: https://layerzero.world/ZRO (ZRO Re...)1,000 ZRO Invite Link : https://zero-bridge.xyz/ZRO (ZRO In...)7,864 TokenERC-20 TOKEN*[Suspicious]900,000,000 TokenERC-20 TOKEN*[Suspicious]NFT Tokens (>100)drop-coins.xyz$100 GET REWARDERC-1155NFT Airdrop Round1,000 DAIERC-115510 Collection10 CollectionERC-72110 Collection10 CollectionERC-72110 Collection10 CollectionERC-721NFT Airdrop Round1000 DAIERC-1155NFT Airdrop1000 DAIERC-1155http://usdcash.xyz/1000$ AirDropERC-1155usd-bonus.xyz1000$ AirDropx2ERC-1155usd-bonus.xyz1000$ AirDropERC-11551000rewards.xyz1000$ AirDropERC-11551000rewards.xyz1000$ AirDropERC-11551000-rewards.xyz1000$ AirDropERC-11551000-rewards.xyz1000$ AirDropERC-11551000-rewards.xyz1000$ AirDropERC-11551000-rewards.xyz1000$ AirDropERC-11551000-rewards.xyz1000$ AirDropERC-1155rewards-1000.xyz1000$ AirDropERC-1155rewards-circle.xyz1000$ RewardERC-1155coin-drop.xyz2000$ Drop RewardERC-1155drop-usdt.xyz2000$ RewardERC-1155drops-usdt.xyz2000$ RewardERC-1155usdt-rewards.xyz2000$ RewardERC-1155usdt-rewards.xyz2000$ RewardERC-1155NFT Voucher5000 USDCERC-1155coin-reward.xyz5000$ AirDropERC-1155coin-reward.xyz5000$ AirDropERC-1155NFTVoucher5000$ CYBERERC-1155NFTVoucher5000$ CYBERERC-1155coin-rewards.xyz5000$$$ AirDropERC-1155Vouchers50M $SHIB VoucherERC-1155drop-dai.xyz999$ RewardERC-1155AAVE-V3-POSAave Positions AirdropERC-1155AAVE-V3-POSAave Positions AirdropERC-1155AAVE-V3-POSAave Positions AirdropERC-1155ETHAirdrop at liquid-eth.xyzERC-721APE COINAPE NFT TICKETSERC-1155APE COINAPE NFT TICKETSERC-1155APE COINAPE NFT TICKETSERC-1155club-rewards.xyzReward ClubERC-1155revoke-assets.xyzSecurity Warning!ERC-1155NFT VoucherSTAXERC-1155UNI-V3-PoSUniswap V3 Positions NFT-V1ERC-1155UNI-V3-PoSUniswap V3 Positions NFT-V1ERC-1155UNI-V3-PoSUniswap V3 Positions NFT-V1ERC-1155UNI-V3-PoSUniswap V3 Positions NFT-V1ERC-1155UNI-V3-PoSUniswap V3 Positions NFT-V1ERC-1155UNI-V3-PoSUniswap V3 Positions NFT-V1ERC-1155usd-drops.xyzUSD AirDropERC-1155usd-drop.xyzUSDC AirDropERC-1155ERC-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]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]ERC-721 TOKEN*[Spam]ERC-1155 TOKEN*[Spam]
More Info
Private Name Tags
ContractCreator
Multichain Info
- Transactions
- Internal Transactions
- Token Transfers (ERC-20)
- NFT Transfers
- Contract
- Events
- Multichain Portfolio
Advanced Filter- Filter by Tx Type:
- Tx
- Internal Tx
- ERC-20
- NFTs
Latest 25 from a total of 100,450 transactions
Transaction Hash MethodBlockFromToAllbridge Bridge 60221494 2024-08-05 11:53:02 52 secs ago 1722858782 IN 3.6434466 MATIC$1.30 0.04078212 165.5474704 Allbridge Swap A... 60221476 2024-08-05 11:52:24 1 min ago 1722858744 IN 17.10076101 MATIC$6.10 0.03809487 84.66205378 Across Swap And ... 60221406 2024-08-05 11:49:54 4 mins ago 1722858594 IN 30 MATIC$10.71 0.03318125 115.60123111 Stargate Swap An... 60221330 2024-08-05 11:47:14 6 mins ago 1722858434 IN 5.92015642 MATIC$2.11 0.12013253 190.3291722 Stargate Swap An... 60221318 2024-08-05 11:46:48 7 mins ago 1722858408 IN 1.62191214 MATIC$0.58 0.11176253 184.69422352 On Chain Swaps 60221251 2024-08-05 11:44:02 9 mins ago 1722858242 IN 0 MATIC$0.00 0.03209023 155.12495728 Allbridge Swap A... 60221242 2024-08-05 11:43:34 10 mins ago 1722858214 IN 0.71898201 MATIC$0.26 0.05205419 144.07990801 Allbridge Swap A... 60221210 2024-08-05 11:42:26 11 mins ago 1722858146 IN 107.12988909 MATIC$38.23 0.08416086 189.90693108 On Chain Swaps 60221110 2024-08-05 11:38:54 15 mins ago 1722857934 IN 0 MATIC$0.00 0.04736331 221.79441936 Allbridge Swap A... 60221029 2024-08-05 11:36:02 17 mins ago 1722857762 IN 0.10076101 MATIC$0.04 0.06344208 164.11622998 Across Swap And ... 60220717 2024-08-05 11:24:26 29 mins ago 1722857066 IN 255 MATIC$91.00 0.06586982 264.77245709 On Chain Swaps 60220532 2024-08-05 11:17:54 36 mins ago 1722856674 IN 0 MATIC$0.00 0.03431457 165.68524854 Stargate Swap An... 60220271 2024-08-05 11:08:06 45 mins ago 1722856086 IN 1.62191214 MATIC$0.58 0.09415217 154.54493379 Stargate Bridge 60220014 2024-08-05 10:58:58 54 mins ago 1722855538 IN 2.24230842 MATIC$0.80 0.0576155 113.23334406 Satellite Swap A... 60219906 2024-08-05 10:54:40 1 hrs ago 1722855280 IN 0 MATIC$0.00 0.04843389 147.56218558 On Chain Swaps 60219842 2024-08-05 10:52:24 1 hr ago 1722855144 IN 0 MATIC$0.00 0.03088813 177.02355531 On Chain Swaps 60219809 2024-08-05 10:51:14 1 hr ago 1722855074 IN 0 MATIC$0.00 0.04227166 175.89153415 Allbridge Swap A... 60219793 2024-08-05 10:50:40 1 hr ago 1722855040 IN 1.06494454 MATIC$0.38 0.08232986 215.31860438 Allbridge Swap A... 60219558 2024-08-05 10:41:48 1 hr ago 1722854508 IN 0.70076101 MATIC$0.25 0.10756323 290.16249345 On Chain Swaps 60219406 2024-08-05 10:36:24 1 hr ago 1722854184 IN 0 MATIC$0.00 0.14685274 191.57021866 Allbridge Swap A... 60219266 2024-08-05 10:31:28 1 hr ago 1722853888 IN 99.06494454 MATIC$35.35 0.0616949 169.84049945 Allbridge Swap A... 60219240 2024-08-05 10:30:32 1 hr ago 1722853832 IN 1.06494454 MATIC$0.38 0.08232577 213.13234543 On Chain Swaps 60219216 2024-08-05 10:29:42 1 hr ago 1722853782 IN 0 MATIC$0.00 0.05111302 239.35368238 Across Swap And ... 60219189 2024-08-05 10:28:12 1 hr ago 1722853692 IN 53 MATIC$18.91 0.0309895 124.54836004 Across Swap And ... 60218914 2024-08-05 10:18:28 1 hr ago 1722853108 IN 1 MATIC$0.36 0.08418302 338.51404654 Latest 25 internal transactions (View All)
Parent Transaction Hash Block From To 60221494 2024-08-05 11:53:02 52 secs ago 1722858782 3.6434466 MATIC$1.30 60221476 2024-08-05 11:52:24 1 min ago 1722858744 0.10076101 MATIC$0.04 60221476 2024-08-05 11:52:24 1 min ago 1722858744 16.88099999 MATIC$6.02 60221476 2024-08-05 11:52:24 1 min ago 1722858744 0.119 MATIC$0.04 60221406 2024-08-05 11:49:54 4 mins ago 1722858594 29.78999999 MATIC$10.63 60221406 2024-08-05 11:49:54 4 mins ago 1722858594 0.21 MATIC$0.07 60221330 2024-08-05 11:47:14 6 mins ago 1722858434 2.24230842 MATIC$0.80 60221330 2024-08-05 11:47:14 6 mins ago 1722858434 3.65210306 MATIC$1.30 60221330 2024-08-05 11:47:14 6 mins ago 1722858434 0.02574493 MATIC$0.01 60221318 2024-08-05 11:46:48 7 mins ago 1722858408 1.62191214 MATIC$0.58 60221242 2024-08-05 11:43:34 10 mins ago 1722858214 0.10076101 MATIC$0.04 60221242 2024-08-05 11:43:34 10 mins ago 1722858214 0.61389345 MATIC$0.22 60221242 2024-08-05 11:43:34 10 mins ago 1722858214 0.00432754 MATIC$0.00 60221210 2024-08-05 11:42:26 11 mins ago 1722858146 1.06494454 MATIC$0.38 60221210 2024-08-05 11:42:26 11 mins ago 1722858146 1.06494454 MATIC$0.38 60221210 2024-08-05 11:42:26 11 mins ago 1722858146 104.26499999 MATIC$37.21 60221210 2024-08-05 11:42:26 11 mins ago 1722858146 0.735 MATIC$0.26 60221029 2024-08-05 11:36:02 17 mins ago 1722857762 0.10076101 MATIC$0.04 60220717 2024-08-05 11:24:26 29 mins ago 1722857066 253.21499999 MATIC$90.36 60220717 2024-08-05 11:24:26 29 mins ago 1722857066 1.785 MATIC$0.64 60220271 2024-08-05 11:08:06 45 mins ago 1722856086 1.62191214 MATIC$0.58 60220014 2024-08-05 10:58:58 54 mins ago 1722855538 2.24230842 MATIC$0.80 60219793 2024-08-05 10:50:40 1 hr ago 1722855040 1.06494454 MATIC$0.38 60219558 2024-08-05 10:41:48 1 hr ago 1722854508 0.10076101 MATIC$0.04 60219558 2024-08-05 10:41:48 1 hr ago 1722854508 0.5958 MATIC$0.21 Loading...LoadingSimilar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xA9cfF28f...6bA983c64The constructor portion of the code might be different and could alter the actual behaviour of the contractContract Name:RangoDiamond
Compiler Versionv0.8.16+commit.07a7930e
Optimization Enabled:Yes with 10000 runs
Other Settings:default evmVersionContract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: LGPL-3.0-only pragma solidity 0.8.16; import { LibDiamond } from "../libraries/LibDiamond.sol"; import { IDiamondCut } from "../interfaces/IDiamondCut.sol"; contract RangoDiamond { constructor(address _contractOwner, address _diamondCutFacet) payable { LibDiamond.setContractOwner(_contractOwner); // Add the diamondCut external function from the diamondCutFacet IDiamondCut.FacetCut[] memory cut = new IDiamondCut.FacetCut[](1); bytes4[] memory functionSelectors = new bytes4[](1); functionSelectors[0] = IDiamondCut.diamondCut.selector; cut[0] = IDiamondCut.FacetCut({ facetAddress: _diamondCutFacet, action: IDiamondCut.FacetCutAction.Add, functionSelectors: functionSelectors }); LibDiamond.diamondCut(cut, address(0), ""); } // Find facet for function that is called and execute the // function if a facet is found and return any value. // solhint-disable-next-line no-complex-fallback fallback() external payable { LibDiamond.DiamondStorage storage ds; bytes32 position = LibDiamond.DIAMOND_STORAGE_POSITION; // get diamond storage // solhint-disable-next-line no-inline-assembly assembly { ds.slot := position } // get facet from function selector address facet = ds.selectorToFacetAndPosition[msg.sig].facetAddress; if (facet == address(0)) { revert LibDiamond.FunctionDoesNotExist(); } // Execute external function from facet using delegatecall and return any value. // solhint-disable-next-line no-inline-assembly assembly { // copy function selector and any arguments calldatacopy(0, 0, calldatasize()) // execute function call using the facet let result := delegatecall(gas(), facet, 0, calldatasize(), 0, 0) // get any return value returndatacopy(0, 0, returndatasize()) // return any return value or error back to the caller switch result case 0 { revert(0, returndatasize()) } default { return(0, returndatasize()) } } } // Able to receive ether // solhint-disable-next-line no-empty-blocks receive() external payable {} }
// SPDX-License-Identifier: MIT pragma solidity 0.8.16; interface IDiamondCut { enum FacetCutAction { Add, Replace, Remove } // Add=0, Replace=1, Remove=2 struct FacetCut { address facetAddress; FacetCutAction action; bytes4[] functionSelectors; } /// @notice Add/replace/remove any number of functions and optionally execute /// a function with delegatecall /// @param _diamondCut Contains the facet addresses and function selectors /// @param _init The address of the contract or facet to execute _calldata /// @param _calldata A function call, including function selector and arguments /// _calldata is executed with delegatecall on _init function diamondCut( FacetCut[] calldata _diamondCut, address _init, bytes calldata _calldata ) external; event DiamondCut(FacetCut[] _diamondCut, address _init, bytes _calldata); }
// SPDX-License-Identifier: MIT pragma solidity 0.8.16; import { IDiamondCut } from "../interfaces/IDiamondCut.sol"; /// Implementation of EIP-2535 Diamond Standard /// https://eips.ethereum.org/EIPS/eip-2535 library LibDiamond { /// @dev keccak256("diamond.standard.diamond.storage"); bytes32 internal constant DIAMOND_STORAGE_POSITION = hex"c8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c"; // Diamond specific errors error IncorrectFacetCutAction(); error NoSelectorsInFacet(); error FunctionAlreadyExists(); error FacetAddressIsZero(); error FacetAddressIsNotZero(); error FacetContainsNoCode(); error FunctionDoesNotExist(); error FunctionIsImmutable(); error InitZeroButCalldataNotEmpty(); error CalldataEmptyButInitNotZero(); error InitReverted(); // ---------------- struct FacetAddressAndPosition { address facetAddress; uint96 functionSelectorPosition; // position in facetFunctionSelectors.functionSelectors array } struct FacetFunctionSelectors { bytes4[] functionSelectors; uint256 facetAddressPosition; // position of facetAddress in facetAddresses array } struct DiamondStorage { // maps function selector to the facet address and // the position of the selector in the facetFunctionSelectors.selectors array mapping(bytes4 => FacetAddressAndPosition) selectorToFacetAndPosition; // maps facet addresses to function selectors mapping(address => FacetFunctionSelectors) facetFunctionSelectors; // facet addresses address[] facetAddresses; // Used to query if a contract implements an interface. // Used to implement ERC-165. mapping(bytes4 => bool) supportedInterfaces; // owner of the contract address contractOwner; } function diamondStorage() internal pure returns (DiamondStorage storage ds) { bytes32 position = DIAMOND_STORAGE_POSITION; // solhint-disable-next-line no-inline-assembly assembly { ds.slot := position } } event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); function setContractOwner(address _newOwner) internal { DiamondStorage storage ds = diamondStorage(); address previousOwner = ds.contractOwner; ds.contractOwner = _newOwner; emit OwnershipTransferred(previousOwner, _newOwner); } function contractOwner() internal view returns (address contractOwner_) { contractOwner_ = diamondStorage().contractOwner; } function enforceIsContractOwner() internal view { require(msg.sender == diamondStorage().contractOwner, "LibDiamond: Must be contract owner"); } event DiamondCut(IDiamondCut.FacetCut[] _diamondCut, address _init, bytes _calldata); // Internal function version of diamondCut function diamondCut( IDiamondCut.FacetCut[] memory _diamondCut, address _init, bytes memory _calldata ) internal { for (uint256 facetIndex; facetIndex < _diamondCut.length; ) { IDiamondCut.FacetCutAction action = _diamondCut[facetIndex].action; if (action == IDiamondCut.FacetCutAction.Add) { addFunctions(_diamondCut[facetIndex].facetAddress, _diamondCut[facetIndex].functionSelectors); } else if (action == IDiamondCut.FacetCutAction.Replace) { replaceFunctions(_diamondCut[facetIndex].facetAddress, _diamondCut[facetIndex].functionSelectors); } else if (action == IDiamondCut.FacetCutAction.Remove) { removeFunctions(_diamondCut[facetIndex].facetAddress, _diamondCut[facetIndex].functionSelectors); } else { revert IncorrectFacetCutAction(); } unchecked { ++facetIndex; } } emit DiamondCut(_diamondCut, _init, _calldata); initializeDiamondCut(_init, _calldata); } function addFunctions(address _facetAddress, bytes4[] memory _functionSelectors) internal { if (_facetAddress == address(0)) { revert FacetAddressIsZero(); } if (_functionSelectors.length == 0) { revert NoSelectorsInFacet(); } DiamondStorage storage ds = diamondStorage(); uint96 selectorPosition = uint96(ds.facetFunctionSelectors[_facetAddress].functionSelectors.length); // add new facet address if it does not exist if (selectorPosition == 0) { addFacet(ds, _facetAddress); } for (uint256 selectorIndex; selectorIndex < _functionSelectors.length; ) { bytes4 selector = _functionSelectors[selectorIndex]; address oldFacetAddress = ds.selectorToFacetAndPosition[selector].facetAddress; if (oldFacetAddress != address(0)) { revert FunctionAlreadyExists(); } addFunction(ds, selector, selectorPosition, _facetAddress); unchecked { ++selectorPosition; ++selectorIndex; } } } function replaceFunctions(address _facetAddress, bytes4[] memory _functionSelectors) internal { if (_functionSelectors.length == 0) { revert NoSelectorsInFacet(); } if (_facetAddress == address(0)) { revert FacetAddressIsZero(); } DiamondStorage storage ds = diamondStorage(); uint96 selectorPosition = uint96(ds.facetFunctionSelectors[_facetAddress].functionSelectors.length); // add new facet address if it does not exist if (selectorPosition == 0) { addFacet(ds, _facetAddress); } for (uint256 selectorIndex; selectorIndex < _functionSelectors.length; ) { bytes4 selector = _functionSelectors[selectorIndex]; address oldFacetAddress = ds.selectorToFacetAndPosition[selector].facetAddress; if (oldFacetAddress == _facetAddress) { revert FunctionAlreadyExists(); } removeFunction(ds, oldFacetAddress, selector); addFunction(ds, selector, selectorPosition, _facetAddress); unchecked { ++selectorPosition; ++selectorIndex; } } } function removeFunctions(address _facetAddress, bytes4[] memory _functionSelectors) internal { if (_functionSelectors.length == 0) { revert NoSelectorsInFacet(); } DiamondStorage storage ds = diamondStorage(); // if function does not exist then do nothing and return if (_facetAddress != address(0)) { revert FacetAddressIsNotZero(); } for (uint256 selectorIndex; selectorIndex < _functionSelectors.length; ) { bytes4 selector = _functionSelectors[selectorIndex]; address oldFacetAddress = ds.selectorToFacetAndPosition[selector].facetAddress; removeFunction(ds, oldFacetAddress, selector); unchecked { ++selectorIndex; } } } function addFacet(DiamondStorage storage ds, address _facetAddress) internal { enforceHasContractCode(_facetAddress); ds.facetFunctionSelectors[_facetAddress].facetAddressPosition = ds.facetAddresses.length; ds.facetAddresses.push(_facetAddress); } function addFunction( DiamondStorage storage ds, bytes4 _selector, uint96 _selectorPosition, address _facetAddress ) internal { ds.selectorToFacetAndPosition[_selector].functionSelectorPosition = _selectorPosition; ds.facetFunctionSelectors[_facetAddress].functionSelectors.push(_selector); ds.selectorToFacetAndPosition[_selector].facetAddress = _facetAddress; } function removeFunction( DiamondStorage storage ds, address _facetAddress, bytes4 _selector ) internal { if (_facetAddress == address(0)) { revert FunctionDoesNotExist(); } // an immutable function is a function defined directly in a diamond if (_facetAddress == address(this)) { revert FunctionIsImmutable(); } // replace selector with last selector, then delete last selector uint256 selectorPosition = ds.selectorToFacetAndPosition[_selector].functionSelectorPosition; uint256 lastSelectorPosition = ds.facetFunctionSelectors[_facetAddress].functionSelectors.length - 1; // if not the same then replace _selector with lastSelector if (selectorPosition != lastSelectorPosition) { bytes4 lastSelector = ds.facetFunctionSelectors[_facetAddress].functionSelectors[lastSelectorPosition]; ds.facetFunctionSelectors[_facetAddress].functionSelectors[selectorPosition] = lastSelector; ds.selectorToFacetAndPosition[lastSelector].functionSelectorPosition = uint96(selectorPosition); } // delete the last selector ds.facetFunctionSelectors[_facetAddress].functionSelectors.pop(); delete ds.selectorToFacetAndPosition[_selector]; // if no more selectors for facet address then delete the facet address if (lastSelectorPosition == 0) { // replace facet address with last facet address and delete last facet address uint256 lastFacetAddressPosition = ds.facetAddresses.length - 1; uint256 facetAddressPosition = ds.facetFunctionSelectors[_facetAddress].facetAddressPosition; if (facetAddressPosition != lastFacetAddressPosition) { address lastFacetAddress = ds.facetAddresses[lastFacetAddressPosition]; ds.facetAddresses[facetAddressPosition] = lastFacetAddress; ds.facetFunctionSelectors[lastFacetAddress].facetAddressPosition = facetAddressPosition; } ds.facetAddresses.pop(); delete ds.facetFunctionSelectors[_facetAddress].facetAddressPosition; } } function initializeDiamondCut(address _init, bytes memory _calldata) internal { if (_init == address(0)) { if (_calldata.length != 0) { revert InitZeroButCalldataNotEmpty(); } } else { if (_calldata.length == 0) { revert CalldataEmptyButInitNotZero(); } if (_init != address(this)) { enforceHasContractCode(_init); } // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory error) = _init.delegatecall(_calldata); if (!success) { if (error.length > 0) { // bubble up the error revert(string(error)); } else { revert InitReverted(); } } } } function enforceHasContractCode(address _contract) internal view { uint256 contractSize; // solhint-disable-next-line no-inline-assembly assembly { contractSize := extcodesize(_contract) } if (contractSize == 0) { revert FacetContainsNoCode(); } } }
{ "optimizer": { "enabled": true, "runs": 10000 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "metadata": { "useLiteralContent": true }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
[{"inputs":[{"internalType":"address","name":"_contractOwner","type":"address"},{"internalType":"address","name":"_diamondCutFacet","type":"address"}],"stateMutability":"payable","type":"constructor"},{"inputs":[],"name":"CalldataEmptyButInitNotZero","type":"error"},{"inputs":[],"name":"FacetAddressIsNotZero","type":"error"},{"inputs":[],"name":"FacetAddressIsZero","type":"error"},{"inputs":[],"name":"FacetContainsNoCode","type":"error"},{"inputs":[],"name":"FunctionAlreadyExists","type":"error"},{"inputs":[],"name":"FunctionDoesNotExist","type":"error"},{"inputs":[],"name":"FunctionIsImmutable","type":"error"},{"inputs":[],"name":"IncorrectFacetCutAction","type":"error"},{"inputs":[],"name":"InitReverted","type":"error"},{"inputs":[],"name":"InitZeroButCalldataNotEmpty","type":"error"},{"inputs":[],"name":"NoSelectorsInFacet","type":"error"},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}]
Deployed Bytecode
0x60806040523661000b57005b600080357fffffffff000000000000000000000000000000000000000000000000000000001681527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c6020819052604090912054819073ffffffffffffffffffffffffffffffffffffffff16806100ae576040517fa9ad62f800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3660008037600080366000845af43d6000803e8080156100cd573d6000f35b3d6000fd5b7fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c132080547fffffffffffffffffffffffff0000000000000000000000000000000000000000811673ffffffffffffffffffffffffffffffffffffffff8481169182179093556040517fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c939092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60005b83518110156103225760008482815181106101ac576101ac611149565b6020026020010151602001519050600060028111156101cd576101cd611178565b8160028111156101df576101df611178565b0361022d576102288583815181106101f9576101f9611149565b60200260200101516000015186848151811061021757610217611149565b60200260200101516040015161036d565b610319565b600181600281111561024157610241611178565b0361028a5761022885838151811061025b5761025b611149565b60200260200101516000015186848151811061027957610279611149565b60200260200101516040015161062a565b600281600281111561029e5761029e611178565b036102e7576102288583815181106102b8576102b8611149565b6020026020010151600001518684815181106102d6576102d6611149565b6020026020010151604001516108f0565b6040517fe548e6b500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060010161018f565b507f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67383838360405161035693929190611215565b60405180910390a16103688282610a2c565b505050565b73ffffffffffffffffffffffffffffffffffffffff82166103ba576040517fc68ec83a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80516000036103f5576040517f92d2fe5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131d60205260408120547fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c916bffffffffffffffffffffffff8216900361047b5761047b8285610bcd565b60005b835181101561062357600084828151811061049b5761049b611149565b6020908102919091018101517fffffffff00000000000000000000000000000000000000000000000000000000811660009081529186905260409091205490915073ffffffffffffffffffffffffffffffffffffffff16801561052a576040517fa023275d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffffffff000000000000000000000000000000000000000000000000000000008216600081815260208781526040808320805473ffffffffffffffffffffffffffffffffffffffff908116740100000000000000000000000000000000000000006bffffffffffffffffffffffff8c16021782558c168085526001808c0185529285208054938401815585528385206008840401805463ffffffff60079095166004026101000a948502191660e08a901c94909402939093179092559390925287905281547fffffffffffffffffffffffff00000000000000000000000000000000000000001617905550506001918201910161047e565b5050505050565b8051600003610665576040517f92d2fe5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166106b2576040517fc68ec83a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081527fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131d60205260408120547fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c916bffffffffffffffffffffffff82169003610738576107388285610bcd565b60005b835181101561062357600084828151811061075857610758611149565b6020908102919091018101517fffffffff00000000000000000000000000000000000000000000000000000000811660009081529186905260409091205490915073ffffffffffffffffffffffffffffffffffffffff90811690871681036107ec576040517fa023275d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107f7858284610c43565b7fffffffff000000000000000000000000000000000000000000000000000000008216600081815260208781526040808320805473ffffffffffffffffffffffffffffffffffffffff908116740100000000000000000000000000000000000000006bffffffffffffffffffffffff8c16021782558c168085526001808c0185529285208054938401815585528385206008840401805463ffffffff60079095166004026101000a948502191660e08a901c94909402939093179092559390925287905281547fffffffffffffffffffffffff00000000000000000000000000000000000000001617905550506001918201910161073b565b805160000361092b576040517f92d2fe5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c73ffffffffffffffffffffffffffffffffffffffff83161561099a576040517f79c9df2200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b8251811015610a265760008382815181106109ba576109ba611149565b6020908102919091018101517fffffffff00000000000000000000000000000000000000000000000000000000811660009081529185905260409091205490915073ffffffffffffffffffffffffffffffffffffffff16610a1c848284610c43565b505060010161099d565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8216610a8457805115610a80576040517f9811686000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b8051600003610abf576040517f4220056600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82163014610ae557610ae58261110c565b6000808373ffffffffffffffffffffffffffffffffffffffff1683604051610b0d919061137d565b600060405180830381855af49150503d8060008114610b48576040519150601f19603f3d011682016040523d82523d6000602084013e610b4d565b606091505b509150915081610a2657805115610b9b57806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b929190611399565b60405180910390fd5b6040517fc53ebed500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bd68161110c565b60028201805473ffffffffffffffffffffffffffffffffffffffff90921660008181526001948501602090815260408220860185905594840183559182529290200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169091179055565b73ffffffffffffffffffffffffffffffffffffffff8216610c90576040517fa9ad62f800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff831603610cdf576040517fc3c5ec3700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081166000908152602084815260408083205473ffffffffffffffffffffffffffffffffffffffff86168452600180880190935290832054740100000000000000000000000000000000000000009091046bffffffffffffffffffffffff169291610d69916113b3565b9050808214610eb05773ffffffffffffffffffffffffffffffffffffffff841660009081526001860160205260408120805483908110610dab57610dab611149565b6000918252602080832060088304015473ffffffffffffffffffffffffffffffffffffffff8916845260018a019091526040909220805460079092166004026101000a90920460e01b925082919085908110610e0957610e09611149565b600091825260208083206008830401805463ffffffff60079094166004026101000a938402191660e09590951c929092029390931790557fffffffff0000000000000000000000000000000000000000000000000000000092909216825286905260409020805473ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000006bffffffffffffffffffffffff8516021790555b73ffffffffffffffffffffffffffffffffffffffff841660009081526001860160205260409020805480610ee657610ee66113f3565b6000828152602080822060087fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90940193840401805463ffffffff600460078716026101000a0219169055919092557fffffffff000000000000000000000000000000000000000000000000000000008516825286905260408120819055819003610623576002850154600090610f7f906001906113b3565b73ffffffffffffffffffffffffffffffffffffffff8616600090815260018089016020526040909120015490915080821461106d576000876002018381548110610fcb57610fcb611149565b60009182526020909120015460028901805473ffffffffffffffffffffffffffffffffffffffff909216925082918490811061100957611009611149565b600091825260208083209190910180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff948516179055929091168152600189810190925260409020018190555b86600201805480611080576110806113f3565b6000828152602080822083017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905590920190925573ffffffffffffffffffffffffffffffffffffffff88168252600189810190915260408220015550505050505050565b803b6000819003610a80576040517fe350060000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60005b838110156111c25781810151838201526020016111aa565b50506000910152565b600081518084526111e38160208601602086016111a7565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60006060808301818452808751808352608092508286019150828160051b8701016020808b0160005b84811015611340577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808a8503018652815188850173ffffffffffffffffffffffffffffffffffffffff825116865284820151600381106112c7577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b868601526040918201519186018a905281519081905290840190600090898701905b8083101561132b5783517fffffffff000000000000000000000000000000000000000000000000000000001682529286019260019290920191908601906112e9565b5097850197955050509082019060010161123e565b505073ffffffffffffffffffffffffffffffffffffffff8a1690880152868103604088015261136f81896111cb565b9a9950505050505050505050565b6000825161138f8184602087016111a7565b9190910192915050565b6020815260006113ac60208301846111cb565b9392505050565b818103818111156113ed577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea26469706673582212200331dbf66047b164b6604529cff12ffb7cde5940ac4ae6b71be1ead5cf157c4f64736f6c63430008100033
Loading...LoadingLoading...LoadingImplementation contract (with similar match contract ABI) at 0x5bcaf54d7fc79cd4e4269e73b9aca3ec5f54093c, likely using a custom proxy implementation.Learn more about proxy contracts in our Knowledge Base
Loading...LoadingImplementation contract (with similar match contract ABI) at 0x5bcaf54d7fc79cd4e4269e73b9aca3ec5f54093c, likely using a custom proxy implementation.Learn more about proxy contracts in our Knowledge Base
Loading...LoadingLoading...LoadingLoading...LoadingLoading...LoadingLoading...LoadingMultichain Portfolio | 26 Chains
Chain Token Portfolio % Price Amount Value BASE 33.40% $2,274.89 0.099 $225.28 BASE 0.41% $0.015188 183 $2.78 CELO 22.07% $0.370353 401.8944 $148.84 BSC 10.00% $430.03 0.1568 $67.42 BSC 1.07% $0.002817 2,563.51 $7.22 BSC 0.07% $1 0.5016 $0.5019 ETH 10.20% $2,279.13 0.0302 $68.77 ETH 0.15% $0.004869 201.3467 $0.9802 ARB 9.21% $2,275.4 0.0273 $62.14 OP 4.47% $2,278.49 0.0132 $30.13 MATIC 3.10% $1 20.865 $20.89 MATIC Polygon (MATIC)0.35% $0.356391 6.7105 $2.39 LINEA 2.95% $2,267.89 0.00875866 $19.86 ZKSYNC 1.69% $2,267.89 0.00503056 $11.41 AVAX 0.76% $18.07 0.2854 $5.16 OPBNB 0.10% $429.96 0.00157 $0.675033 [ 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 VerbatimInvalidDeduplication (low-severity), FullInlinerNonExpressionSplitArgumentEvaluationOrder (low-severity), MissingSideEffectsOnSelectorAccess (low-severity), StorageWriteRemovalBeforeConditionalTermination (medium/high-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.