Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
18365260 | 505 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x41833C6E...8651eA658 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
CxipERC721
Compiler Version
v0.8.13+commit.abaa5c0e
Optimization Enabled:
Yes with 999999 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: UNLICENSED /* ┌───────────┐ │ HOLOGRAPH │ └───────────┘ ╔═════════════════════════════════════════════════════════════╗ ║ ║ ║ / ^ \ ║ ║ ~~*~~ ¸ ║ ║ [ '<>:<>' ] │░░░ ║ ║ ╔╗ _/"\_ ╔╣ ║ ║ ┌─╬╬─┐ """ ┌─╬╬─┐ ║ ║ ┌─┬┘ ╠╣ └┬─┐ \_/ ┌─┬┘ ╠╣ └┬─┐ ║ ║ ┌─┬┘ │ ╠╣ │ └┬─┐ ┌─┬┘ │ ╠╣ │ └┬─┐ ║ ║ ┌─┬┘ │ │ ╠╣ │ │ └┬─┐ ┌─┬┘ │ │ ╠╣ │ │ └┬─┐ ║ ║ ┌─┬┘ │ │ │ ╠╣ │ │ │ └┬┐ ┌┬┘ │ │ │ ╠╣ │ │ │ └┬─┐ ║ ╠┬┘ │ │ │ │ ╠╣ │ │ │ │└¤┘│ │ │ │ ╠╣ │ │ │ │ └┬╣ ║│ │ │ │ │ ╠╣ │ │ │ │ │ │ │ │ ╠╣ │ │ │ │ │║ ╠╩══╩══╩══╩══╩══╬╬══╩══╩══╩══╩═══╩══╩══╩══╩══╬╬══╩══╩══╩══╩══╩╣ ╠┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╬╬┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╬╬┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╣ ║ ╠╣ ╠╣ ║ ║ ╠╣ ╠╣ ║ ║ , ╠╣ , ,' * ╠╣ ║ ║~~~~~^~~~~~~~~┌╬╬┐~~~^~~~~~~~~^^~~~~~~~~^~~┌╬╬┐~~~~~~~^~~~~~~║ ╚══════════════╩╩╩╩═════════════════════════╩╩╩╩══════════════╝ - one protocol, one bridge = infinite possibilities - *************************************************************** DISCLAIMER: U.S Patent Pending LICENSE: Holograph Limited Public License (H-LPL) https://holograph.xyz/licenses/h-lpl/1.0.0 This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, you are not permitted to use the software. 1. Definitions The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law. A "contribution" is the original software, or any additions or changes to the software. A "contributor" is any person that distributes its contribution under this license. "Licensed patents" are a contributor’s patent claims that read directly on its contribution. 2. Grant of Rights A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in sections 3 and 4, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create. B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software. 3. Conditions and Limitations A) No Trademark License- This license does not grant you rights to use any contributors’ name, logo, or trademarks. B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor is terminated with immediate effect. C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software. D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license. E) The software is licensed “as-is.” You bear all risks of using it. The contributors give no express warranties, guarantees, or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude all implied warranties, including those of merchantability, fitness for a particular purpose and non-infringement. 4. (F) Platform Limitation- The licenses granted in sections 2.A & 2.B extend only to the software or derivative works that you create that run on a Holograph system product. *************************************************************** */ pragma solidity 0.8.13; import "../abstract/ERC721H.sol"; import "../enum/TokenUriType.sol"; import "../interface/HolographERC721Interface.sol"; import "../interface/HolographInterfacesInterface.sol"; import "../interface/HolographInterface.sol"; import "../interface/HolographerInterface.sol"; /** * @title CXIP ERC-721 Collection that is bridgeable via Holograph * @author Holograph Foundation * @notice A smart contract for minting and managing Holograph Bridgeable ERC721 NFTs. * @dev The entire logic and functionality of the smart contract is self-contained. */ contract CxipERC721 is ERC721H { /** * @dev Internal reference used for minting incremental token ids. */ uint224 private _currentTokenId; /** * @dev Enum of type of token URI to use globally for the entire contract. */ TokenUriType private _uriType; /** * @dev Enum mapping of type of token URI to use for specific tokenId. */ mapping(uint256 => TokenUriType) private _tokenUriType; /** * @dev Mapping of IPFS URIs for tokenIds. */ mapping(uint256 => mapping(TokenUriType => string)) private _tokenURIs; /** * @dev Constructor is left empty and init is used instead */ constructor() {} /** * @notice Used internally to initialize the contract instead of through a constructor * @dev This function is called by the deployer/factory when creating a contract * @param initPayload abi encoded payload to use for contract initilaization */ function init(bytes memory initPayload) external override returns (bytes4) { // we set this as default type since that's what Mint is currently using _uriType = TokenUriType.IPFS; address owner = abi.decode(initPayload, (address)); _setOwner(owner); // run underlying initializer logic return _init(initPayload); } /** * @notice Get's the URI of the token. * @return string The URI. */ function tokenURI(uint256 _tokenId) external view onlyHolographer returns (string memory) { TokenUriType uriType = _tokenUriType[_tokenId]; if (uriType == TokenUriType.UNDEFINED) { uriType = _uriType; } return string( abi.encodePacked( HolographInterfacesInterface( HolographInterface(HolographerInterface(holographer()).getHolograph()).getInterfaces() ).getUriPrepend(uriType), _tokenURIs[_tokenId][uriType] ) ); } function cxipMint( uint224 tokenId, TokenUriType uriType, string calldata tokenUri ) external onlyHolographer onlyOwner { HolographERC721Interface H721 = HolographERC721Interface(holographer()); uint256 chainPrepend = H721.sourceGetChainPrepend(); if (tokenId == 0) { _currentTokenId += 1; while ( H721.exists(chainPrepend + uint256(_currentTokenId)) || H721.burned(chainPrepend + uint256(_currentTokenId)) ) { _currentTokenId += 1; } tokenId = _currentTokenId; } H721.sourceMint(msgSender(), tokenId); uint256 id = chainPrepend + uint256(tokenId); if (uriType == TokenUriType.UNDEFINED) { uriType = _uriType; } _tokenUriType[id] = uriType; _tokenURIs[id][uriType] = tokenUri; } function bridgeIn( uint32 /* _chainId*/, address /* _from*/, address /* _to*/, uint256 _tokenId, bytes calldata _data ) external onlyHolographer returns (bool) { (TokenUriType uriType, string memory tokenUri) = abi.decode(_data, (TokenUriType, string)); _tokenUriType[_tokenId] = uriType; _tokenURIs[_tokenId][uriType] = tokenUri; return true; } function bridgeOut( uint32 /* _chainId*/, address /* _from*/, address /* _to*/, uint256 _tokenId ) external view onlyHolographer returns (bytes memory _data) { TokenUriType uriType = _tokenUriType[_tokenId]; if (uriType == TokenUriType.UNDEFINED) { uriType = _uriType; } _data = abi.encode(uriType, _tokenURIs[_tokenId][uriType]); } function afterBurn(address /* _owner*/, uint256 _tokenId) external onlyHolographer returns (bool) { TokenUriType uriType = _tokenUriType[_tokenId]; if (uriType == TokenUriType.UNDEFINED) { uriType = _uriType; } delete _tokenURIs[_tokenId][uriType]; return true; } }
// SPDX-License-Identifier: UNLICENSED /* ┌───────────┐ │ HOLOGRAPH │ └───────────┘ ╔═════════════════════════════════════════════════════════════╗ ║ ║ ║ / ^ \ ║ ║ ~~*~~ ¸ ║ ║ [ '<>:<>' ] │░░░ ║ ║ ╔╗ _/"\_ ╔╣ ║ ║ ┌─╬╬─┐ """ ┌─╬╬─┐ ║ ║ ┌─┬┘ ╠╣ └┬─┐ \_/ ┌─┬┘ ╠╣ └┬─┐ ║ ║ ┌─┬┘ │ ╠╣ │ └┬─┐ ┌─┬┘ │ ╠╣ │ └┬─┐ ║ ║ ┌─┬┘ │ │ ╠╣ │ │ └┬─┐ ┌─┬┘ │ │ ╠╣ │ │ └┬─┐ ║ ║ ┌─┬┘ │ │ │ ╠╣ │ │ │ └┬┐ ┌┬┘ │ │ │ ╠╣ │ │ │ └┬─┐ ║ ╠┬┘ │ │ │ │ ╠╣ │ │ │ │└¤┘│ │ │ │ ╠╣ │ │ │ │ └┬╣ ║│ │ │ │ │ ╠╣ │ │ │ │ │ │ │ │ ╠╣ │ │ │ │ │║ ╠╩══╩══╩══╩══╩══╬╬══╩══╩══╩══╩═══╩══╩══╩══╩══╬╬══╩══╩══╩══╩══╩╣ ╠┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╬╬┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╬╬┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╣ ║ ╠╣ ╠╣ ║ ║ ╠╣ ╠╣ ║ ║ , ╠╣ , ,' * ╠╣ ║ ║~~~~~^~~~~~~~~┌╬╬┐~~~^~~~~~~~~^^~~~~~~~~^~~┌╬╬┐~~~~~~~^~~~~~~║ ╚══════════════╩╩╩╩═════════════════════════╩╩╩╩══════════════╝ - one protocol, one bridge = infinite possibilities - *************************************************************** DISCLAIMER: U.S Patent Pending LICENSE: Holograph Limited Public License (H-LPL) https://holograph.xyz/licenses/h-lpl/1.0.0 This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, you are not permitted to use the software. 1. Definitions The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law. A "contribution" is the original software, or any additions or changes to the software. A "contributor" is any person that distributes its contribution under this license. "Licensed patents" are a contributor’s patent claims that read directly on its contribution. 2. Grant of Rights A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in sections 3 and 4, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create. B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software. 3. Conditions and Limitations A) No Trademark License- This license does not grant you rights to use any contributors’ name, logo, or trademarks. B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor is terminated with immediate effect. C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software. D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license. E) The software is licensed “as-is.” You bear all risks of using it. The contributors give no express warranties, guarantees, or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude all implied warranties, including those of merchantability, fitness for a particular purpose and non-infringement. 4. (F) Platform Limitation- The licenses granted in sections 2.A & 2.B extend only to the software or derivative works that you create that run on a Holograph system product. *************************************************************** */ pragma solidity 0.8.13; import "../abstract/Initializable.sol"; abstract contract ERC721H is Initializable { /** * @dev bytes32(uint256(keccak256('eip1967.Holograph.holographer')) - 1) */ bytes32 constant _holographerSlot = 0xe9fcff60011c1a99f7b7244d1f2d9da93d79ea8ef3654ce590d775575255b2bd; /** * @dev bytes32(uint256(keccak256('eip1967.Holograph.owner')) - 1) */ bytes32 constant _ownerSlot = 0xb56711ba6bd3ded7639fc335ee7524fe668a79d7558c85992e3f8494cf772777; modifier onlyHolographer() { require(msg.sender == holographer(), "ERC721: holographer only"); _; } modifier onlyOwner() { require(msgSender() == _getOwner(), "ERC721: owner only function"); _; } /** * @dev Constructor is left empty and init is used instead */ constructor() {} /** * @notice Used internally to initialize the contract instead of through a constructor * @dev This function is called by the deployer/factory when creating a contract * @param initPayload abi encoded payload to use for contract initilaization */ function init(bytes memory initPayload) external virtual override returns (bytes4) { return _init(initPayload); } function _init(bytes memory /* initPayload*/) internal returns (bytes4) { require(!_isInitialized(), "ERC721: already initialized"); address _holographer = msg.sender; address currentOwner; assembly { sstore(_holographerSlot, _holographer) currentOwner := sload(_ownerSlot) } require(currentOwner != address(0), "HOLOGRAPH: owner not set"); _setInitialized(); return InitializableInterface.init.selector; } /** * @dev The Holographer passes original msg.sender via calldata. This function extracts it. */ function msgSender() internal view returns (address sender) { assembly { switch eq(caller(), sload(_holographerSlot)) case 0 { sender := caller() } default { sender := calldataload(sub(calldatasize(), 0x20)) } } } /** * @dev Address of Holograph ERC721 standards enforcer smart contract. */ function holographer() internal view returns (address _holographer) { assembly { _holographer := sload(_holographerSlot) } } function supportsInterface(bytes4) external pure virtual returns (bool) { return false; } /** * @dev Address of initial creator/owner of the collection. */ function owner() external view virtual returns (address) { return _getOwner(); } function isOwner() external view returns (bool) { return (msgSender() == _getOwner()); } function isOwner(address wallet) external view returns (bool) { return wallet == _getOwner(); } function _getOwner() internal view returns (address ownerAddress) { assembly { ownerAddress := sload(_ownerSlot) } } function _setOwner(address ownerAddress) internal { assembly { sstore(_ownerSlot, ownerAddress) } } function withdraw() external virtual onlyOwner { payable(_getOwner()).transfer(address(this).balance); } event FundsReceived(address indexed source, uint256 amount); /** * @dev This function emits an event to indicate native gas token receipt. Do not rely on this to work. * Please use custom payable functions for accepting native value. */ receive() external payable virtual { emit FundsReceived(msgSender(), msg.value); } /** * @dev Return true for any un-implemented event hooks */ fallback() external payable virtual { assembly { switch eq(sload(_holographerSlot), caller()) case 1 { mstore(0x80, 0x0000000000000000000000000000000000000000000000000000000000000001) return(0x80, 0x20) } default { revert(0x00, 0x00) } } } }
// SPDX-License-Identifier: UNLICENSED /* ┌───────────┐ │ HOLOGRAPH │ └───────────┘ ╔═════════════════════════════════════════════════════════════╗ ║ ║ ║ / ^ \ ║ ║ ~~*~~ ¸ ║ ║ [ '<>:<>' ] │░░░ ║ ║ ╔╗ _/"\_ ╔╣ ║ ║ ┌─╬╬─┐ """ ┌─╬╬─┐ ║ ║ ┌─┬┘ ╠╣ └┬─┐ \_/ ┌─┬┘ ╠╣ └┬─┐ ║ ║ ┌─┬┘ │ ╠╣ │ └┬─┐ ┌─┬┘ │ ╠╣ │ └┬─┐ ║ ║ ┌─┬┘ │ │ ╠╣ │ │ └┬─┐ ┌─┬┘ │ │ ╠╣ │ │ └┬─┐ ║ ║ ┌─┬┘ │ │ │ ╠╣ │ │ │ └┬┐ ┌┬┘ │ │ │ ╠╣ │ │ │ └┬─┐ ║ ╠┬┘ │ │ │ │ ╠╣ │ │ │ │└¤┘│ │ │ │ ╠╣ │ │ │ │ └┬╣ ║│ │ │ │ │ ╠╣ │ │ │ │ │ │ │ │ ╠╣ │ │ │ │ │║ ╠╩══╩══╩══╩══╩══╬╬══╩══╩══╩══╩═══╩══╩══╩══╩══╬╬══╩══╩══╩══╩══╩╣ ╠┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╬╬┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╬╬┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╣ ║ ╠╣ ╠╣ ║ ║ ╠╣ ╠╣ ║ ║ , ╠╣ , ,' * ╠╣ ║ ║~~~~~^~~~~~~~~┌╬╬┐~~~^~~~~~~~~^^~~~~~~~~^~~┌╬╬┐~~~~~~~^~~~~~~║ ╚══════════════╩╩╩╩═════════════════════════╩╩╩╩══════════════╝ - one protocol, one bridge = infinite possibilities - *************************************************************** DISCLAIMER: U.S Patent Pending LICENSE: Holograph Limited Public License (H-LPL) https://holograph.xyz/licenses/h-lpl/1.0.0 This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, you are not permitted to use the software. 1. Definitions The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law. A "contribution" is the original software, or any additions or changes to the software. A "contributor" is any person that distributes its contribution under this license. "Licensed patents" are a contributor’s patent claims that read directly on its contribution. 2. Grant of Rights A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in sections 3 and 4, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create. B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software. 3. Conditions and Limitations A) No Trademark License- This license does not grant you rights to use any contributors’ name, logo, or trademarks. B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor is terminated with immediate effect. C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software. D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license. E) The software is licensed “as-is.” You bear all risks of using it. The contributors give no express warranties, guarantees, or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude all implied warranties, including those of merchantability, fitness for a particular purpose and non-infringement. 4. (F) Platform Limitation- The licenses granted in sections 2.A & 2.B extend only to the software or derivative works that you create that run on a Holograph system product. *************************************************************** */ pragma solidity 0.8.13; import "../interface/InitializableInterface.sol"; /** * @title Initializable * @author https://github.com/holographxyz * @notice Use init instead of constructor * @dev This allows for use of init function to make one time initializations without the need for a constructor */ abstract contract Initializable is InitializableInterface { /** * @dev bytes32(uint256(keccak256('eip1967.Holograph.initialized')) - 1) */ bytes32 constant _initializedSlot = 0x4e5f991bca30eca2d4643aaefa807e88f96a4a97398933d572a3c0d973004a01; /** * @dev Constructor is left empty and init is used instead */ constructor() {} /** * @notice Used internally to initialize the contract instead of through a constructor * @dev This function is called by the deployer/factory when creating a contract * @param initPayload abi encoded payload to use for contract initilaization */ function init(bytes memory initPayload) external virtual returns (bytes4); function _isInitialized() internal view returns (bool initialized) { assembly { initialized := sload(_initializedSlot) } } function _setInitialized() internal { assembly { sstore(_initializedSlot, 0x0000000000000000000000000000000000000000000000000000000000000001) } } }
// SPDX-License-Identifier: UNLICENSED /* ┌───────────┐ │ HOLOGRAPH │ └───────────┘ ╔═════════════════════════════════════════════════════════════╗ ║ ║ ║ / ^ \ ║ ║ ~~*~~ ¸ ║ ║ [ '<>:<>' ] │░░░ ║ ║ ╔╗ _/"\_ ╔╣ ║ ║ ┌─╬╬─┐ """ ┌─╬╬─┐ ║ ║ ┌─┬┘ ╠╣ └┬─┐ \_/ ┌─┬┘ ╠╣ └┬─┐ ║ ║ ┌─┬┘ │ ╠╣ │ └┬─┐ ┌─┬┘ │ ╠╣ │ └┬─┐ ║ ║ ┌─┬┘ │ │ ╠╣ │ │ └┬─┐ ┌─┬┘ │ │ ╠╣ │ │ └┬─┐ ║ ║ ┌─┬┘ │ │ │ ╠╣ │ │ │ └┬┐ ┌┬┘ │ │ │ ╠╣ │ │ │ └┬─┐ ║ ╠┬┘ │ │ │ │ ╠╣ │ │ │ │└¤┘│ │ │ │ ╠╣ │ │ │ │ └┬╣ ║│ │ │ │ │ ╠╣ │ │ │ │ │ │ │ │ ╠╣ │ │ │ │ │║ ╠╩══╩══╩══╩══╩══╬╬══╩══╩══╩══╩═══╩══╩══╩══╩══╬╬══╩══╩══╩══╩══╩╣ ╠┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╬╬┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╬╬┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╣ ║ ╠╣ ╠╣ ║ ║ ╠╣ ╠╣ ║ ║ , ╠╣ , ,' * ╠╣ ║ ║~~~~~^~~~~~~~~┌╬╬┐~~~^~~~~~~~~^^~~~~~~~~^~~┌╬╬┐~~~~~~~^~~~~~~║ ╚══════════════╩╩╩╩═════════════════════════╩╩╩╩══════════════╝ - one protocol, one bridge = infinite possibilities - *************************************************************** DISCLAIMER: U.S Patent Pending LICENSE: Holograph Limited Public License (H-LPL) https://holograph.xyz/licenses/h-lpl/1.0.0 This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, you are not permitted to use the software. 1. Definitions The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law. A "contribution" is the original software, or any additions or changes to the software. A "contributor" is any person that distributes its contribution under this license. "Licensed patents" are a contributor’s patent claims that read directly on its contribution. 2. Grant of Rights A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in sections 3 and 4, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create. B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software. 3. Conditions and Limitations A) No Trademark License- This license does not grant you rights to use any contributors’ name, logo, or trademarks. B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor is terminated with immediate effect. C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software. D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license. E) The software is licensed “as-is.” You bear all risks of using it. The contributors give no express warranties, guarantees, or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude all implied warranties, including those of merchantability, fitness for a particular purpose and non-infringement. 4. (F) Platform Limitation- The licenses granted in sections 2.A & 2.B extend only to the software or derivative works that you create that run on a Holograph system product. *************************************************************** */ pragma solidity 0.8.13; enum ChainIdType { UNDEFINED, // 0 EVM, // 1 HOLOGRAPH, // 2 LAYERZERO, // 3 HYPERLANE // 4 }
// SPDX-License-Identifier: UNLICENSED /* ┌───────────┐ │ HOLOGRAPH │ └───────────┘ ╔═════════════════════════════════════════════════════════════╗ ║ ║ ║ / ^ \ ║ ║ ~~*~~ ¸ ║ ║ [ '<>:<>' ] │░░░ ║ ║ ╔╗ _/"\_ ╔╣ ║ ║ ┌─╬╬─┐ """ ┌─╬╬─┐ ║ ║ ┌─┬┘ ╠╣ └┬─┐ \_/ ┌─┬┘ ╠╣ └┬─┐ ║ ║ ┌─┬┘ │ ╠╣ │ └┬─┐ ┌─┬┘ │ ╠╣ │ └┬─┐ ║ ║ ┌─┬┘ │ │ ╠╣ │ │ └┬─┐ ┌─┬┘ │ │ ╠╣ │ │ └┬─┐ ║ ║ ┌─┬┘ │ │ │ ╠╣ │ │ │ └┬┐ ┌┬┘ │ │ │ ╠╣ │ │ │ └┬─┐ ║ ╠┬┘ │ │ │ │ ╠╣ │ │ │ │└¤┘│ │ │ │ ╠╣ │ │ │ │ └┬╣ ║│ │ │ │ │ ╠╣ │ │ │ │ │ │ │ │ ╠╣ │ │ │ │ │║ ╠╩══╩══╩══╩══╩══╬╬══╩══╩══╩══╩═══╩══╩══╩══╩══╬╬══╩══╩══╩══╩══╩╣ ╠┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╬╬┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╬╬┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╣ ║ ╠╣ ╠╣ ║ ║ ╠╣ ╠╣ ║ ║ , ╠╣ , ,' * ╠╣ ║ ║~~~~~^~~~~~~~~┌╬╬┐~~~^~~~~~~~~^^~~~~~~~~^~~┌╬╬┐~~~~~~~^~~~~~~║ ╚══════════════╩╩╩╩═════════════════════════╩╩╩╩══════════════╝ - one protocol, one bridge = infinite possibilities - *************************************************************** DISCLAIMER: U.S Patent Pending LICENSE: Holograph Limited Public License (H-LPL) https://holograph.xyz/licenses/h-lpl/1.0.0 This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, you are not permitted to use the software. 1. Definitions The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law. A "contribution" is the original software, or any additions or changes to the software. A "contributor" is any person that distributes its contribution under this license. "Licensed patents" are a contributor’s patent claims that read directly on its contribution. 2. Grant of Rights A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in sections 3 and 4, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create. B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software. 3. Conditions and Limitations A) No Trademark License- This license does not grant you rights to use any contributors’ name, logo, or trademarks. B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor is terminated with immediate effect. C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software. D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license. E) The software is licensed “as-is.” You bear all risks of using it. The contributors give no express warranties, guarantees, or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude all implied warranties, including those of merchantability, fitness for a particular purpose and non-infringement. 4. (F) Platform Limitation- The licenses granted in sections 2.A & 2.B extend only to the software or derivative works that you create that run on a Holograph system product. *************************************************************** */ pragma solidity 0.8.13; enum InterfaceType { UNDEFINED, // 0 ERC20, // 1 ERC721, // 2 ERC1155, // 3 ROYALTIES, // 4 GENERIC // 5 }
// SPDX-License-Identifier: UNLICENSED /* ┌───────────┐ │ HOLOGRAPH │ └───────────┘ ╔═════════════════════════════════════════════════════════════╗ ║ ║ ║ / ^ \ ║ ║ ~~*~~ ¸ ║ ║ [ '<>:<>' ] │░░░ ║ ║ ╔╗ _/"\_ ╔╣ ║ ║ ┌─╬╬─┐ """ ┌─╬╬─┐ ║ ║ ┌─┬┘ ╠╣ └┬─┐ \_/ ┌─┬┘ ╠╣ └┬─┐ ║ ║ ┌─┬┘ │ ╠╣ │ └┬─┐ ┌─┬┘ │ ╠╣ │ └┬─┐ ║ ║ ┌─┬┘ │ │ ╠╣ │ │ └┬─┐ ┌─┬┘ │ │ ╠╣ │ │ └┬─┐ ║ ║ ┌─┬┘ │ │ │ ╠╣ │ │ │ └┬┐ ┌┬┘ │ │ │ ╠╣ │ │ │ └┬─┐ ║ ╠┬┘ │ │ │ │ ╠╣ │ │ │ │└¤┘│ │ │ │ ╠╣ │ │ │ │ └┬╣ ║│ │ │ │ │ ╠╣ │ │ │ │ │ │ │ │ ╠╣ │ │ │ │ │║ ╠╩══╩══╩══╩══╩══╬╬══╩══╩══╩══╩═══╩══╩══╩══╩══╬╬══╩══╩══╩══╩══╩╣ ╠┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╬╬┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╬╬┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╣ ║ ╠╣ ╠╣ ║ ║ ╠╣ ╠╣ ║ ║ , ╠╣ , ,' * ╠╣ ║ ║~~~~~^~~~~~~~~┌╬╬┐~~~^~~~~~~~~^^~~~~~~~~^~~┌╬╬┐~~~~~~~^~~~~~~║ ╚══════════════╩╩╩╩═════════════════════════╩╩╩╩══════════════╝ - one protocol, one bridge = infinite possibilities - *************************************************************** DISCLAIMER: U.S Patent Pending LICENSE: Holograph Limited Public License (H-LPL) https://holograph.xyz/licenses/h-lpl/1.0.0 This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, you are not permitted to use the software. 1. Definitions The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law. A "contribution" is the original software, or any additions or changes to the software. A "contributor" is any person that distributes its contribution under this license. "Licensed patents" are a contributor’s patent claims that read directly on its contribution. 2. Grant of Rights A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in sections 3 and 4, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create. B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software. 3. Conditions and Limitations A) No Trademark License- This license does not grant you rights to use any contributors’ name, logo, or trademarks. B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor is terminated with immediate effect. C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software. D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license. E) The software is licensed “as-is.” You bear all risks of using it. The contributors give no express warranties, guarantees, or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude all implied warranties, including those of merchantability, fitness for a particular purpose and non-infringement. 4. (F) Platform Limitation- The licenses granted in sections 2.A & 2.B extend only to the software or derivative works that you create that run on a Holograph system product. *************************************************************** */ pragma solidity 0.8.13; enum TokenUriType { UNDEFINED, // 0 IPFS, // 1 HTTPS, // 2 ARWEAVE // 3 }
// SPDX-License-Identifier: UNLICENSED /* ┌───────────┐ │ HOLOGRAPH │ └───────────┘ ╔═════════════════════════════════════════════════════════════╗ ║ ║ ║ / ^ \ ║ ║ ~~*~~ ¸ ║ ║ [ '<>:<>' ] │░░░ ║ ║ ╔╗ _/"\_ ╔╣ ║ ║ ┌─╬╬─┐ """ ┌─╬╬─┐ ║ ║ ┌─┬┘ ╠╣ └┬─┐ \_/ ┌─┬┘ ╠╣ └┬─┐ ║ ║ ┌─┬┘ │ ╠╣ │ └┬─┐ ┌─┬┘ │ ╠╣ │ └┬─┐ ║ ║ ┌─┬┘ │ │ ╠╣ │ │ └┬─┐ ┌─┬┘ │ │ ╠╣ │ │ └┬─┐ ║ ║ ┌─┬┘ │ │ │ ╠╣ │ │ │ └┬┐ ┌┬┘ │ │ │ ╠╣ │ │ │ └┬─┐ ║ ╠┬┘ │ │ │ │ ╠╣ │ │ │ │└¤┘│ │ │ │ ╠╣ │ │ │ │ └┬╣ ║│ │ │ │ │ ╠╣ │ │ │ │ │ │ │ │ ╠╣ │ │ │ │ │║ ╠╩══╩══╩══╩══╩══╬╬══╩══╩══╩══╩═══╩══╩══╩══╩══╬╬══╩══╩══╩══╩══╩╣ ╠┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╬╬┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╬╬┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╣ ║ ╠╣ ╠╣ ║ ║ ╠╣ ╠╣ ║ ║ , ╠╣ , ,' * ╠╣ ║ ║~~~~~^~~~~~~~~┌╬╬┐~~~^~~~~~~~~^^~~~~~~~~^~~┌╬╬┐~~~~~~~^~~~~~~║ ╚══════════════╩╩╩╩═════════════════════════╩╩╩╩══════════════╝ - one protocol, one bridge = infinite possibilities - *************************************************************** DISCLAIMER: U.S Patent Pending LICENSE: Holograph Limited Public License (H-LPL) https://holograph.xyz/licenses/h-lpl/1.0.0 This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, you are not permitted to use the software. 1. Definitions The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law. A "contribution" is the original software, or any additions or changes to the software. A "contributor" is any person that distributes its contribution under this license. "Licensed patents" are a contributor’s patent claims that read directly on its contribution. 2. Grant of Rights A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in sections 3 and 4, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create. B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software. 3. Conditions and Limitations A) No Trademark License- This license does not grant you rights to use any contributors’ name, logo, or trademarks. B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor is terminated with immediate effect. C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software. D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license. E) The software is licensed “as-is.” You bear all risks of using it. The contributors give no express warranties, guarantees, or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude all implied warranties, including those of merchantability, fitness for a particular purpose and non-infringement. 4. (F) Platform Limitation- The licenses granted in sections 2.A & 2.B extend only to the software or derivative works that you create that run on a Holograph system product. *************************************************************** */ pragma solidity 0.8.13; interface CollectionURI { function contractURI() external view returns (string memory); }
// SPDX-License-Identifier: UNLICENSED pragma solidity 0.8.13; interface ERC165 { /// @notice Query if a contract implements an interface /// @param interfaceID The interface identifier, as specified in ERC-165 /// @dev Interface identification is specified in ERC-165. This function /// uses less than 30,000 gas. /// @return `true` if the contract implements `interfaceID` and /// `interfaceID` is not 0xffffffff, `false` otherwise function supportsInterface(bytes4 interfaceID) external view returns (bool); }
// SPDX-License-Identifier: UNLICENSED pragma solidity 0.8.13; /// @title ERC-721 Non-Fungible Token Standard /// @dev See https://eips.ethereum.org/EIPS/eip-721 /// Note: the ERC-165 identifier for this interface is 0x80ac58cd. /* is ERC165 */ interface ERC721 { /// @dev This emits when ownership of any NFT changes by any mechanism. /// This event emits when NFTs are created (`from` == 0) and destroyed /// (`to` == 0). Exception: during contract creation, any number of NFTs /// may be created and assigned without emitting Transfer. At the time of /// any transfer, the approved address for that NFT (if any) is reset to none. event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); /// @dev This emits when the approved address for an NFT is changed or /// reaffirmed. The zero address indicates there is no approved address. /// When a Transfer event emits, this also indicates that the approved /// address for that NFT (if any) is reset to none. event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); /// @dev This emits when an operator is enabled or disabled for an owner. /// The operator can manage all NFTs of the owner. event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); /// @notice Count all NFTs assigned to an owner /// @dev NFTs assigned to the zero address are considered invalid, and this /// function throws for queries about the zero address. /// @param _owner An address for whom to query the balance /// @return The number of NFTs owned by `_owner`, possibly zero function balanceOf(address _owner) external view returns (uint256); /// @notice Find the owner of an NFT /// @dev NFTs assigned to zero address are considered invalid, and queries /// about them do throw. /// @param _tokenId The identifier for an NFT /// @return The address of the owner of the NFT function ownerOf(uint256 _tokenId) external view returns (address); /// @notice Transfers the ownership of an NFT from one address to another address /// @dev Throws unless `msg.sender` is the current owner, an authorized /// operator, or the approved address for this NFT. Throws if `_from` is /// not the current owner. Throws if `_to` is the zero address. Throws if /// `_tokenId` is not a valid NFT. When transfer is complete, this function /// checks if `_to` is a smart contract (code size > 0). If so, it calls /// `onERC721Received` on `_to` and throws if the return value is not /// `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`. /// @param _from The current owner of the NFT /// @param _to The new owner /// @param _tokenId The NFT to transfer /// @param data Additional data with no specified format, sent in call to `_to` function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes calldata data) external payable; /// @notice Transfers the ownership of an NFT from one address to another address /// @dev This works identically to the other function with an extra data parameter, /// except this function just sets data to "". /// @param _from The current owner of the NFT /// @param _to The new owner /// @param _tokenId The NFT to transfer function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; /// @notice Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE /// TO CONFIRM THAT `_to` IS CAPABLE OF RECEIVING NFTS OR ELSE /// THEY MAY BE PERMANENTLY LOST /// @dev Throws unless `msg.sender` is the current owner, an authorized /// operator, or the approved address for this NFT. Throws if `_from` is /// not the current owner. Throws if `_to` is the zero address. Throws if /// `_tokenId` is not a valid NFT. /// @param _from The current owner of the NFT /// @param _to The new owner /// @param _tokenId The NFT to transfer function transferFrom(address _from, address _to, uint256 _tokenId) external payable; /// @notice Change or reaffirm the approved address for an NFT /// @dev The zero address indicates there is no approved address. /// Throws unless `msg.sender` is the current NFT owner, or an authorized /// operator of the current owner. /// @param _approved The new approved NFT controller /// @param _tokenId The NFT to approve function approve(address _approved, uint256 _tokenId) external payable; /// @notice Enable or disable approval for a third party ("operator") to manage /// all of `msg.sender`'s assets /// @dev Emits the ApprovalForAll event. The contract MUST allow /// multiple operators per owner. /// @param _operator Address to add to the set of authorized operators /// @param _approved True if the operator is approved, false to revoke approval function setApprovalForAll(address _operator, bool _approved) external; /// @notice Get the approved address for a single NFT /// @dev Throws if `_tokenId` is not a valid NFT. /// @param _tokenId The NFT to find the approved address for /// @return The approved address for this NFT, or the zero address if there is none function getApproved(uint256 _tokenId) external view returns (address); /// @notice Query if an address is an authorized operator for another address /// @param _owner The address that owns the NFTs /// @param _operator The address that acts on behalf of the owner /// @return True if `_operator` is an approved operator for `_owner`, false otherwise function isApprovedForAll(address _owner, address _operator) external view returns (bool); }
// SPDX-License-Identifier: UNLICENSED pragma solidity 0.8.13; /// @title ERC-721 Non-Fungible Token Standard, optional enumeration extension /// @dev See https://eips.ethereum.org/EIPS/eip-721 /// Note: the ERC-165 identifier for this interface is 0x780e9d63. /* is ERC721 */ interface ERC721Enumerable { /// @notice Count NFTs tracked by this contract /// @return A count of valid NFTs tracked by this contract, where each one of /// them has an assigned and queryable owner not equal to the zero address function totalSupply() external view returns (uint256); /// @notice Enumerate valid NFTs /// @dev Throws if `_index` >= `totalSupply()`. /// @param _index A counter less than `totalSupply()` /// @return The token identifier for the `_index`th NFT, /// (sort order not specified) function tokenByIndex(uint256 _index) external view returns (uint256); /// @notice Enumerate NFTs assigned to an owner /// @dev Throws if `_index` >= `balanceOf(_owner)` or if /// `_owner` is the zero address, representing invalid NFTs. /// @param _owner An address where we are interested in NFTs owned by them /// @param _index A counter less than `balanceOf(_owner)` /// @return The token identifier for the `_index`th NFT assigned to `_owner`, /// (sort order not specified) function tokenOfOwnerByIndex(address _owner, uint256 _index) external view returns (uint256); }
// SPDX-License-Identifier: UNLICENSED pragma solidity 0.8.13; /// @title ERC-721 Non-Fungible Token Standard, optional metadata extension /// @dev See https://eips.ethereum.org/EIPS/eip-721 /// Note: the ERC-165 identifier for this interface is 0x5b5e139f. /* is ERC721 */ interface ERC721Metadata { /// @notice A descriptive name for a collection of NFTs in this contract function name() external view returns (string memory _name); /// @notice An abbreviated name for NFTs in this contract function symbol() external view returns (string memory _symbol); /// @notice A distinct Uniform Resource Identifier (URI) for a given asset. /// @dev Throws if `_tokenId` is not a valid NFT. URIs are defined in RFC /// 3986. The URI may point to a JSON file that conforms to the "ERC721 /// Metadata JSON Schema". function tokenURI(uint256 _tokenId) external view returns (string memory); }
// SPDX-License-Identifier: UNLICENSED /* ┌───────────┐ │ HOLOGRAPH │ └───────────┘ ╔═════════════════════════════════════════════════════════════╗ ║ ║ ║ / ^ \ ║ ║ ~~*~~ ¸ ║ ║ [ '<>:<>' ] │░░░ ║ ║ ╔╗ _/"\_ ╔╣ ║ ║ ┌─╬╬─┐ """ ┌─╬╬─┐ ║ ║ ┌─┬┘ ╠╣ └┬─┐ \_/ ┌─┬┘ ╠╣ └┬─┐ ║ ║ ┌─┬┘ │ ╠╣ │ └┬─┐ ┌─┬┘ │ ╠╣ │ └┬─┐ ║ ║ ┌─┬┘ │ │ ╠╣ │ │ └┬─┐ ┌─┬┘ │ │ ╠╣ │ │ └┬─┐ ║ ║ ┌─┬┘ │ │ │ ╠╣ │ │ │ └┬┐ ┌┬┘ │ │ │ ╠╣ │ │ │ └┬─┐ ║ ╠┬┘ │ │ │ │ ╠╣ │ │ │ │└¤┘│ │ │ │ ╠╣ │ │ │ │ └┬╣ ║│ │ │ │ │ ╠╣ │ │ │ │ │ │ │ │ ╠╣ │ │ │ │ │║ ╠╩══╩══╩══╩══╩══╬╬══╩══╩══╩══╩═══╩══╩══╩══╩══╬╬══╩══╩══╩══╩══╩╣ ╠┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╬╬┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╬╬┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╣ ║ ╠╣ ╠╣ ║ ║ ╠╣ ╠╣ ║ ║ , ╠╣ , ,' * ╠╣ ║ ║~~~~~^~~~~~~~~┌╬╬┐~~~^~~~~~~~~^^~~~~~~~~^~~┌╬╬┐~~~~~~~^~~~~~~║ ╚══════════════╩╩╩╩═════════════════════════╩╩╩╩══════════════╝ - one protocol, one bridge = infinite possibilities - *************************************************************** DISCLAIMER: U.S Patent Pending LICENSE: Holograph Limited Public License (H-LPL) https://holograph.xyz/licenses/h-lpl/1.0.0 This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, you are not permitted to use the software. 1. Definitions The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law. A "contribution" is the original software, or any additions or changes to the software. A "contributor" is any person that distributes its contribution under this license. "Licensed patents" are a contributor’s patent claims that read directly on its contribution. 2. Grant of Rights A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in sections 3 and 4, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create. B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software. 3. Conditions and Limitations A) No Trademark License- This license does not grant you rights to use any contributors’ name, logo, or trademarks. B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor is terminated with immediate effect. C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software. D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license. E) The software is licensed “as-is.” You bear all risks of using it. The contributors give no express warranties, guarantees, or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude all implied warranties, including those of merchantability, fitness for a particular purpose and non-infringement. 4. (F) Platform Limitation- The licenses granted in sections 2.A & 2.B extend only to the software or derivative works that you create that run on a Holograph system product. *************************************************************** */ pragma solidity 0.8.13; /// @dev Note: the ERC-165 identifier for this interface is 0x150b7a02. interface ERC721TokenReceiver { /// @notice Handle the receipt of an NFT /// @dev The ERC721 smart contract calls this function on the recipient /// after a `transfer`. This function MAY throw to revert and reject the /// transfer. Return of other than the magic value MUST result in the /// transaction being reverted. /// Note: the contract address is always the message sender. /// @param _operator The address which called `safeTransferFrom` function /// @param _from The address which previously owned the token /// @param _tokenId The NFT identifier which is being transferred /// @param _data Additional data with no specified format /// @return `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))` /// unless throwing function onERC721Received( address _operator, address _from, uint256 _tokenId, bytes calldata _data ) external returns (bytes4); }
// SPDX-License-Identifier: UNLICENSED /* ┌───────────┐ │ HOLOGRAPH │ └───────────┘ ╔═════════════════════════════════════════════════════════════╗ ║ ║ ║ / ^ \ ║ ║ ~~*~~ ¸ ║ ║ [ '<>:<>' ] │░░░ ║ ║ ╔╗ _/"\_ ╔╣ ║ ║ ┌─╬╬─┐ """ ┌─╬╬─┐ ║ ║ ┌─┬┘ ╠╣ └┬─┐ \_/ ┌─┬┘ ╠╣ └┬─┐ ║ ║ ┌─┬┘ │ ╠╣ │ └┬─┐ ┌─┬┘ │ ╠╣ │ └┬─┐ ║ ║ ┌─┬┘ │ │ ╠╣ │ │ └┬─┐ ┌─┬┘ │ │ ╠╣ │ │ └┬─┐ ║ ║ ┌─┬┘ │ │ │ ╠╣ │ │ │ └┬┐ ┌┬┘ │ │ │ ╠╣ │ │ │ └┬─┐ ║ ╠┬┘ │ │ │ │ ╠╣ │ │ │ │└¤┘│ │ │ │ ╠╣ │ │ │ │ └┬╣ ║│ │ │ │ │ ╠╣ │ │ │ │ │ │ │ │ ╠╣ │ │ │ │ │║ ╠╩══╩══╩══╩══╩══╬╬══╩══╩══╩══╩═══╩══╩══╩══╩══╬╬══╩══╩══╩══╩══╩╣ ╠┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╬╬┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╬╬┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╣ ║ ╠╣ ╠╣ ║ ║ ╠╣ ╠╣ ║ ║ , ╠╣ , ,' * ╠╣ ║ ║~~~~~^~~~~~~~~┌╬╬┐~~~^~~~~~~~~^^~~~~~~~~^~~┌╬╬┐~~~~~~~^~~~~~~║ ╚══════════════╩╩╩╩═════════════════════════╩╩╩╩══════════════╝ - one protocol, one bridge = infinite possibilities - *************************************************************** DISCLAIMER: U.S Patent Pending LICENSE: Holograph Limited Public License (H-LPL) https://holograph.xyz/licenses/h-lpl/1.0.0 This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, you are not permitted to use the software. 1. Definitions The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law. A "contribution" is the original software, or any additions or changes to the software. A "contributor" is any person that distributes its contribution under this license. "Licensed patents" are a contributor’s patent claims that read directly on its contribution. 2. Grant of Rights A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in sections 3 and 4, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create. B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software. 3. Conditions and Limitations A) No Trademark License- This license does not grant you rights to use any contributors’ name, logo, or trademarks. B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor is terminated with immediate effect. C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software. D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license. E) The software is licensed “as-is.” You bear all risks of using it. The contributors give no express warranties, guarantees, or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude all implied warranties, including those of merchantability, fitness for a particular purpose and non-infringement. 4. (F) Platform Limitation- The licenses granted in sections 2.A & 2.B extend only to the software or derivative works that you create that run on a Holograph system product. *************************************************************** */ pragma solidity 0.8.13; interface Holographable { function bridgeIn(uint32 fromChain, bytes calldata payload) external returns (bytes4); function bridgeOut( uint32 toChain, address sender, bytes calldata payload ) external returns (bytes4 selector, bytes memory data); }
// SPDX-License-Identifier: UNLICENSED /* ┌───────────┐ │ HOLOGRAPH │ └───────────┘ ╔═════════════════════════════════════════════════════════════╗ ║ ║ ║ / ^ \ ║ ║ ~~*~~ ¸ ║ ║ [ '<>:<>' ] │░░░ ║ ║ ╔╗ _/"\_ ╔╣ ║ ║ ┌─╬╬─┐ """ ┌─╬╬─┐ ║ ║ ┌─┬┘ ╠╣ └┬─┐ \_/ ┌─┬┘ ╠╣ └┬─┐ ║ ║ ┌─┬┘ │ ╠╣ │ └┬─┐ ┌─┬┘ │ ╠╣ │ └┬─┐ ║ ║ ┌─┬┘ │ │ ╠╣ │ │ └┬─┐ ┌─┬┘ │ │ ╠╣ │ │ └┬─┐ ║ ║ ┌─┬┘ │ │ │ ╠╣ │ │ │ └┬┐ ┌┬┘ │ │ │ ╠╣ │ │ │ └┬─┐ ║ ╠┬┘ │ │ │ │ ╠╣ │ │ │ │└¤┘│ │ │ │ ╠╣ │ │ │ │ └┬╣ ║│ │ │ │ │ ╠╣ │ │ │ │ │ │ │ │ ╠╣ │ │ │ │ │║ ╠╩══╩══╩══╩══╩══╬╬══╩══╩══╩══╩═══╩══╩══╩══╩══╬╬══╩══╩══╩══╩══╩╣ ╠┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╬╬┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╬╬┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╣ ║ ╠╣ ╠╣ ║ ║ ╠╣ ╠╣ ║ ║ , ╠╣ , ,' * ╠╣ ║ ║~~~~~^~~~~~~~~┌╬╬┐~~~^~~~~~~~~^^~~~~~~~~^~~┌╬╬┐~~~~~~~^~~~~~~║ ╚══════════════╩╩╩╩═════════════════════════╩╩╩╩══════════════╝ - one protocol, one bridge = infinite possibilities - *************************************************************** DISCLAIMER: U.S Patent Pending LICENSE: Holograph Limited Public License (H-LPL) https://holograph.xyz/licenses/h-lpl/1.0.0 This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, you are not permitted to use the software. 1. Definitions The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law. A "contribution" is the original software, or any additions or changes to the software. A "contributor" is any person that distributes its contribution under this license. "Licensed patents" are a contributor’s patent claims that read directly on its contribution. 2. Grant of Rights A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in sections 3 and 4, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create. B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software. 3. Conditions and Limitations A) No Trademark License- This license does not grant you rights to use any contributors’ name, logo, or trademarks. B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor is terminated with immediate effect. C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software. D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license. E) The software is licensed “as-is.” You bear all risks of using it. The contributors give no express warranties, guarantees, or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude all implied warranties, including those of merchantability, fitness for a particular purpose and non-infringement. 4. (F) Platform Limitation- The licenses granted in sections 2.A & 2.B extend only to the software or derivative works that you create that run on a Holograph system product. *************************************************************** */ pragma solidity 0.8.13; import "./CollectionURI.sol"; import "./ERC165.sol"; import "./ERC721.sol"; import "./ERC721Enumerable.sol"; import "./ERC721Metadata.sol"; import "./ERC721TokenReceiver.sol"; import "./Holographable.sol"; interface HolographERC721Interface is ERC165, ERC721, ERC721Enumerable, ERC721Metadata, ERC721TokenReceiver, CollectionURI, Holographable { function approve(address to, uint256 tokenId) external payable; function burn(uint256 tokenId) external; function safeTransferFrom(address from, address to, uint256 tokenId) external payable; function setApprovalForAll(address to, bool approved) external; function sourceBurn(uint256 tokenId) external; function sourceMint(address to, uint224 tokenId) external; function sourceGetChainPrepend() external view returns (uint256); function sourceTransfer(address to, uint256 tokenId) external; function transfer(address to, uint256 tokenId) external payable; function contractURI() external view returns (string memory); function getApproved(uint256 tokenId) external view returns (address); function isApprovedForAll(address wallet, address operator) external view returns (bool); function name() external view returns (string memory); function burned(uint256 tokenId) external view returns (bool); function decimals() external pure returns (uint256); function exists(uint256 tokenId) external view returns (bool); function ownerOf(uint256 tokenId) external view returns (address); function supportsInterface(bytes4 interfaceId) external view returns (bool); function symbol() external view returns (string memory); function tokenByIndex(uint256 index) external view returns (uint256); function tokenOfOwnerByIndex(address wallet, uint256 index) external view returns (uint256); function tokensOfOwner(address wallet) external view returns (uint256[] memory); function tokenURI(uint256 tokenId) external view returns (string memory); function totalSupply() external view returns (uint256); }
// SPDX-License-Identifier: UNLICENSED /* ┌───────────┐ │ HOLOGRAPH │ └───────────┘ ╔═════════════════════════════════════════════════════════════╗ ║ ║ ║ / ^ \ ║ ║ ~~*~~ ¸ ║ ║ [ '<>:<>' ] │░░░ ║ ║ ╔╗ _/"\_ ╔╣ ║ ║ ┌─╬╬─┐ """ ┌─╬╬─┐ ║ ║ ┌─┬┘ ╠╣ └┬─┐ \_/ ┌─┬┘ ╠╣ └┬─┐ ║ ║ ┌─┬┘ │ ╠╣ │ └┬─┐ ┌─┬┘ │ ╠╣ │ └┬─┐ ║ ║ ┌─┬┘ │ │ ╠╣ │ │ └┬─┐ ┌─┬┘ │ │ ╠╣ │ │ └┬─┐ ║ ║ ┌─┬┘ │ │ │ ╠╣ │ │ │ └┬┐ ┌┬┘ │ │ │ ╠╣ │ │ │ └┬─┐ ║ ╠┬┘ │ │ │ │ ╠╣ │ │ │ │└¤┘│ │ │ │ ╠╣ │ │ │ │ └┬╣ ║│ │ │ │ │ ╠╣ │ │ │ │ │ │ │ │ ╠╣ │ │ │ │ │║ ╠╩══╩══╩══╩══╩══╬╬══╩══╩══╩══╩═══╩══╩══╩══╩══╬╬══╩══╩══╩══╩══╩╣ ╠┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╬╬┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╬╬┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╣ ║ ╠╣ ╠╣ ║ ║ ╠╣ ╠╣ ║ ║ , ╠╣ , ,' * ╠╣ ║ ║~~~~~^~~~~~~~~┌╬╬┐~~~^~~~~~~~~^^~~~~~~~~^~~┌╬╬┐~~~~~~~^~~~~~~║ ╚══════════════╩╩╩╩═════════════════════════╩╩╩╩══════════════╝ - one protocol, one bridge = infinite possibilities - *************************************************************** DISCLAIMER: U.S Patent Pending LICENSE: Holograph Limited Public License (H-LPL) https://holograph.xyz/licenses/h-lpl/1.0.0 This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, you are not permitted to use the software. 1. Definitions The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law. A "contribution" is the original software, or any additions or changes to the software. A "contributor" is any person that distributes its contribution under this license. "Licensed patents" are a contributor’s patent claims that read directly on its contribution. 2. Grant of Rights A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in sections 3 and 4, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create. B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software. 3. Conditions and Limitations A) No Trademark License- This license does not grant you rights to use any contributors’ name, logo, or trademarks. B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor is terminated with immediate effect. C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software. D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license. E) The software is licensed “as-is.” You bear all risks of using it. The contributors give no express warranties, guarantees, or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude all implied warranties, including those of merchantability, fitness for a particular purpose and non-infringement. 4. (F) Platform Limitation- The licenses granted in sections 2.A & 2.B extend only to the software or derivative works that you create that run on a Holograph system product. *************************************************************** */ pragma solidity 0.8.13; interface HolographerInterface { function getContractType() external view returns (bytes32 contractType); function getDeploymentBlock() external view returns (uint256 deploymentBlock); function getHolograph() external view returns (address holograph); function getHolographEnforcer() external view returns (address); function getOriginChain() external view returns (uint32 originChain); function getSourceContract() external view returns (address sourceContract); }
// SPDX-License-Identifier: UNLICENSED /* ┌───────────┐ │ HOLOGRAPH │ └───────────┘ ╔═════════════════════════════════════════════════════════════╗ ║ ║ ║ / ^ \ ║ ║ ~~*~~ ¸ ║ ║ [ '<>:<>' ] │░░░ ║ ║ ╔╗ _/"\_ ╔╣ ║ ║ ┌─╬╬─┐ """ ┌─╬╬─┐ ║ ║ ┌─┬┘ ╠╣ └┬─┐ \_/ ┌─┬┘ ╠╣ └┬─┐ ║ ║ ┌─┬┘ │ ╠╣ │ └┬─┐ ┌─┬┘ │ ╠╣ │ └┬─┐ ║ ║ ┌─┬┘ │ │ ╠╣ │ │ └┬─┐ ┌─┬┘ │ │ ╠╣ │ │ └┬─┐ ║ ║ ┌─┬┘ │ │ │ ╠╣ │ │ │ └┬┐ ┌┬┘ │ │ │ ╠╣ │ │ │ └┬─┐ ║ ╠┬┘ │ │ │ │ ╠╣ │ │ │ │└¤┘│ │ │ │ ╠╣ │ │ │ │ └┬╣ ║│ │ │ │ │ ╠╣ │ │ │ │ │ │ │ │ ╠╣ │ │ │ │ │║ ╠╩══╩══╩══╩══╩══╬╬══╩══╩══╩══╩═══╩══╩══╩══╩══╬╬══╩══╩══╩══╩══╩╣ ╠┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╬╬┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╬╬┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╣ ║ ╠╣ ╠╣ ║ ║ ╠╣ ╠╣ ║ ║ , ╠╣ , ,' * ╠╣ ║ ║~~~~~^~~~~~~~~┌╬╬┐~~~^~~~~~~~~^^~~~~~~~~^~~┌╬╬┐~~~~~~~^~~~~~~║ ╚══════════════╩╩╩╩═════════════════════════╩╩╩╩══════════════╝ - one protocol, one bridge = infinite possibilities - *************************************************************** DISCLAIMER: U.S Patent Pending LICENSE: Holograph Limited Public License (H-LPL) https://holograph.xyz/licenses/h-lpl/1.0.0 This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, you are not permitted to use the software. 1. Definitions The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law. A "contribution" is the original software, or any additions or changes to the software. A "contributor" is any person that distributes its contribution under this license. "Licensed patents" are a contributor’s patent claims that read directly on its contribution. 2. Grant of Rights A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in sections 3 and 4, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create. B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software. 3. Conditions and Limitations A) No Trademark License- This license does not grant you rights to use any contributors’ name, logo, or trademarks. B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor is terminated with immediate effect. C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software. D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license. E) The software is licensed “as-is.” You bear all risks of using it. The contributors give no express warranties, guarantees, or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude all implied warranties, including those of merchantability, fitness for a particular purpose and non-infringement. 4. (F) Platform Limitation- The licenses granted in sections 2.A & 2.B extend only to the software or derivative works that you create that run on a Holograph system product. *************************************************************** */ pragma solidity 0.8.13; /** * @title Holograph Protocol * @author https://github.com/holographxyz * @notice This is the primary Holograph Protocol smart contract * @dev This contract stores a reference to all the primary modules and variables of the protocol */ interface HolographInterface { /** * @notice Get the address of the Holograph Bridge module * @dev Used for beaming holographable assets cross-chain */ function getBridge() external view returns (address bridge); /** * @notice Update the Holograph Bridge module address * @param bridge address of the Holograph Bridge smart contract to use */ function setBridge(address bridge) external; /** * @notice Get the chain ID that the Protocol was deployed on * @dev Useful for checking if/when a hard fork occurs */ function getChainId() external view returns (uint256 chainId); /** * @notice Update the chain ID * @dev Useful for updating once a hard fork has been mitigated * @param chainId EVM chain ID to use */ function setChainId(uint256 chainId) external; /** * @notice Get the address of the Holograph Factory module * @dev Used for deploying holographable smart contracts */ function getFactory() external view returns (address factory); /** * @notice Update the Holograph Factory module address * @param factory address of the Holograph Factory smart contract to use */ function setFactory(address factory) external; /** * @notice Get the Holograph chain Id * @dev Holograph uses an internal chain id mapping */ function getHolographChainId() external view returns (uint32 holographChainId); /** * @notice Update the Holograph chain ID * @dev Useful for updating once a hard fork was mitigated * @param holographChainId Holograph chain ID to use */ function setHolographChainId(uint32 holographChainId) external; /** * @notice Get the address of the Holograph Interfaces module * @dev Holograph uses this contract to store data that needs to be accessed by a large portion of the modules */ function getInterfaces() external view returns (address interfaces); /** * @notice Update the Holograph Interfaces module address * @param interfaces address of the Holograph Interfaces smart contract to use */ function setInterfaces(address interfaces) external; /** * @notice Get the address of the Holograph Operator module * @dev All cross-chain Holograph Bridge beams are handled by the Holograph Operator module */ function getOperator() external view returns (address operator); /** * @notice Update the Holograph Operator module address * @param operator address of the Holograph Operator smart contract to use */ function setOperator(address operator) external; /** * @notice Get the Holograph Registry module * @dev This module stores a reference for all deployed holographable smart contracts */ function getRegistry() external view returns (address registry); /** * @notice Update the Holograph Registry module address * @param registry address of the Holograph Registry smart contract to use */ function setRegistry(address registry) external; /** * @notice Get the Holograph Treasury module * @dev All of the Holograph Protocol assets are stored and managed by this module */ function getTreasury() external view returns (address treasury); /** * @notice Update the Holograph Treasury module address * @param treasury address of the Holograph Treasury smart contract to use */ function setTreasury(address treasury) external; /** * @notice Get the Holograph Utility Token address * @dev This is the official utility token of the Holograph Protocol */ function getUtilityToken() external view returns (address utilityToken); /** * @notice Update the Holograph Utility Token address * @param utilityToken address of the Holograph Utility Token smart contract to use */ function setUtilityToken(address utilityToken) external; }
// SPDX-License-Identifier: UNLICENSED /* ┌───────────┐ │ HOLOGRAPH │ └───────────┘ ╔═════════════════════════════════════════════════════════════╗ ║ ║ ║ / ^ \ ║ ║ ~~*~~ ¸ ║ ║ [ '<>:<>' ] │░░░ ║ ║ ╔╗ _/"\_ ╔╣ ║ ║ ┌─╬╬─┐ """ ┌─╬╬─┐ ║ ║ ┌─┬┘ ╠╣ └┬─┐ \_/ ┌─┬┘ ╠╣ └┬─┐ ║ ║ ┌─┬┘ │ ╠╣ │ └┬─┐ ┌─┬┘ │ ╠╣ │ └┬─┐ ║ ║ ┌─┬┘ │ │ ╠╣ │ │ └┬─┐ ┌─┬┘ │ │ ╠╣ │ │ └┬─┐ ║ ║ ┌─┬┘ │ │ │ ╠╣ │ │ │ └┬┐ ┌┬┘ │ │ │ ╠╣ │ │ │ └┬─┐ ║ ╠┬┘ │ │ │ │ ╠╣ │ │ │ │└¤┘│ │ │ │ ╠╣ │ │ │ │ └┬╣ ║│ │ │ │ │ ╠╣ │ │ │ │ │ │ │ │ ╠╣ │ │ │ │ │║ ╠╩══╩══╩══╩══╩══╬╬══╩══╩══╩══╩═══╩══╩══╩══╩══╬╬══╩══╩══╩══╩══╩╣ ╠┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╬╬┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╬╬┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╣ ║ ╠╣ ╠╣ ║ ║ ╠╣ ╠╣ ║ ║ , ╠╣ , ,' * ╠╣ ║ ║~~~~~^~~~~~~~~┌╬╬┐~~~^~~~~~~~~^^~~~~~~~~^~~┌╬╬┐~~~~~~~^~~~~~~║ ╚══════════════╩╩╩╩═════════════════════════╩╩╩╩══════════════╝ - one protocol, one bridge = infinite possibilities - *************************************************************** DISCLAIMER: U.S Patent Pending LICENSE: Holograph Limited Public License (H-LPL) https://holograph.xyz/licenses/h-lpl/1.0.0 This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, you are not permitted to use the software. 1. Definitions The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law. A "contribution" is the original software, or any additions or changes to the software. A "contributor" is any person that distributes its contribution under this license. "Licensed patents" are a contributor’s patent claims that read directly on its contribution. 2. Grant of Rights A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in sections 3 and 4, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create. B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software. 3. Conditions and Limitations A) No Trademark License- This license does not grant you rights to use any contributors’ name, logo, or trademarks. B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor is terminated with immediate effect. C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software. D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license. E) The software is licensed “as-is.” You bear all risks of using it. The contributors give no express warranties, guarantees, or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude all implied warranties, including those of merchantability, fitness for a particular purpose and non-infringement. 4. (F) Platform Limitation- The licenses granted in sections 2.A & 2.B extend only to the software or derivative works that you create that run on a Holograph system product. *************************************************************** */ pragma solidity 0.8.13; import "../enum/ChainIdType.sol"; import "../enum/InterfaceType.sol"; import "../enum/TokenUriType.sol"; interface HolographInterfacesInterface { function contractURI( string calldata name, string calldata imageURL, string calldata externalLink, uint16 bps, address contractAddress ) external pure returns (string memory); function getUriPrepend(TokenUriType uriType) external view returns (string memory prepend); function updateUriPrepend(TokenUriType uriType, string calldata prepend) external; function updateUriPrepends(TokenUriType[] calldata uriTypes, string[] calldata prepends) external; function getChainId( ChainIdType fromChainType, uint256 fromChainId, ChainIdType toChainType ) external view returns (uint256 toChainId); function updateChainIdMap( ChainIdType fromChainType, uint256 fromChainId, ChainIdType toChainType, uint256 toChainId ) external; function updateChainIdMaps( ChainIdType[] calldata fromChainType, uint256[] calldata fromChainId, ChainIdType[] calldata toChainType, uint256[] calldata toChainId ) external; function supportsInterface(InterfaceType interfaceType, bytes4 interfaceId) external view returns (bool); function updateInterface(InterfaceType interfaceType, bytes4 interfaceId, bool supported) external; function updateInterfaces(InterfaceType interfaceType, bytes4[] calldata interfaceIds, bool supported) external; }
// SPDX-License-Identifier: UNLICENSED /* ┌───────────┐ │ HOLOGRAPH │ └───────────┘ ╔═════════════════════════════════════════════════════════════╗ ║ ║ ║ / ^ \ ║ ║ ~~*~~ ¸ ║ ║ [ '<>:<>' ] │░░░ ║ ║ ╔╗ _/"\_ ╔╣ ║ ║ ┌─╬╬─┐ """ ┌─╬╬─┐ ║ ║ ┌─┬┘ ╠╣ └┬─┐ \_/ ┌─┬┘ ╠╣ └┬─┐ ║ ║ ┌─┬┘ │ ╠╣ │ └┬─┐ ┌─┬┘ │ ╠╣ │ └┬─┐ ║ ║ ┌─┬┘ │ │ ╠╣ │ │ └┬─┐ ┌─┬┘ │ │ ╠╣ │ │ └┬─┐ ║ ║ ┌─┬┘ │ │ │ ╠╣ │ │ │ └┬┐ ┌┬┘ │ │ │ ╠╣ │ │ │ └┬─┐ ║ ╠┬┘ │ │ │ │ ╠╣ │ │ │ │└¤┘│ │ │ │ ╠╣ │ │ │ │ └┬╣ ║│ │ │ │ │ ╠╣ │ │ │ │ │ │ │ │ ╠╣ │ │ │ │ │║ ╠╩══╩══╩══╩══╩══╬╬══╩══╩══╩══╩═══╩══╩══╩══╩══╬╬══╩══╩══╩══╩══╩╣ ╠┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╬╬┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╬╬┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╣ ║ ╠╣ ╠╣ ║ ║ ╠╣ ╠╣ ║ ║ , ╠╣ , ,' * ╠╣ ║ ║~~~~~^~~~~~~~~┌╬╬┐~~~^~~~~~~~~^^~~~~~~~~^~~┌╬╬┐~~~~~~~^~~~~~~║ ╚══════════════╩╩╩╩═════════════════════════╩╩╩╩══════════════╝ - one protocol, one bridge = infinite possibilities - *************************************************************** DISCLAIMER: U.S Patent Pending LICENSE: Holograph Limited Public License (H-LPL) https://holograph.xyz/licenses/h-lpl/1.0.0 This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, you are not permitted to use the software. 1. Definitions The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law. A "contribution" is the original software, or any additions or changes to the software. A "contributor" is any person that distributes its contribution under this license. "Licensed patents" are a contributor’s patent claims that read directly on its contribution. 2. Grant of Rights A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in sections 3 and 4, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create. B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software. 3. Conditions and Limitations A) No Trademark License- This license does not grant you rights to use any contributors’ name, logo, or trademarks. B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor is terminated with immediate effect. C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software. D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license. E) The software is licensed “as-is.” You bear all risks of using it. The contributors give no express warranties, guarantees, or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude all implied warranties, including those of merchantability, fitness for a particular purpose and non-infringement. 4. (F) Platform Limitation- The licenses granted in sections 2.A & 2.B extend only to the software or derivative works that you create that run on a Holograph system product. *************************************************************** */ pragma solidity 0.8.13; /** * @title Initializable * @author https://github.com/holographxyz * @notice Use init instead of constructor * @dev This allows for use of init function to make one time initializations without the need of a constructor */ interface InitializableInterface { /** * @notice Used internally to initialize the contract instead of through a constructor * @dev This function is called by the deployer/factory when creating a contract * @param initPayload abi encoded payload to use for contract initilaization */ function init(bytes memory initPayload) external returns (bytes4); }
{ "optimizer": { "enabled": true, "runs": 999999 }, "metadata": { "bytecodeHash": "none", "useLiteralContent": true }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "remappings": [ "ds-test/=lib/forge-std/lib/ds-test/src/", "erc721a-upgradeable/=erc721a-upgradeable/", "forge-std/=lib/forge-std/src/" ], "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"source","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"FundsReceived","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"afterBurn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"bridgeIn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"bridgeOut","outputs":[{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint224","name":"tokenId","type":"uint224"},{"internalType":"enum TokenUriType","name":"uriType","type":"uint8"},{"internalType":"string","name":"tokenUri","type":"string"}],"name":"cxipMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"initPayload","type":"bytes"}],"name":"init","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Deployed Bytecode
0x6080604052600436106100c05760003560e01c80638da5cb5b11610074578063c87b56dd1161004e578063c87b56dd146102b4578063e003ba45146102d4578063f0f54073146102f45761011e565b80638da5cb5b146102455780638f32d59b1461027f578063971c34b4146102945761011e565b80633ccfd60b116100a55780633ccfd60b146101b25780634ddf47d4146101c75780638b1465c6146102185761011e565b806301ffc9a71461015c5780632f54bf6e146101925761011e565b3661011e576100cd610314565b73ffffffffffffffffffffffffffffffffffffffff167f8e47b87b0ef542cdfa1659c551d88bad38aa7f452d2bbb349ab7530dfec8be8f3460405161011491815260200190565b60405180910390a2005b337fe9fcff60011c1a99f7b7244d1f2d9da93d79ea8ef3654ce590d775575255b2bd54146001811461014f57600080fd5b600160805260206080f35b005b34801561016857600080fd5b5061017d61017736600461174c565b50600090565b60405190151581526020015b60405180910390f35b34801561019e57600080fd5b5061017d6101ad3660046117b0565b610373565b3480156101be57600080fd5b5061015a6103d2565b3480156101d357600080fd5b506101e76101e23660046118cf565b6104fc565b6040517fffffffff000000000000000000000000000000000000000000000000000000009091168152602001610189565b34801561022457600080fd5b50610238610233366004611934565b610594565b60405161018991906119fd565b34801561025157600080fd5b5061025a610710565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610189565b34801561028b57600080fd5b5061017d61073f565b3480156102a057600080fd5b5061017d6102af366004611a10565b6107a3565b3480156102c057600080fd5b506102386102cf366004611a3c565b61090b565b3480156102e057600080fd5b5061015a6102ef366004611aad565b610c1d565b34801561030057600080fd5b5061017d61030f366004611b31565b6112be565b60007fe9fcff60011c1a99f7b7244d1f2d9da93d79ea8ef3654ce590d775575255b2bd5433146000811461036b5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe036013590565b3391505b5090565b600061039d7fb56711ba6bd3ded7639fc335ee7524fe668a79d7558c85992e3f8494cf7727775490565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b7fb56711ba6bd3ded7639fc335ee7524fe668a79d7558c85992e3f8494cf7727775473ffffffffffffffffffffffffffffffffffffffff16610412610314565b73ffffffffffffffffffffffffffffffffffffffff1614610494576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4552433732313a206f776e6572206f6e6c792066756e6374696f6e000000000060448201526064015b60405180910390fd5b7fb56711ba6bd3ded7639fc335ee7524fe668a79d7558c85992e3f8494cf7727775460405173ffffffffffffffffffffffffffffffffffffffff909116904780156108fc02916000818181858888f193505050501580156104f9573d6000803e3d6000fd5b50565b600080547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c01000000000000000000000000000000000000000000000000000000001781558151819061055a9060209085018101908501611be3565b9050610584817fb56711ba6bd3ded7639fc335ee7524fe668a79d7558c85992e3f8494cf77277755565b61058d83611444565b9392505050565b60606105be7fe9fcff60011c1a99f7b7244d1f2d9da93d79ea8ef3654ce590d775575255b2bd5490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610652576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20686f6c6f67726170686572206f6e6c790000000000000000604482015260640161048b565b60008281526001602052604081205460ff169081600381111561067757610677611bb4565b036106a457506000547c0100000000000000000000000000000000000000000000000000000000900460ff165b600083815260026020526040812082918260038111156106c6576106c6611bb4565b60038111156106d7576106d7611bb4565b81526020019081526020016000206040516020016106f6929190611c8e565b604051602081830303815290604052915050949350505050565b600061073a7fb56711ba6bd3ded7639fc335ee7524fe668a79d7558c85992e3f8494cf7727775490565b905090565b60006107697fb56711ba6bd3ded7639fc335ee7524fe668a79d7558c85992e3f8494cf7727775490565b73ffffffffffffffffffffffffffffffffffffffff16610787610314565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b60006107cd7fe9fcff60011c1a99f7b7244d1f2d9da93d79ea8ef3654ce590d775575255b2bd5490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610861576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20686f6c6f67726170686572206f6e6c790000000000000000604482015260640161048b565b60008281526001602052604081205460ff169081600381111561088657610886611bb4565b036108b357506000547c0100000000000000000000000000000000000000000000000000000000900460ff165b6000838152600260205260408120908260038111156108d4576108d4611bb4565b60038111156108e5576108e5611bb4565b815260200190815260200160002060006108ff91906115eb565b60019150505b92915050565b60606109357fe9fcff60011c1a99f7b7244d1f2d9da93d79ea8ef3654ce590d775575255b2bd5490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20686f6c6f67726170686572206f6e6c790000000000000000604482015260640161048b565b60008281526001602052604081205460ff16908160038111156109ee576109ee611bb4565b03610a1b57506000547c0100000000000000000000000000000000000000000000000000000000900460ff165b7fe9fcff60011c1a99f7b7244d1f2d9da93d79ea8ef3654ce590d775575255b2bd5473ffffffffffffffffffffffffffffffffffffffff16634827ae0c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aab9190611be3565b73ffffffffffffffffffffffffffffffffffffffff1663ebac15f96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610af5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b199190611be3565b73ffffffffffffffffffffffffffffffffffffffff16630a2bb379826040518263ffffffff1660e01b8152600401610b519190611d40565b600060405180830381865afa158015610b6e573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610bb49190810190611d4e565b600084815260026020526040812090836003811115610bd557610bd5611bb4565b6003811115610be657610be6611bb4565b8152602001908152602001600020604051602001610c05929190611dc5565b6040516020818303038152906040529150505b919050565b7fe9fcff60011c1a99f7b7244d1f2d9da93d79ea8ef3654ce590d775575255b2bd5473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cd3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20686f6c6f67726170686572206f6e6c790000000000000000604482015260640161048b565b7fb56711ba6bd3ded7639fc335ee7524fe668a79d7558c85992e3f8494cf7727775473ffffffffffffffffffffffffffffffffffffffff16610d13610314565b73ffffffffffffffffffffffffffffffffffffffff1614610d90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4552433732313a206f776e6572206f6e6c792066756e6374696f6e0000000000604482015260640161048b565b6000610dba7fe9fcff60011c1a99f7b7244d1f2d9da93d79ea8ef3654ce590d775575255b2bd5490565b905060008173ffffffffffffffffffffffffffffffffffffffff166377dbd8636040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2d9190611e6c565b9050857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166000036110dc5760008054600191908190610e889084907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16611eb4565b92506101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1602179055505b60005473ffffffffffffffffffffffffffffffffffffffff831690634f558e7990610f20907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1684611ef4565b6040518263ffffffff1660e01b8152600401610f3e91815260200190565b602060405180830381865afa158015610f5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7f9190611f0c565b8061102d575060005473ffffffffffffffffffffffffffffffffffffffff8316906323250cae90610fce907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1684611ef4565b6040518263ffffffff1660e01b8152600401610fec91815260200190565b602060405180830381865afa158015611009573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102d9190611f0c565b156110b857600080546001919081906110659084907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16611eb4565b92506101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff160217905550610ed7565b6000547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1695505b8173ffffffffffffffffffffffffffffffffffffffff16633b4f1b26611100610314565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff90911660048201527bffffffffffffffffffffffffffffffffffffffffffffffffffffffff89166024820152604401600060405180830381600087803b15801561118a57600080fd5b505af115801561119e573d6000803e3d6000fd5b505050506000867bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16826111ce9190611ef4565b905060008660038111156111e4576111e4611bb4565b03611212576000547c0100000000000000000000000000000000000000000000000000000000900460ff1695505b6000818152600160208190526040909120805488927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009091169083600381111561125e5761125e611bb4565b02179055506000818152600260205260408120869186919089600381111561128857611288611bb4565b600381111561129957611299611bb4565b815260200190815260200160002091906112b4929190611625565b5050505050505050565b60006112e87fe9fcff60011c1a99f7b7244d1f2d9da93d79ea8ef3654ce590d775575255b2bd5490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461137c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20686f6c6f67726170686572206f6e6c790000000000000000604482015260640161048b565b60008061138b84860186611f2e565b6000888152600160208190526040909120805493955091935084927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016908360038111156113db576113db611bb4565b02179055506000868152600260205260408120829184600381111561140257611402611bb4565b600381111561141357611413611bb4565b815260200190815260200160002090805190602001906114349291906116c3565b5060019998505050505050505050565b600061146e7f4e5f991bca30eca2d4643aaefa807e88f96a4a97398933d572a3c0d973004a015490565b156114d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4552433732313a20616c726561647920696e697469616c697a65640000000000604482015260640161048b565b337fe9fcff60011c1a99f7b7244d1f2d9da93d79ea8ef3654ce590d775575255b2bd8190557fb56711ba6bd3ded7639fc335ee7524fe668a79d7558c85992e3f8494cf7727775473ffffffffffffffffffffffffffffffffffffffff8116611599576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f484f4c4f47524150483a206f776e6572206e6f74207365740000000000000000604482015260640161048b565b6115c260017f4e5f991bca30eca2d4643aaefa807e88f96a4a97398933d572a3c0d973004a0155565b507f4ddf47d4000000000000000000000000000000000000000000000000000000009392505050565b5080546115f790611c3b565b6000825580601f10611607575050565b601f0160209004906000526020600020908101906104f99190611737565b82805461163190611c3b565b90600052602060002090601f01602090048101928261165357600085556116b7565b82601f1061168a578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008235161785556116b7565b828001600101855582156116b7579182015b828111156116b757823582559160200191906001019061169c565b5061036f929150611737565b8280546116cf90611c3b565b90600052602060002090601f0160209004810192826116f157600085556116b7565b82601f1061170a57805160ff19168380011785556116b7565b828001600101855582156116b7579182015b828111156116b757825182559160200191906001019061171c565b5b8082111561036f5760008155600101611738565b60006020828403121561175e57600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461058d57600080fd5b73ffffffffffffffffffffffffffffffffffffffff811681146104f957600080fd5b6000602082840312156117c257600080fd5b813561058d8161178e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611843576118436117cd565b604052919050565b600067ffffffffffffffff821115611865576118656117cd565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60006118a461189f8461184b565b6117fc565b90508281528383830111156118b857600080fd5b828260208301376000602084830101529392505050565b6000602082840312156118e157600080fd5b813567ffffffffffffffff8111156118f857600080fd5b8201601f8101841361190957600080fd5b61191884823560208401611891565b949350505050565b803563ffffffff81168114610c1857600080fd5b6000806000806080858703121561194a57600080fd5b61195385611920565b935060208501356119638161178e565b925060408501356119738161178e565b9396929550929360600135925050565b60005b8381101561199e578181015183820152602001611986565b838111156119ad576000848401525b50505050565b600081518084526119cb816020860160208601611983565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061058d60208301846119b3565b60008060408385031215611a2357600080fd5b8235611a2e8161178e565b946020939093013593505050565b600060208284031215611a4e57600080fd5b5035919050565b803560048110610c1857600080fd5b60008083601f840112611a7657600080fd5b50813567ffffffffffffffff811115611a8e57600080fd5b602083019150836020828501011115611aa657600080fd5b9250929050565b60008060008060608587031215611ac357600080fd5b84357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81168114611aef57600080fd5b9350611afd60208601611a55565b9250604085013567ffffffffffffffff811115611b1957600080fd5b611b2587828801611a64565b95989497509550505050565b60008060008060008060a08789031215611b4a57600080fd5b611b5387611920565b95506020870135611b638161178e565b94506040870135611b738161178e565b935060608701359250608087013567ffffffffffffffff811115611b9657600080fd5b611ba289828a01611a64565b979a9699509497509295939492505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600060208284031215611bf557600080fd5b815161058d8161178e565b60048110611c37577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b600181811c90821680611c4f57607f821691505b602082108103611c88577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b611c988184611c00565b6000602060408184015260008454611caf81611c3b565b8060408701526060600180841660008114611cd15760018114611d0357611d31565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008516838a0152608089019550611d31565b896000528660002060005b85811015611d295781548b8201860152908301908801611d0e565b8a0184019650505b50939998505050505050505050565b602081016109058284611c00565b600060208284031215611d6057600080fd5b815167ffffffffffffffff811115611d7757600080fd5b8201601f81018413611d8857600080fd5b8051611d9661189f8261184b565b818152856020838501011115611dab57600080fd5b611dbc826020830160208601611983565b95945050505050565b600083516020611dd88285838901611983565b818401915060008554611dea81611c3b565b60018281168015611e025760018114611e3157611e5d565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00841687528287019450611e5d565b896000528560002060005b84811015611e5557815489820152908301908701611e3c565b505082870194505b50929998505050505050505050565b600060208284031215611e7e57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff808316818516808303821115611eeb57611eeb611e85565b01949350505050565b60008219821115611f0757611f07611e85565b500190565b600060208284031215611f1e57600080fd5b8151801515811461058d57600080fd5b60008060408385031215611f4157600080fd5b611f4a83611a55565b9150602083013567ffffffffffffffff811115611f6657600080fd5b8301601f81018513611f7757600080fd5b611f8685823560208401611891565b915050925092905056fea164736f6c634300080d000a
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ 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.