ETH Price: $2,149.85 (-2.83%)

Contract

0x30922a3dBa58dfbaa1FA43e614F6509afD290660
 

Overview

ETH Balance

0.000000010000187396 ETH

Eth Value

Less Than $0.01 (@ $2,149.85/ETH)

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Confirm Transact...233818922025-09-17 9:25:47183 days ago1758101147IN
ENS Name before-sugar.eth
2 wei0.000017140.29407823
Submit Transacti...233818902025-09-17 9:25:23183 days ago1758101123IN
ENS Name before-sugar.eth
1 wei0.000016970.29633336
Confirm Transact...233535062025-09-13 10:19:47187 days ago1757758787IN
ENS Name before-sugar.eth
1 wei0.000021640.21473384
Submit First Tra...233535032025-09-13 10:19:11187 days ago1757758751IN
ENS Name before-sugar.eth
0 ETH0.000017920.20222724

Latest 3 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer233818922025-09-17 9:25:47183 days ago1758101147
ENS Name before-sugar.eth
0.00029998 ETH
New Proxy Group ...233533812025-09-13 9:54:47187 days ago1757757287
ENS Name before-sugar.eth
0.0003 ETH
0x60806040233533812025-09-13 9:54:47187 days ago1757757287  Contract Creation0 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xcC8E1C6C...365669fed
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
ProxyGroupWallet

Compiler Version
v0.8.30+commit.73712a01

Optimization Enabled:
Yes with 20 runs

Other Settings:
default evmVersion, GNU GPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2025-09-13
*/

// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.8.30;

// ungravel.eth, GroupWalletFactory, GroupWalletMaster, GroupWallet, ProxyWallet, TokenMaster, ProxyToken, PrePaidContract, AuctionMaster, BiddingProxy, intDeedMaster, extDeedMaster, IntDeedProxy, Invitations by pepihasenfuss.eth 2017-2025, Copyright (c) 2025

// GroupWallet and Ungravel is entirely based on Ethereum Name Service, "ENS", the domain name registry.
// Although, Ungravel extends ENS to 16 different chains: EVM Names across chains create an Ungravel Unified Name Space, UUNS.

//   ENS, ENSRegistryWithFallback, PublicResolver, Resolver, FIFS-Registrar, Registrar, AuctionRegistrar, BaseRegistrar, ReverseRegistrar, DefaultReverseResolver, ETHRegistrarController,
//   PriceOracle, SimplePriceOracle, StablePriceOracle, ENSMigrationSubdomainRegistrar, CustomRegistrar, Root, RegistrarMigration are contracts of "ENS", by Nick Johnson and team.
//
//   Copyright (c) 2018, True Names Limited / ENS Labs Limited
//
//   Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
//   The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
//   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

// GroupWalletFactory creates groups, installs the group share proxy contract, 
// ProxyToken (PT), and the group wallet proxy contract, ProxyGroupWallet (GWP).
// It assigns all required group member names and account addresses, it saves group structure, the shareholder structure.
// In addition, domainReport() collects all information required to load an existing group. This optimizes RPC API calls while dApp loading.
// GroupWalletFactory handles the migration and replication of entire groups, e.g. from one chain to another.
// GroupWalletFactory is the main entry point to create and to load Ungravel Groups.

interface IEnsF {
  event NewOwner(bytes32 indexed node, bytes32 indexed label, address owner);
  event Transfer(bytes32 indexed node, address owner);
  event NewResolver(bytes32 indexed node, address resolver);
  event NewTTL(bytes32 indexed node, uint64 ttl);
  event ApprovalForAll(address indexed owner, address indexed operator, bool approved);

  function setRecord(bytes32 node, address owner, address resolver, uint64 ttl) external;
  function setSubnodeRecord(bytes32 node, bytes32 label, address owner, address resolver, uint64 ttl) external;
  function setSubnodeOwner(bytes32 node, bytes32 label, address owner) external returns(bytes32);
  function setResolver(bytes32 node, address resolver) external;
  function setOwner(bytes32 node, address owner) external;
  function setTTL(bytes32 node, uint64 ttl) external;

