Source Code
Overview
ETH Balance
0 ETH
More Info
ContractCreator
Multichain Info
N/A
Latest 5 from a total of 5 transactions
Latest 25 internal transactions (View All)
Advanced mode:
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
SolarERC1155Factory
Compiler Version
v0.8.20+commit.a1b79de6
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; } }
[{"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"}]
Contract Creation Code
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
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.