Sepolia Testnet

Contract

0x837eB6DdD160710a2609fF8FE9797a0d5439c352

Overview

ETH Balance

0 ETH

Multichain Info

N/A
Transaction Hash
Method
Block
From
To
Set Dapp Address60515712024-06-06 13:58:12125 days ago1717682292IN
0x837eB6Dd...d5439c352
0 ETH0.0017683823.91037378
Set Dapp Address60515652024-06-06 13:57:00125 days ago1717682220IN
0x837eB6Dd...d5439c352
0 ETH0.0007647323.51591308
Set Dapp Address60515492024-06-06 13:53:36125 days ago1717682016IN
0x837eB6Dd...d5439c352
0 ETH0.001650322.31375119
Set Dapp Address59997472024-05-29 10:29:00133 days ago1716978540IN
0x837eB6Dd...d5439c352
0 ETH0.0045529550
0x6080604059993582024-05-29 8:58:12133 days ago1716973092IN
 Create: SolarERC1155Factory
0 ETH0.039166450

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
61403622024-06-19 12:14:36112 days ago1718799276
0x837eB6Dd...d5439c352
 Contract Creation0 ETH
61403572024-06-19 12:13:36112 days ago1718799216
0x837eB6Dd...d5439c352
 Contract Creation0 ETH
61403512024-06-19 12:12:12112 days ago1718799132
0x837eB6Dd...d5439c352
 Contract Creation0 ETH
61403462024-06-19 12:11:12112 days ago1718799072
0x837eB6Dd...d5439c352
 Contract Creation0 ETH
61403432024-06-19 12:10:24112 days ago1718799024
0x837eB6Dd...d5439c352
 Contract Creation0 ETH
61403372024-06-19 12:09:12112 days ago1718798952
0x837eB6Dd...d5439c352
 Contract Creation0 ETH
61403342024-06-19 12:08:36112 days ago1718798916
0x837eB6Dd...d5439c352
 Contract Creation0 ETH
61403102024-06-19 12:03:24112 days ago1718798604
0x837eB6Dd...d5439c352
 Contract Creation0 ETH
61403082024-06-19 12:02:48112 days ago1718798568
0x837eB6Dd...d5439c352
 Contract Creation0 ETH
61403062024-06-19 12:02:24112 days ago1718798544
0x837eB6Dd...d5439c352
 Contract Creation0 ETH
61403042024-06-19 12:01:48112 days ago1718798508
0x837eB6Dd...d5439c352
 Contract Creation0 ETH
61403022024-06-19 12:01:24112 days ago1718798484
0x837eB6Dd...d5439c352
 Contract Creation0 ETH
61402992024-06-19 12:00:48112 days ago1718798448
0x837eB6Dd...d5439c352
 Contract Creation0 ETH
61402972024-06-19 12:00:12112 days ago1718798412
0x837eB6Dd...d5439c352
 Contract Creation0 ETH
61402952024-06-19 11:59:48112 days ago1718798388
0x837eB6Dd...d5439c352
 Contract Creation0 ETH
61402922024-06-19 11:59:12112 days ago1718798352
0x837eB6Dd...d5439c352
 Contract Creation0 ETH
61402892024-06-19 11:58:12112 days ago1718798292
0x837eB6Dd...d5439c352
 Contract Creation0 ETH
61402872024-06-19 11:57:48112 days ago1718798268
0x837eB6Dd...d5439c352
 Contract Creation0 ETH
61402842024-06-19 11:56:48112 days ago1718798208
0x837eB6Dd...d5439c352
 Contract Creation0 ETH
61402812024-06-19 11:56:12112 days ago1718798172
0x837eB6Dd...d5439c352
 Contract Creation0 ETH
61402792024-06-19 11:55:48112 days ago1718798148
0x837eB6Dd...d5439c352
 Contract Creation0 ETH
61402762024-06-19 11:55:12112 days ago1718798112
0x837eB6Dd...d5439c352
 Contract Creation0 ETH
61402742024-06-19 11:54:48112 days ago1718798088
0x837eB6Dd...d5439c352
 Contract Creation0 ETH
61402722024-06-19 11:54:24112 days ago1718798064
0x837eB6Dd...d5439c352
 Contract Creation0 ETH
61402692024-06-19 11:53:48112 days ago1718798028
0x837eB6Dd...d5439c352
 Contract Creation0 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SolarERC1155Factory

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 1 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-05-29
*/

pragma solidity 0.8.20;

interface ISolarERC1155{
    function initialize(string memory name_, string memory symbol_, string memory bURI, address[] memory dappAddress) external;
    function transferOwnership(address newOwner) external;
}