  function owner(bytes32 node) external view returns (address);
  function resolver(bytes32 node) external view returns (address);
  function ttl(bytes32 node) external view returns (uint64);
  function recordExists(bytes32 node) external view returns (bool);
  function isApprovedForAll(address ensowner, address operator) external view returns (bool);
}
abstract contract AbstractGwfEns {
  event NewOwner(bytes32 indexed node, bytes32 indexed label, address owner);
  event Transfer(bytes32 indexed node, address owner);
  event NewTTL(bytes32 indexed node, uint64 ttl);
  event ApprovalForAll(address indexed owner, address indexed operator, bool approved);
  function setRecord(bytes32 node, address owner, address resolver, uint64 ttl) external virtual;
  function setSubnodeRecord(bytes32 node, bytes32 label, address owner, address resolver, uint64 ttl) external virtual;
  function setSubnodeOwner(bytes32 node, bytes32 label, address owner) external virtual returns(bytes32);
  function setResolver(bytes32 node, address resolver) external virtual;
  function setOwner(bytes32 node, address owner) external virtual;
  function owner(bytes32 node) public view virtual returns (address);
  function recordExists(bytes32 node) external virtual view returns (bool);
  function isApprovedForAll(address ensowner, address operator) external virtual view returns (bool);
}
abstract contract AbstractGwfReverseRegistrar {
  AbstractGwfResolver public defaultResolver;
  function claim(address owner) external virtual returns (bytes32);
  function claimWithResolver(address owner, address resolver) external virtual returns (bytes32);
  function setName(string memory name) external virtual returns (bytes32);
  function node(address addr) external virtual pure returns (bytes32);
}
abstract contract AbstractBaseRegistrar {
  event NameMigrated(uint256 indexed id, address indexed owner, uint expires);
  event NameRegistered(uint256 indexed id, address indexed owner, uint expires);
  event NameRenewed(uint256 indexed id, uint expires);
  bytes32 public baseNode;   // The namehash of the TLD this registrar owns eg, (.)eth
  IEnsF public ens;
}
abstract contract AbsIntentionsGwf {
  function saveLetterOfIntent(address target, uint nbOfShares) public virtual payable;
  function hashOfGWP(AbstractGwfGwp _gwp) internal virtual view returns (bytes32);
  function getIntendedLOIShares(address target, address investor) public virtual view returns (uint);
  function chain_name(uint chainId) public virtual pure returns (string memory);
}
abstract contract AbstractGwfGwp {
  function getGWF() external view virtual returns (address);
  function getIsOwner(address _owner) external virtual view returns (bool);
  function getOwners()                external virtual view returns (address[] memory);
  function newProxyGroupWallet_j5O(address[] calldata _owners) external virtual payable;
  function reverseENS(string calldata _domain, address _reverse) external virtual;
  function getTransactionsCount() external view virtual returns (uint);
  function getTransactionRecord(uint _tNb) external view virtual returns (uint256);
  function getIntention() public virtual view returns (AbsIntentionsGwf);
}
interface ITokenProxy {
  function newToken(uint256[] calldata _data) external payable;
}
abstract contract AbstractEthRegController {
  mapping(bytes32 domainHash =>uint theCommitment) public commitments;
  uint public minCommitmentAge;
  uint public maxCommitmentAge;
  address public nameWrapper;
  event NameRegistered(string name, bytes32 indexed label, address indexed owner, uint cost, uint expires);
  event NameRenewed(string name, bytes32 indexed label, uint cost, uint expires);
  event NewPriceOracle(address indexed oracle);
  function rentPrice(string memory name, uint duration) view external virtual returns(uint);
  function makeCommitmentWithConfig(string memory name, address owner, bytes32 secret, address resolver, address addr) pure external virtual returns(bytes32);
  function commit(bytes32 commitment) external virtual;
  function register(string calldata name, address owner, uint duration, bytes32 secret) external virtual payable;
  function registerWithConfig(string memory name, address owner, uint duration, bytes32 secret, address resolver, address addr) external virtual payable;
  function available(string memory name) external virtual view returns(bool);
  function register(string calldata name,address owner,uint256 duration,bytes32 secret,address resolver,bytes[] calldata data,bool reverseRecord,uint16 ownerControlledFuses) external virtual payable;
}
abstract contract AbstractGwfResolver {
  mapping(bytes32 domainHash => bytes hash) hashes;
  event AddrChanged(bytes32 indexed node, address a);
  event AddressChanged(bytes32 indexed node, uint coinType, bytes newAddress);
  event NameChanged(bytes32 indexed node, string name);
  event ABIChanged(bytes32 indexed node, uint256 indexed contentType);
  event PubkeyChanged(bytes32 indexed node, bytes32 x, bytes32 y);
  event TextChanged(bytes32 indexed node, string indexed indexedKey, string key);
  event ContenthashChanged(bytes32 indexed node, bytes hash);
  function ABI(bytes32 node, uint256 contentTypes) external virtual view returns (uint256, bytes memory);
  function addr(bytes32 node) external virtual view returns (address);
  function addr(bytes32 node, uint coinType) external virtual view returns(bytes memory);
  function name(bytes32 node) external virtual view returns (string memory);
  function text(bytes32 node, string calldata key) external virtual view returns (string memory);
  function supportsInterface(bytes4 interfaceId) external virtual view returns (bool);
  function setApprovalForAll(address operator, bool approved) virtual external;
  function setABI(bytes32 node, uint256 contentType, bytes calldata data) external virtual;
  function setAddr(bytes32 node, address r_addr) external virtual;
  function setAddr(bytes32 node, uint coinType, bytes calldata a) external virtual;
  function setName(bytes32 node, string calldata _name) external virtual;
  function setText(bytes32 node, string calldata key, string calldata value) external virtual;
}
abstract contract AbstractGwf {
  AbstractGwfResolver             public  resolverContract;
  AbstractEthRegController        public  controllerContract;
  AbstractBaseRegistrar           public  base;
  AbstractGwfEns                  public  ens;
  AbstractGwfReverseRegistrar     public  reverseContract;
  address                         public  GWFowner;
  mapping(uint64 timeStamp => uint256 installId) private installations;         // installTime +  proxyTokenAddr
  mapping(bytes32 hash => uint256 aCommitment)   private commitments;           // commitment  +  ownerAddr
  function version() public pure virtual returns(uint256 v);
  function getOwner(bytes32 _domainHash) external virtual view returns (address);
  function importGWP(bytes32 _dHash, uint256 commitment, uint256 installation) external virtual payable;
  function getGWProxy(bytes32 _dHash) public virtual view returns (address);
  function getProxyToken(bytes32 _domainHash) public virtual view returns (address p);
}
interface IGwpc {
  function getMasterCopy() external view returns (address);
}
abstract contract AbsAuctionRegistrar {
  function startAuction_ge0(bytes32 _hash, uint revealP) public virtual payable;
  function intentionsFromGWP(bytes32 _hash) public virtual returns (AbsIntentionsGwf);
}
abstract contract NameWrapper {
  function setSubnodeRecord(bytes32 parentNode,string memory label,address owner,address resolver,uint64 ttl,uint32 fuses,uint64 expiry) external virtual returns (bytes32 node);
  function setSubnodeOwner(bytes32 node,string calldata label,address newOwner,uint32 fuses,uint64 expiry) external virtual returns (bytes32);
  function setApprovalForAll(address operator,bool approved) external virtual;
  function setRecord(bytes32 node, address owner, address resolver, uint64 ttl) public virtual;
}
abstract contract MulToken {
  function balanceOf(address tokenOwner) external view virtual returns (uint thebalance);
  function name() external view virtual returns (string memory);
  function symbol() external view virtual returns (string memory);
  function owner() external view virtual returns (address);
  function decimals() external view virtual returns (uint8);
  function transfer(address toReceiver, uint amount) external virtual;
  function withdraw(uint256 amount) external virtual;
}
interface IMulGWP {                                                              // Abstract and access to GWP, Group Wallet Proxy contract, the Voting and Multi-Sig-contract of each group, a proxy, belonging to the GroupWallet Master
  function getIsOwner(address _owner)      external view returns (bool);
  function getOwners()                     external view returns (address[] memory);
  function getTransactionsCount()          external view returns (uint);
  function getTransactionRecord(uint _tNb) external view returns (uint256);
  function getGWF()                        external view returns (address);
  function getAllTransactions()            external view returns (uint256[] memory transArr);
  function getMasterCopy()                                                    external view returns (address);
  function nameAuctionBidBucketLabel(bytes32 labelhash, address deedContract) external;
}
abstract contract AbsMultiFour {
  address     public masterCopy; // deployer, owner of this contract
  AbstractGwf public GWF;        // GroupWalletFactory Ungravel.com
  event Deployment(address owner, address theContract);
  event DeploymentMulticall4(address theContract, bytes32 dhash);
  event Deposit(address from, uint256 value);
  function tld() public virtual view returns (string memory);
  function chainName() public virtual view returns (string memory);

  function __dNameFromSender(address _sender) public virtual view returns (string memory);
  function __nHashFromSender(address _sender) public virtual view returns (bytes32);
  function __hashFromGWP(IMulGWP _gwp) public virtual view returns (bytes32);
  function __ownerFromHash(bytes32 _dHash) public virtual view returns (address);
  function __gwpFromHash(bytes32 _dHash) public virtual view returns (IMulGWP);
  function __tokenFromHash(bytes32 _dHash) public virtual view returns (MulToken);
  function __ownersFromHash(bytes32 _dHash) public virtual view returns (address[] memory);
  function __isOwnerFromHash(bytes32 _dHash,address _owner) public virtual view returns (bool);
  function __getDomainHash(string memory _d) public virtual view returns (bytes32);
  function __isGwpFromSender(address _sender) public virtual view returns (bool);
  function __isNameSpace(bytes32 _dHash) public virtual view returns (bool);
  function __ensOwner(bytes32 _dHash) public virtual view returns (address);
  function __isGwpNameSpace(bytes32 _dHash,address _sender) public virtual view returns (bool);
  function __ungravelDomain() public virtual view returns (string memory);
  function __isUngravelWaddr(address _sender) public virtual view returns (bool);
  function __groupNameFromSender(address _sender) public virtual view returns (string memory);
  function __isMemberOfGroup(IMulGWP _gwp,address _member) public virtual view returns (bool);
  function __isGroupMember(address _sender) public virtual view returns (bool);
  function __isGwpOrMember(address _sender) public virtual view returns (bool);
  function __resolveToAddress(string memory _d) public virtual view returns (address);
  function __subdomainHash(string memory dn) public virtual view returns (bytes32);
  function __resolveSubDomain(string memory _d) public virtual view returns (address);
}

/// @title Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract.
/// @author Stefan George - <stefan@gnosis.pm> /// ProxyGroupWallet adapted and applied for GroupWallet by pepihasenfuss.eth
pragma solidity 0.8.30;
contract ProxyGroupWallet {
    address public masterCopy;

    mapping(uint256 transId => uint256 transRecord)   private tArr;
    address[]                                       private owners;
    
    address internal GWF;                                                       // GWF - GroupWalletFactory contract
    mapping(uint256 hash => bytes storageBytes) private structures;
  
    event Deposit(address dep_from, uint256 dep_value);
    event UpgradeGWP(address thisGWP, address newMaster);

    modifier onlyByTokenMaster() {
      require(IGwpc( AbstractGwf(GWF).getProxyToken( bytes32(tArr[uint256(uint160(GWF))]) ) ).getMasterCopy()==msg.sender,"own");
      _;
    }
    
    constructor(address _masterCopy, string memory _domainName, AbstractGwfReverseRegistrar _reverse) payable
    { 
      masterCopy = _masterCopy;
      _reverse.setName(_domainName);
    }
    
    fallback () external payable
    {   
        // solium-disable-next-line security/no-inline-assembly
        assembly {
            let master := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)
            if eq(calldataload(0), 0xa619486e00000000000000000000000000000000000000000000000000000000) {
                mstore(0, master)
                return(0, 0x20)
            }

            let ptr := mload(0x40)
            calldatacopy(ptr, 0, calldatasize())
            let success := delegatecall(gas(), master, ptr, calldatasize(), 0, 0)
            returndatacopy(0, 0, returndatasize())
            if eq(success, 0) { 
              if eq(returndatasize(),0) { revert(0, 0x504) }
              revert(0, returndatasize())
            }
            return(0, returndatasize())
        }
    }
    
    function upgrade(address master) external onlyByTokenMaster payable { // substituting GWM of GWP
      require(master!=address(0),"gw");
      masterCopy = master;
      emit UpgradeGWP(address(this), master);
    }

    function onERC1155Received(address,address,uint256,uint256,bytes calldata) public pure returns (bytes4) { // 0xf23a6e61
      return this.onERC1155Received.selector; // gas-efficient Multiple Token standard, accepting ERC20, ERC721
    }

    receive() external payable { // *** GWP can sell common shares to TokenProxy, thus it may receive payments ***
      emit Deposit(msg.sender, msg.value);
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_masterCopy","type":"address"},{"internalType":"string","name":"_domainName","type":"string"},{"internalType":"contract AbstractGwfReverseRegistrar","name":"_reverse","type":"address"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"dep_from","type":"address"},{"indexed":false,"internalType":"uint256","name":"dep_value","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"thisGWP","type":"address"},{"indexed":false,"internalType":"address","name":"newMaster","type":"address"}],"name":"UpgradeGWP","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"masterCopy","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"master","type":"address"}],"name":"upgrade","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]