library EnumerableSet {
   
    struct Set {
        bytes32[] _values;
        mapping (bytes32 => uint256) _indexes;
    }

    function _add(Set storage set, bytes32 value) private returns (bool) {
        if (!_contains(set, value)) {
            set._values.push(value);
            set._indexes[value] = set._values.length;
            return true;
        } else {
            return false;
        }
    }

    function _remove(Set storage set, bytes32 value) private returns (bool) {
        
        uint256 valueIndex = set._indexes[value];

        if (valueIndex != 0) { 
            
            uint256 toDeleteIndex = valueIndex - 1;
            uint256 lastIndex = set._values.length - 1;

    
            bytes32 lastvalue = set._values[lastIndex];

            set._values[toDeleteIndex] = lastvalue;
            
            set._indexes[lastvalue] = toDeleteIndex + 1; 

            set._values.pop();

            delete set._indexes[value];

            return true;
        } else {
            return false;
        }
    }

    
    function _contains(Set storage set, bytes32 value) private view returns (bool) {
        return set._indexes[value] != 0;
    }

    
    function _length(Set storage set) private view returns (uint256) {
        return set._values.length;
    }

   
    function _at(Set storage set, uint256 index) private view returns (bytes32) {
        require(set._values.length > index, "EnumerableSet: index out of bounds");
        return set._values[index];
    }

    struct Bytes32Set {
        Set _inner;
    }

    
    function add(Bytes32Set storage set, bytes32 value) internal returns (bool) {
        return _add(set._inner, value);
    }


    function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) {
        return _remove(set._inner, value);
    }

    
    function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) {
        return _contains(set._inner, value);
    }

   
    function length(Bytes32Set storage set) internal view returns (uint256) {
        return _length(set._inner);
    }

   
    function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) {
        return _at(set._inner, index);
    }

    struct AddressSet {
        Set _inner;
    }

    
    function add(AddressSet storage set, address value) internal returns (bool) {
        return _add(set._inner, bytes32(uint256(uint160(value))));
    }


    function remove(AddressSet storage set, address value) internal returns (bool) {
        return _remove(set._inner, bytes32(uint256(uint160(value))));
    }

   
    function contains(AddressSet storage set, address value) internal view returns (bool) {
        return _contains(set._inner, bytes32(uint256(uint160(value))));
    }

   
    function length(AddressSet storage set) internal view returns (uint256) {
        return _length(set._inner);
    }

   
    function at(AddressSet storage set, uint256 index) internal view returns (address) {
        return address(uint160(uint256(_at(set._inner, index))));
    }

    struct UintSet {
        Set _inner;
    }

    
    function add(UintSet storage set, uint256 value) internal returns (bool) {
        return _add(set._inner, bytes32(value));
    }

    
    function remove(UintSet storage set, uint256 value) internal returns (bool) {
        return _remove(set._inner, bytes32(value));
    }

    
    function contains(UintSet storage set, uint256 value) internal view returns (bool) {
        return _contains(set._inner, bytes32(value));
    }

    
    function length(UintSet storage set) internal view returns (uint256) {
        return _length(set._inner);
    }

   
    function at(UintSet storage set, uint256 index) internal view returns (uint256) {
        return uint256(_at(set._inner, index));
    }
}

library Clones {
    /**
     * @dev Deploys and returns the address of a clone that mimics the behaviour of `implementation`.
     *
     * This function uses the create opcode, which should never revert.
     */
    function clone(address implementation) internal returns (address instance) {
        assembly {
            let ptr := mload(0x40)
            mstore(ptr, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000)
            mstore(add(ptr, 0x14), shl(0x60, implementation))
            mstore(add(ptr, 0x28), 0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000)
            instance := create(0, ptr, 0x37)
        }
        require(instance != address(0), "ERC1167: create failed");
    }

    /**
     * @dev Deploys and returns the address of a clone that mimics the behaviour of `implementation`.
     *
     * This function uses the create2 opcode and a `salt` to deterministically deploy
     * the clone. Using the same `implementation` and `salt` multiple time will revert, since
     * the clones cannot be deployed twice at the same address.
     */
    function cloneDeterministic(address implementation, bytes32 salt) internal returns (address instance) {
        assembly {
            let ptr := mload(0x40)
            mstore(ptr, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000)
            mstore(add(ptr, 0x14), shl(0x60, implementation))
            mstore(add(ptr, 0x28), 0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000)
            instance := create2(0, ptr, 0x37, salt)
        }
        require(instance != address(0), "ERC1167: create2 failed");
    }

    /**
     * @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}.
     */
    function predictDeterministicAddress(
        address implementation,
        bytes32 salt,
        address deployer
    ) internal pure returns (address predicted) {
        assembly {
            let ptr := mload(0x40)
            mstore(ptr, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000)
            mstore(add(ptr, 0x14), shl(0x60, implementation))
            mstore(add(ptr, 0x28), 0x5af43d82803e903d91602b57fd5bf3ff00000000000000000000000000000000)
            mstore(add(ptr, 0x38), shl(0x60, deployer))
            mstore(add(ptr, 0x4c), salt)
            mstore(add(ptr, 0x6c), keccak256(ptr, 0x37))
            predicted := keccak256(add(ptr, 0x37), 0x55)
        }
    }

    /**
     * @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}.
     */
    function predictDeterministicAddress(address implementation, bytes32 salt)
        internal
        view
        returns (address predicted)
    {
        return predictDeterministicAddress(implementation, salt, address(this));
    }
}


abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}



abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

contract SolarERC1155Factory is Ownable {
    using EnumerableSet for EnumerableSet.AddressSet;

    address public erc1155Implementation;
    EnumerableSet.AddressSet private _dappSet;
    address constant TBA_MULTICALL_ADDRESS = 0xcA1167915584462449EE5b4Ea51c37fE81eCDCCD;

    event CreateERC1155(address indexed contractAddress);

    constructor(address solarERC1155) {
        erc1155Implementation = solarERC1155;
    }

    function setDappAddress(address addr, bool enable) external onlyOwner {
        if(enable){
            _dappSet.add(addr);
        }else{
            _dappSet.remove(addr);
        }
    }

    function getDappAddress() public view returns(address[] memory addrs){
        addrs = new address[](_dappSet.length());
        for(uint i=0;i<_dappSet.length();++i){
            addrs[i]=_dappSet.at(i);
        }
    }

    function createERC1155(
        string memory name_,
        string memory symbol_,
        string memory bURI_
    ) external returns(address)  {
         if(isContract(_msgSender())){            
            require(msg.data.length >= 20, "Invalid data length");
            address originalSender = address(bytes20(msg.data[msg.data.length - 20:]));
            require(_dappSet.contains(originalSender) && TBA_MULTICALL_ADDRESS==_msgSender(), "!owner");
            
        }else{
            require(tx.origin==owner(), "!owner");
        }
        
        address clonedContract = Clones.clone(erc1155Implementation);
        ISolarERC1155(clonedContract).initialize(name_, symbol_, bURI_, getDappAddress());
        ISolarERC1155(clonedContract).transferOwnership(owner());
        emit CreateERC1155(clonedContract);
        return clonedContract;
    }

    function changeERC1155Implementation(address newImplementationAddress) external onlyOwner {
        erc1155Implementation = newImplementationAddress;
    }    

    function isContract(address addr) internal view returns (bool) {
        uint size;
        assembly { size := extcodesize(addr) }
        return size > 0;
    }
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"solarERC1155","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"contractAddress","type":"address"}],"name":"CreateERC1155","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"address","name":"newImplementationAddress","type":"address"}],"name":"changeERC1155Implementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"string","name":"bURI_","type":"string"}],"name":"createERC1155","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"erc1155Implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDappAddress","outputs":[{"internalType":"address[]","name":"addrs","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setDappAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561000f575f80fd5b50604051610d30380380610d3083398101604081905261002e916100ab565b6100373361005c565b600180546001600160a01b0319166001600160a01b03929092169190911790556100d8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100bb575f80fd5b81516001600160a01b03811681146100d1575f80fd5b9392505050565b610c4b806100e55f395ff3fe608060405234801561000f575f80fd5b5060043610610076575f3560e01c80633ca097a91461007a5780636e204c41146100a3578063715018a6146100b657806385e53a0f146100c05780638da5cb5b146100d5578063b14c6df6146100dd578063f2fde38b146100f0578063f47e9e1114610103575b5f80fd5b61008d610088366004610904565b610116565b60405161009a9190610985565b60405180910390f35b60015461008d906001600160a01b031681565b6100be61032f565b005b6100c8610369565b60405161009a91906109db565b61008d610414565b6100be6100eb366004610a03565b610422565b6100be6100fe366004610a3c565b610472565b6100be610111366004610a3c565b610512565b5f333b156101dd57601436101561016a5760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c8c2e8c240d8cadccee8d606b1b60448201526064015b60405180910390fd5b5f8036610178601482610a69565b610183928290610a7c565b61018c91610aa3565b60601c905061019c600282610563565b80156101bb575073ca1167915584462449ee5b4ea51c37fe81ecdccd33145b6101d75760405162461bcd60e51b815260040161016190610ad3565b50610215565b6101e5610414565b6001600160a01b0316326001600160a01b0316146102155760405162461bcd60e51b815260040161016190610ad3565b6001545f9061022c906001600160a01b0316610580565b9050806001600160a01b0316638d232094868686610248610369565b6040518563ffffffff1660e01b81526004016102679493929190610b36565b5f604051808303815f87803b15801561027e575f80fd5b505af1158015610290573d5f803e3d5ffd5b50505050806001600160a01b031663f2fde38b6102ab610414565b6040518263ffffffff1660e01b81526004016102c79190610985565b5f604051808303815f87803b1580156102de575f80fd5b505af11580156102f0573d5f803e3d5ffd5b50506040516001600160a01b03841692507f99b6e9b47fbb643c466607a606d3be1e7a02faa5f7e8fd78e48ff3a21c134a1c91505f90a2949350505050565b33610338610414565b6001600160a01b03161461035e5760405162461bcd60e51b815260040161016190610b8d565b6103675f61061b565b565b6060610375600261066a565b6001600160401b0381111561038c5761038c610868565b6040519080825280602002602001820160405280156103b5578160200160208202803683370190505b5090505f5b6103c4600261066a565b811015610410576103d6600282610673565b8282815181106103e8576103e8610bc2565b6001600160a01b039092166020928302919091019091015261040981610bd6565b90506103ba565b5090565b5f546001600160a01b031690565b3361042b610414565b6001600160a01b0316146104515760405162461bcd60e51b815260040161016190610b8d565b80156104675761046260028361067e565b505050565b610462600283610692565b3361047b610414565b6001600160a01b0316146104a15760405162461bcd60e51b815260040161016190610b8d565b6001600160a01b0381166105065760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610161565b61050f8161061b565b50565b3361051b610414565b6001600160a01b0316146105415760405162461bcd60e51b815260040161016190610b8d565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b5f610577836001600160a01b0384166106a6565b90505b92915050565b5f604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528260601b60148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037815ff09150506001600160a01b0381166106165760405162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b6044820152606401610161565b919050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f61057a825490565b5f61057783836106bd565b5f610577836001600160a01b03841661073f565b5f610577836001600160a01b038416610786565b5f9081526001919091016020526040902054151590565b81545f90821061071a5760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b6064820152608401610161565b825f01828154811061072e5761072e610bc2565b905f5260205f200154905092915050565b5f61074a83836106a6565b61077f57508154600181810184555f84815260208082209093018490558454848252828601909352604090209190915561057a565b505f61057a565b5f818152600183016020526040812054801561085f575f6107a8600183610a69565b85549091505f906107bb90600190610a69565b90505f865f0182815481106107d2576107d2610bc2565b905f5260205f200154905080875f0184815481106107f2576107f2610bc2565b5f91825260209091200155610808836001610bee565b5f828152600189016020526040902055865487908061082957610829610c01565b600190038181905f5260205f20015f90559055866001015f8781526020019081526020015f205f9055600194505050505061057a565b5f91505061057a565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011261088b575f80fd5b81356001600160401b03808211156108a5576108a5610868565b604051601f8301601f19908116603f011681019082821181831017156108cd576108cd610868565b816040528381528660208588010111156108e5575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f60608486031215610916575f80fd5b83356001600160401b038082111561092c575f80fd5b6109388783880161087c565b9450602086013591508082111561094d575f80fd5b6109598783880161087c565b9350604086013591508082111561096e575f80fd5b5061097b8682870161087c565b9150509250925092565b6001600160a01b0391909116815260200190565b5f8151808452602080850194508084015f5b838110156109d05781516001600160a01b0316875295820195908201906001016109ab565b509495945050505050565b602081525f6105776020830184610999565b80356001600160a01b0381168114610616575f80fd5b5f8060408385031215610a14575f80fd5b610a1d836109ed565b915060208301358015158114610a31575f80fd5b809150509250929050565b5f60208284031215610a4c575f80fd5b610577826109ed565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561057a5761057a610a55565b5f8085851115610a8a575f80fd5b83861115610a96575f80fd5b5050820193919092039150565b6001600160601b03198135818116916014851015610acb5780818660140360031b1b83161692505b505092915050565b60208082526006908201526510b7bbb732b960d11b604082015260600190565b5f81518084525f5b81811015610b1757602081850181015186830182015201610afb565b505f602082860101526020601f19601f83011685010191505092915050565b608081525f610b486080830187610af3565b8281036020840152610b5a8187610af3565b90508281036040840152610b6e8186610af3565b90508281036060840152610b828185610999565b979650505050505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60018201610be757610be7610a55565b5060010190565b8082018082111561057a5761057a610a55565b634e487b7160e01b5f52603160045260245ffdfea264697066735822122065601f3c675db32fb71c7a98a0625953602257375cee8ceab96b0ddd272f85b964736f6c634300081400330000000000000000000000003e110b807880a10b37aed9f36f864a442ac1f2df

Deployed Bytecode

0x608060405234801561000f575f80fd5b5060043610610076575f3560e01c80633ca097a91461007a5780636e204c41146100a3578063715018a6146100b657806385e53a0f146100c05780638da5cb5b146100d5578063b14c6df6146100dd578063f2fde38b146100f0578063f47e9e1114610103575b5f80fd5b61008d610088366004610904565b610116565b60405161009a9190610985565b60405180910390f35b60015461008d906001600160a01b031681565b6100be61032f565b005b6100c8610369565b60405161009a91906109db565b61008d610414565b6100be6100eb366004610a03565b610422565b6100be6100fe366004610a3c565b610472565b6100be610111366004610a3c565b610512565b5f333b156101dd57601436101561016a5760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c8c2e8c240d8cadccee8d606b1b60448201526064015b60405180910390fd5b5f8036610178601482610a69565b610183928290610a7c565b61018c91610aa3565b60601c905061019c600282610563565b80156101bb575073ca1167915584462449ee5b4ea51c37fe81ecdccd33145b6101d75760405162461bcd60e51b815260040161016190610ad3565b50610215565b6101e5610414565b6001600160a01b0316326001600160a01b0316146102155760405162461bcd60e51b815260040161016190610ad3565b6001545f9061022c906001600160a01b0316610580565b9050806001600160a01b0316638d232094868686610248610369565b6040518563ffffffff1660e01b81526004016102679493929190610b36565b5f604051808303815f87803b15801561027e575f80fd5b505af1158015610290573d5f803e3d5ffd5b50505050806001600160a01b031663f2fde38b6102ab610414565b6040518263ffffffff1660e01b81526004016102c79190610985565b5f604051808303815f87803b1580156102de575f80fd5b505af11580156102f0573d5f803e3d5ffd5b50506040516001600160a01b03841692507f99b6e9b47fbb643c466607a606d3be1e7a02faa5f7e8fd78e48ff3a21c134a1c91505f90a2949350505050565b33610338610414565b6001600160a01b03161461035e5760405162461bcd60e51b815260040161016190610b8d565b6103675f61061b565b565b6060610375600261066a565b6001600160401b0381111561038c5761038c610868565b6040519080825280602002602001820160405280156103b5578160200160208202803683370190505b5090505f5b6103c4600261066a565b811015610410576103d6600282610673565b8282815181106103e8576103e8610bc2565b6001600160a01b039092166020928302919091019091015261040981610bd6565b90506103ba565b5090565b5f546001600160a01b031690565b3361042b610414565b6001600160a01b0316146104515760405162461bcd60e51b815260040161016190610b8d565b80156104675761046260028361067e565b505050565b610462600283610692565b3361047b610414565b6001600160a01b0316146104a15760405162461bcd60e51b815260040161016190610b8d565b6001600160a01b0381166105065760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610161565b61050f8161061b565b50565b3361051b610414565b6001600160a01b0316146105415760405162461bcd60e51b815260040161016190610b8d565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b5f610577836001600160a01b0384166106a6565b90505b92915050565b5f604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528260601b60148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037815ff09150506001600160a01b0381166106165760405162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b6044820152606401610161565b919050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f61057a825490565b5f61057783836106bd565b5f610577836001600160a01b03841661073f565b5f610577836001600160a01b038416610786565b5f9081526001919091016020526040902054151590565b81545f90821061071a5760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b6064820152608401610161565b825f01828154811061072e5761072e610bc2565b905f5260205f200154905092915050565b5f61074a83836106a6565b61077f57508154600181810184555f84815260208082209093018490558454848252828601909352604090209190915561057a565b505f61057a565b5f818152600183016020526040812054801561085f575f6107a8600183610a69565b85549091505f906107bb90600190610a69565b90505f865f0182815481106107d2576107d2610bc2565b905f5260205f200154905080875f0184815481106107f2576107f2610bc2565b5f91825260209091200155610808836001610bee565b5f828152600189016020526040902055865487908061082957610829610c01565b600190038181905f5260205f20015f90559055866001015f8781526020019081526020015f205f9055600194505050505061057a565b5f91505061057a565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011261088b575f80fd5b81356001600160401b03808211156108a5576108a5610868565b604051601f8301601f19908116603f011681019082821181831017156108cd576108cd610868565b816040528381528660208588010111156108e5575f80fd5b836020870160208301375f602085830101528094505050505092915050565b5f805f60608486031215610916575f80fd5b83356001600160401b038082111561092c575f80fd5b6109388783880161087c565b9450602086013591508082111561094d575f80fd5b6109598783880161087c565b9350604086013591508082111561096e575f80fd5b5061097b8682870161087c565b9150509250925092565b6001600160a01b0391909116815260200190565b5f8151808452602080850194508084015f5b838110156109d05781516001600160a01b0316875295820195908201906001016109ab565b509495945050505050565b602081525f6105776020830184610999565b80356001600160a01b0381168114610616575f80fd5b5f8060408385031215610a14575f80fd5b610a1d836109ed565b915060208301358015158114610a31575f80fd5b809150509250929050565b5f60208284031215610a4c575f80fd5b610577826109ed565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561057a5761057a610a55565b5f8085851115610a8a575f80fd5b83861115610a96575f80fd5b5050820193919092039150565b6001600160601b03198135818116916014851015610acb5780818660140360031b1b83161692505b505092915050565b60208082526006908201526510b7bbb732b960d11b604082015260600190565b5f81518084525f5b81811015610b1757602081850181015186830182015201610afb565b505f602082860101526020601f19601f83011685010191505092915050565b608081525f610b486080830187610af3565b8281036020840152610b5a8187610af3565b90508281036040840152610b6e8186610af3565b90508281036060840152610b828185610999565b979650505050505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60018201610be757610be7610a55565b5060010190565b8082018082111561057a5761057a610a55565b634e487b7160e01b5f52603160045260245ffdfea264697066735822122065601f3c675db32fb71c7a98a0625953602257375cee8ceab96b0ddd272f85b964736f6c63430008140033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000003e110b807880a10b37aed9f36f864a442ac1f2df

-----Decoded View---------------
Arg [0] : solarERC1155 (address): 0x3e110b807880a10B37aed9f36f864a442AC1F2dF

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000003e110b807880a10b37aed9f36f864a442ac1f2df


Deployed Bytecode Sourcemap

9267:2108:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10148:882;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9371:36;;;;;-1:-1:-1;;;;;9371:36:0;;;8450:103;;;:::i;:::-;;9915:225;;;:::i;:::-;;;;;;;:::i;7799:87::-;;;:::i;9712:195::-;;;;;;:::i;:::-;;:::i;8708:201::-;;;;;;:::i;:::-;;:::i;11038:157::-;;;;;;:::i;:::-;;:::i;10148:882::-;10287:7;7249:10;11320:17;11356:8;10309:397;;10391:2;10372:8;:21;;10364:53;;;;-1:-1:-1;;;10364:53:0;;3481:2:1;10364:53:0;;;3463:21:1;3520:2;3500:18;;;3493:30;-1:-1:-1;;;3539:18:1;;;3532:49;3598:18;;10364:53:0;;;;;;;;;10432:22;;10473:8;10482:20;10500:2;10473:8;10482:20;:::i;:::-;10473:31;;;;;:::i;:::-;10465:40;;;:::i;:::-;10457:49;;;-1:-1:-1;10529:33:0;:8;10457:49;10529:17;:33::i;:::-;:72;;;;-1:-1:-1;9503:42:0;7249:10;10566:35;10529:72;10521:91;;;;-1:-1:-1;;;10521:91:0;;;;;;;:::i;:::-;10337:301;10309:397;;;10676:7;:5;:7::i;:::-;-1:-1:-1;;;;;10665:18:0;:9;-1:-1:-1;;;;;10665:18:0;;10657:37;;;;-1:-1:-1;;;10657:37:0;;;;;;;:::i;:::-;10764:21;;10726:22;;10751:35;;-1:-1:-1;;;;;10764:21:0;10751:12;:35::i;:::-;10726:60;;10811:14;-1:-1:-1;;;;;10797:40:0;;10838:5;10845:7;10854:5;10861:16;:14;:16::i;:::-;10797:81;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10903:14;-1:-1:-1;;;;;10889:47:0;;10937:7;:5;:7::i;:::-;10889:56;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10961:29:0;;-1:-1:-1;;;;;10961:29:0;;;-1:-1:-1;10961:29:0;;-1:-1:-1;10961:29:0;;;11008:14;10148:882;-1:-1:-1;;;;10148:882:0:o;8450:103::-;7249:10;8019:7;:5;:7::i;:::-;-1:-1:-1;;;;;8019:23:0;;8011:68;;;;-1:-1:-1;;;8011:68:0;;;;;;;:::i;:::-;8515:30:::1;8542:1;8515:18;:30::i;:::-;8450:103::o:0;9915:225::-;9961:22;10017:17;:8;:15;:17::i;:::-;-1:-1:-1;;;;;10003:32:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10003:32:0;;9995:40;;10050:6;10046:87;10061:17;:8;:15;:17::i;:::-;10059:1;:19;10046:87;;;10107:14;:8;10119:1;10107:11;:14::i;:::-;10098:5;10104:1;10098:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10098:23:0;;;:8;;;;;;;;;;;:23;10079:3;;;:::i;:::-;;;10046:87;;;;9915:225;:::o;7799:87::-;7845:7;7872:6;-1:-1:-1;;;;;7872:6:0;;7799:87::o;9712:195::-;7249:10;8019:7;:5;:7::i;:::-;-1:-1:-1;;;;;8019:23:0;;8011:68;;;;-1:-1:-1;;;8011:68:0;;;;;;;:::i;:::-;9796:6:::1;9793:107;;;9818:18;:8;9831:4:::0;9818:12:::1;:18::i;:::-;;9712:195:::0;;:::o;9793:107::-:1;9867:21;:8;9883:4:::0;9867:15:::1;:21::i;8708:201::-:0;7249:10;8019:7;:5;:7::i;:::-;-1:-1:-1;;;;;8019:23:0;;8011:68;;;;-1:-1:-1;;;8011:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8797:22:0;::::1;8789:73;;;::::0;-1:-1:-1;;;8789:73:0;;6916:2:1;8789:73:0::1;::::0;::::1;6898:21:1::0;6955:2;6935:18;;;6928:30;6994:34;6974:18;;;6967:62;-1:-1:-1;;;7045:18:1;;;7038:36;7091:19;;8789:73:0::1;6714:402:1::0;8789:73:0::1;8873:28;8892:8;8873:18;:28::i;:::-;8708:201:::0;:::o;11038:157::-;7249:10;8019:7;:5;:7::i;:::-;-1:-1:-1;;;;;8019:23:0;;8011:68;;;;-1:-1:-1;;;8011:68:0;;;;;;;:::i;:::-;11139:21:::1;:48:::0;;-1:-1:-1;;;;;;11139:48:0::1;-1:-1:-1::0;;;;;11139:48:0;;;::::1;::::0;;;::::1;::::0;;11038:157::o;2987:167::-;3067:4;3091:55;3101:3;-1:-1:-1;;;;;3121:23:0;;3091:9;:55::i;:::-;3084:62;;2987:167;;;;;:::o;4472:524::-;4529:16;4599:4;4593:11;-1:-1:-1;;;4625:3:0;4618:79;4744:14;4738:4;4734:25;4727:4;4722:3;4718:14;4711:49;-1:-1:-1;;;4790:4:0;4785:3;4781:14;4774:90;4905:4;4900:3;4897:1;4890:20;4878:32;-1:-1:-1;;;;;;;4939:22:0;;4931:57;;;;-1:-1:-1;;;4931:57:0;;7323:2:1;4931:57:0;;;7305:21:1;7362:2;7342:18;;;7335:30;-1:-1:-1;;;7381:18:1;;;7374:52;7443:18;;4931:57:0;7121:346:1;4931:57:0;4472:524;;;:::o;9069:191::-;9143:16;9162:6;;-1:-1:-1;;;;;9179:17:0;;;-1:-1:-1;;;;;;9179:17:0;;;;;;9212:40;;9162:6;;;;;;;9212:40;;9143:16;9212:40;9132:128;9069:191;:::o;3167:117::-;3230:7;3257:19;3265:3;1579:18;;1496:109;3297:158;3371:7;3422:22;3426:3;3438:5;3422:3;:22::i;2654:152::-;2724:4;2748:50;2753:3;-1:-1:-1;;;;;2773:23:0;;2748:4;:50::i;2816:158::-;2889:4;2913:53;2921:3;-1:-1:-1;;;;;2941:23:0;;2913:7;:53::i;1353:129::-;1426:4;1450:19;;;:12;;;;;:19;;;;;;:24;;;1353:129::o;1618:204::-;1713:18;;1685:7;;1713:26;-1:-1:-1;1705:73:0;;;;-1:-1:-1;;;1705:73:0;;7674:2:1;1705:73:0;;;7656:21:1;7713:2;7693:18;;;7686:30;7752:34;7732:18;;;7725:62;-1:-1:-1;;;7803:18:1;;;7796:32;7845:19;;1705:73:0;7472:398:1;1705:73:0;1796:3;:11;;1808:5;1796:18;;;;;;;;:::i;:::-;;;;;;;;;1789:25;;1618:204;;;;:::o;386:291::-;449:4;471:21;481:3;486:5;471:9;:21::i;:::-;466:204;;-1:-1:-1;509:23:0;;;;;;;;:11;:23;;;;;;;;;;;;;569:18;;547:19;;;:12;;;:19;;;;;;:40;;;;602:11;;466:204;-1:-1:-1;653:5:0;646:12;;685:654;751:4;799:19;;;:12;;;:19;;;;;;835:15;;831:501;;882:21;906:14;919:1;906:10;:14;:::i;:::-;955:18;;882:38;;-1:-1:-1;935:17:0;;955:22;;976:1;;955:22;:::i;:::-;935:42;;1000:17;1020:3;:11;;1032:9;1020:22;;;;;;;;:::i;:::-;;;;;;;;;1000:42;;1088:9;1059:3;:11;;1071:13;1059:26;;;;;;;;:::i;:::-;;;;;;;;;;:38;1152:17;:13;1168:1;1152:17;:::i;:::-;1126:23;;;;:12;;;:23;;;;;:43;1187:17;;1126:3;;1187:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1228:3;:12;;:19;1241:5;1228:19;;;;;;;;;;;1221:26;;;1271:4;1264:11;;;;;;;;831:501;1315:5;1308:12;;;;;14:127:1;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:719;189:5;242:3;235:4;227:6;223:17;219:27;209:55;;260:1;257;250:12;209:55;283:20;;-1:-1:-1;;;;;352:10:1;;;349:36;;;365:18;;:::i;:::-;440:2;434:9;408:2;494:13;;-1:-1:-1;;490:22:1;;;514:2;486:31;482:40;470:53;;;538:18;;;558:22;;;535:46;532:72;;;584:18;;:::i;:::-;624:10;620:2;613:22;659:2;651:6;644:18;705:3;698:4;693:2;685:6;681:15;677:26;674:35;671:55;;;722:1;719;712:12;671:55;786:2;779:4;771:6;767:17;760:4;752:6;748:17;735:54;833:1;826:4;821:2;813:6;809:15;805:26;798:37;853:6;844:15;;;;;;146:719;;;;:::o;870:743::-;977:6;985;993;1046:2;1034:9;1025:7;1021:23;1017:32;1014:52;;;1062:1;1059;1052:12;1014:52;1089:23;;-1:-1:-1;;;;;1161:14:1;;;1158:34;;;1188:1;1185;1178:12;1158:34;1211:50;1253:7;1244:6;1233:9;1229:22;1211:50;:::i;:::-;1201:60;;1314:2;1303:9;1299:18;1286:32;1270:48;;1343:2;1333:8;1330:16;1327:36;;;1359:1;1356;1349:12;1327:36;1382:52;1426:7;1415:8;1404:9;1400:24;1382:52;:::i;:::-;1372:62;;1487:2;1476:9;1472:18;1459:32;1443:48;;1516:2;1506:8;1503:16;1500:36;;;1532:1;1529;1522:12;1500:36;;1555:52;1599:7;1588:8;1577:9;1573:24;1555:52;:::i;:::-;1545:62;;;870:743;;;;;:::o;1618:203::-;-1:-1:-1;;;;;1782:32:1;;;;1764:51;;1752:2;1737:18;;1618:203::o;1826:461::-;1879:3;1917:5;1911:12;1944:6;1939:3;1932:19;1970:4;1999:2;1994:3;1990:12;1983:19;;2036:2;2029:5;2025:14;2057:1;2067:195;2081:6;2078:1;2075:13;2067:195;;;2146:13;;-1:-1:-1;;;;;2142:39:1;2130:52;;2202:12;;;;2237:15;;;;2178:1;2096:9;2067:195;;;-1:-1:-1;2278:3:1;;1826:461;-1:-1:-1;;;;;1826:461:1:o;2292:261::-;2471:2;2460:9;2453:21;2434:4;2491:56;2543:2;2532:9;2528:18;2520:6;2491:56;:::i;2558:173::-;2626:20;;-1:-1:-1;;;;;2675:31:1;;2665:42;;2655:70;;2721:1;2718;2711:12;2736:347;2801:6;2809;2862:2;2850:9;2841:7;2837:23;2833:32;2830:52;;;2878:1;2875;2868:12;2830:52;2901:29;2920:9;2901:29;:::i;:::-;2891:39;;2980:2;2969:9;2965:18;2952:32;3027:5;3020:13;3013:21;3006:5;3003:32;2993:60;;3049:1;3046;3039:12;2993:60;3072:5;3062:15;;;2736:347;;;;;:::o;3088:186::-;3147:6;3200:2;3188:9;3179:7;3175:23;3171:32;3168:52;;;3216:1;3213;3206:12;3168:52;3239:29;3258:9;3239:29;:::i;3627:127::-;3688:10;3683:3;3679:20;3676:1;3669:31;3719:4;3716:1;3709:15;3743:4;3740:1;3733:15;3759:128;3826:9;;;3847:11;;;3844:37;;;3861:18;;:::i;3892:331::-;3997:9;4008;4050:8;4038:10;4035:24;4032:44;;;4072:1;4069;4062:12;4032:44;4101:6;4091:8;4088:20;4085:40;;;4121:1;4118;4111:12;4085:40;-1:-1:-1;;4147:23:1;;;4192:25;;;;;-1:-1:-1;3892:331:1:o;4228:329::-;-1:-1:-1;;;;;;4349:19:1;;4428:11;;;;4459:2;4451:11;;4448:103;;;4538:2;4532;4525:3;4521:2;4517:12;4514:1;4510:20;4506:29;4502:2;4498:38;4494:47;4485:56;;4448:103;;;4228:329;;;;:::o;4562:::-;4764:2;4746:21;;;4803:1;4783:18;;;4776:29;-1:-1:-1;;;4836:2:1;4821:18;;4814:36;4882:2;4867:18;;4562:329::o;4896:423::-;4938:3;4976:5;4970:12;5003:6;4998:3;4991:19;5028:1;5038:162;5052:6;5049:1;5046:13;5038:162;;;5114:4;5170:13;;;5166:22;;5160:29;5142:11;;;5138:20;;5131:59;5067:12;5038:162;;;5042:3;5245:1;5238:4;5229:6;5224:3;5220:16;5216:27;5209:38;5308:4;5301:2;5297:7;5292:2;5284:6;5280:15;5276:29;5271:3;5267:39;5263:50;5256:57;;;4896:423;;;;:::o;5324:752::-;5647:3;5636:9;5629:22;5610:4;5674:46;5715:3;5704:9;5700:19;5692:6;5674:46;:::i;:::-;5768:9;5760:6;5756:22;5751:2;5740:9;5736:18;5729:50;5802:33;5828:6;5820;5802:33;:::i;:::-;5788:47;;5883:9;5875:6;5871:22;5866:2;5855:9;5851:18;5844:50;5917:33;5943:6;5935;5917:33;:::i;:::-;5903:47;;5998:9;5990:6;5986:22;5981:2;5970:9;5966:18;5959:50;6026:44;6063:6;6055;6026:44;:::i;:::-;6018:52;5324:752;-1:-1:-1;;;;;;;5324:752:1:o;6081:356::-;6283:2;6265:21;;;6302:18;;;6295:30;6361:34;6356:2;6341:18;;6334:62;6428:2;6413:18;;6081:356::o;6442:127::-;6503:10;6498:3;6494:20;6491:1;6484:31;6534:4;6531:1;6524:15;6558:4;6555:1;6548:15;6574:135;6613:3;6634:17;;;6631:43;;6654:18;;:::i;:::-;-1:-1:-1;6701:1:1;6690:13;;6574:135::o;7875:125::-;7940:9;;;7961:10;;;7958:36;;;7974:18;;:::i;8005:127::-;8066:10;8061:3;8057:20;8054:1;8047:31;8097:4;8094:1;8087:15;8121:4;8118:1;8111:15

Swarm Source

ipfs://65601f3c675db32fb71c7a98a0625953602257375cee8ceab96b0ddd272f85b9

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.