0x608060405260405161064f38038061064f833981016040819052610022916100ea565b5f80546001600160a01b0319166001600160a01b038581169190911790915560405163c47f002760e01b81529082169063c47f0027906100669085906004016101bd565b6020604051808303815f875af1158015610082573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100a691906101f2565b50505050610209565b6001600160a01b03811681146100c3575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b80516100e5816100af565b919050565b5f5f5f606084860312156100fc575f5ffd5b8351610107816100af565b60208501519093506001600160401b03811115610122575f5ffd5b8401601f81018613610132575f5ffd5b80516001600160401b0381111561014b5761014b6100c6565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610179576101796100c6565b604052818152828201602001881015610190575f5ffd5b8160208401602083015e5f602083830101528094505050506101b4604085016100da565b90509250925092565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f60208284031215610202575f5ffd5b5051919050565b610439806102165f395ff3fe608060405260043610610037575f3560e01c80630900f010146100c7578063a619486e146100dc578063f23a6e611461011757610076565b3661007657604080513381523460208201527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c910160405180910390a1005b5f80546001600160a01b03169035632cf35bc960e11b0161009957805f5260205ff35b604051365f82375f5f3683855af49150503d5f5f3e806100c2573d6100be576105045ffd5b3d5ffd5b503d5ff35b6100da6100d5366004610323565b61015c565b005b3480156100e7575f5ffd5b505f546100fa906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610122575f5ffd5b50610143610131366004610345565b63f23a6e6160e01b9695505050505050565b6040516001600160e01b0319909116815260200161010e565b6003546001600160a01b03165f8181526001602052604090819020549051631b5576df60e11b815260048101919091523391906336aaedbe90602401602060405180830381865afa1580156101b3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d791906103e8565b6001600160a01b03166304e80e906040518163ffffffff1660e01b8152600401602060405180830381865afa158015610212573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061023691906103e8565b6001600160a01b0316146102775760405162461bcd60e51b815260206004820152600360248201526237bbb760e91b60448201526064015b60405180910390fd5b6001600160a01b0381166102b25760405162461bcd60e51b8152602060048201526002602482015261677760f01b604482015260640161026e565b5f80546001600160a01b0319166001600160a01b0383169081179091556040805130815260208101929092527fdb1f8d0eef4d79e1cdba8531eba2e5787b56b7497cbc14e9242220b6d10fac8c910160405180910390a150565b6001600160a01b0381168114610320575f5ffd5b50565b5f60208284031215610333575f5ffd5b813561033e8161030c565b9392505050565b5f5f5f5f5f5f60a0878903121561035a575f5ffd5b86356103658161030c565b955060208701356103758161030c565b9450604087013593506060870135925060808701356001600160401b0381111561039d575f5ffd5b8701601f810189136103ad575f5ffd5b80356001600160401b038111156103c2575f5ffd5b8960208284010111156103d3575f5ffd5b60208201935080925050509295509295509295565b5f602082840312156103f8575f5ffd5b815161033e8161030c56fea264697066735822122004303458c64ff9538a2fe5fadba66070142745eadf10720d9dacd26857a72fc564736f6c634300081e003300000000000000000000000084301fe7f2eec6335f2c4c7924f81b5de54563460000000000000000000000000000000000000000000000000000000000000060000000000000000000000000a58e81fe9b61b5c3fe2afd33cf304c454abfc7cb00000000000000000000000000000000000000000000000000000000000000106265666f72652d73756761722e65746800000000000000000000000000000000

Deployed Bytecode

0x608060405260043610610037575f3560e01c80630900f010146100c7578063a619486e146100dc578063f23a6e611461011757610076565b3661007657604080513381523460208201527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c910160405180910390a1005b5f80546001600160a01b03169035632cf35bc960e11b0161009957805f5260205ff35b604051365f82375f5f3683855af49150503d5f5f3e806100c2573d6100be576105045ffd5b3d5ffd5b503d5ff35b6100da6100d5366004610323565b61015c565b005b3480156100e7575f5ffd5b505f546100fa906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610122575f5ffd5b50610143610131366004610345565b63f23a6e6160e01b9695505050505050565b6040516001600160e01b0319909116815260200161010e565b6003546001600160a01b03165f8181526001602052604090819020549051631b5576df60e11b815260048101919091523391906336aaedbe90602401602060405180830381865afa1580156101b3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d791906103e8565b6001600160a01b03166304e80e906040518163ffffffff1660e01b8152600401602060405180830381865afa158015610212573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061023691906103e8565b6001600160a01b0316146102775760405162461bcd60e51b815260206004820152600360248201526237bbb760e91b60448201526064015b60405180910390fd5b6001600160a01b0381166102b25760405162461bcd60e51b8152602060048201526002602482015261677760f01b604482015260640161026e565b5f80546001600160a01b0319166001600160a01b0383169081179091556040805130815260208101929092527fdb1f8d0eef4d79e1cdba8531eba2e5787b56b7497cbc14e9242220b6d10fac8c910160405180910390a150565b6001600160a01b0381168114610320575f5ffd5b50565b5f60208284031215610333575f5ffd5b813561033e8161030c565b9392505050565b5f5f5f5f5f5f60a0878903121561035a575f5ffd5b86356103658161030c565b955060208701356103758161030c565b9450604087013593506060870135925060808701356001600160401b0381111561039d575f5ffd5b8701601f810189136103ad575f5ffd5b80356001600160401b038111156103c2575f5ffd5b8960208284010111156103d3575f5ffd5b60208201935080925050509295509295509295565b5f602082840312156103f8575f5ffd5b815161033e8161030c56fea264697066735822122004303458c64ff9538a2fe5fadba66070142745eadf10720d9dacd26857a72fc564736f6c634300081e0033

Deployed Bytecode Sourcemap

15709:2396:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18064:30;;;18072:10;188:51:1;;18084:9:0;270:2:1;255:18;;248:34;18064:30:0;;161:18:1;18064:30:0;;;;;;;15709:2396;;16783:1;16777:8;;-1:-1:-1;;;;;16773:57:0;;16850:15;-1:-1:-1;;;16847:87:0;16844:175;;16964:6;16783:1;16954:17;16999:4;16783:1;16989:15;16844:175;17052:4;17046:11;17092:14;16783:1;17084:3;17071:36;16783:1;;17092:14;17164:3;17156:6;17149:5;17136:54;17121:69;;;17225:16;16783:1;;17204:38;17262:7;17256:140;;17298:16;17292:46;;17330:5;16783:1;17320:16;17292:46;17364:16;16783:1;17354:27;17256:140;;17420:16;16783:1;17410:27;17467:219;;;;;;:::i;:::-;;:::i;:::-;;15742:25;;;;;;;;;;-1:-1:-1;15742:25:0;;;;-1:-1:-1;;;;;15742:25:0;;;;;;-1:-1:-1;;;;;845:32:1;;;827:51;;815:2;800:18;15742:25:0;;;;;;;;17694:239;;;;;;;;;;-1:-1:-1;17694:239:0;;;;;:::i;:::-;-1:-1:-1;;;17694:239:0;;;;;;;;;;;;-1:-1:-1;;;;;;2160:33:1;;;2142:52;;2130:2;2115:18;17694:239:0;1998:202:1;17467:219:0;16294:3;;-1:-1:-1;;;;;16294:3:0;;16322:27;;;16294:3;16322:27;;;;;;;;16282:70;;-1:-1:-1;;;16282:70:0;;;;;2351:25:1;;;;16372:10:0;;16294:3;16282:30;;2324:18:1;;16282:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16275:93:0;;:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16275:107:0;;16267:122;;;;-1:-1:-1;;;16267:122:0;;2845:2:1;16267:122:0;;;2827:21:1;2884:1;2864:18;;;2857:29;-1:-1:-1;;;2902:18:1;;;2895:33;2945:18;;16267:122:0;;;;;;;;;-1:-1:-1;;;;;17579:18:0;::::1;17571:32;;;::::0;-1:-1:-1;;;17571:32:0;;3176:2:1;17571:32:0::1;::::0;::::1;3158:21:1::0;3215:1;3195:18;;;3188:29;-1:-1:-1;;;3233:18:1;;;3226:32;3275:18;;17571:32:0::1;2974:325:1::0;17571:32:0::1;17612:10;:19:::0;;-1:-1:-1;;;;;;17612:19:0::1;-1:-1:-1::0;;;;;17612:19:0;::::1;::::0;;::::1;::::0;;;17645:33:::1;::::0;;17664:4:::1;3478:51:1::0;;3560:2;3545:18;;3538:60;;;;17645:33:0::1;::::0;3451:18:1;17645:33:0::1;;;;;;;17467:219:::0;:::o;293:131:1:-;-1:-1:-1;;;;;368:31:1;;358:42;;348:70;;414:1;411;404:12;348:70;293:131;:::o;429:247::-;488:6;541:2;529:9;520:7;516:23;512:32;509:52;;;557:1;554;547:12;509:52;596:9;583:23;615:31;640:5;615:31;:::i;:::-;665:5;429:247;-1:-1:-1;;;429:247:1:o;889:1104::-;995:6;1003;1011;1019;1027;1035;1088:3;1076:9;1067:7;1063:23;1059:33;1056:53;;;1105:1;1102;1095:12;1056:53;1144:9;1131:23;1163:31;1188:5;1163:31;:::i;:::-;1213:5;-1:-1:-1;1270:2:1;1255:18;;1242:32;1283:33;1242:32;1283:33;:::i;:::-;1335:7;-1:-1:-1;1415:2:1;1400:18;;1387:32;;-1:-1:-1;1518:2:1;1503:18;;1490:32;;-1:-1:-1;1599:3:1;1584:19;;1571:33;-1:-1:-1;;;;;1616:30:1;;1613:50;;;1659:1;1656;1649:12;1613:50;1682:22;;1735:4;1727:13;;1723:27;-1:-1:-1;1713:55:1;;1764:1;1761;1754:12;1713:55;1804:2;1791:16;-1:-1:-1;;;;;1822:6:1;1819:30;1816:50;;;1862:1;1859;1852:12;1816:50;1907:7;1902:2;1893:6;1889:2;1885:15;1881:24;1878:37;1875:57;;;1928:1;1925;1918:12;1875:57;1959:2;1955;1951:11;1941:21;;1981:6;1971:16;;;;889:1104;;;;;;;;:::o;2387:251::-;2457:6;2510:2;2498:9;2489:7;2485:23;2481:32;2478:52;;;2526:1;2523;2516:12;2478:52;2558:9;2552:16;2577:31;2602:5;2577:31;:::i

Swarm Source

ipfs://04303458c64ff9538a2fe5fadba66070142745eadf10720d9dacd26857a72fc5

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.