ETH Price: $3,810.64 (+1.74%)

Transaction Decoder

Block:
22705569 at Jun-14-2025 09:46:11 PM +UTC
Transaction Fee:
0.000100080000721908 ETH $0.38
Gas Used:
230,148 Gas / 0.434850621 Gwei

Emitted Events:

436 TransparentUpgradeableProxy.0x956cd63ee4cdcd81fda5f0ec7c6c36dceda99e1b412f4a650a5d26055dc3c450( 0x956cd63ee4cdcd81fda5f0ec7c6c36dceda99e1b412f4a650a5d26055dc3c450, 7d57d26a0805a8504c3fd4a007494b0579c7c2fa54c3f617cc352c81599a6d7c, ec89cd1d8dab79636f41ffa6b9883ce0e8844c0a1f8be3d23fd2967ec1a1da3f, 00000000000000000000000000000000000000000000000000b1a2bc2ec50000, 0000000000000000000000000000000000000000000000000000000000000001 )
437 DropERC721.Approval( owner=0x208f51cdfbb83a1d811a7fd740c045a9e56c653f, approved=0x00000000...000000000, tokenId=1 )
438 DropERC721.Transfer( from=0x208f51cdfbb83a1d811a7fd740c045a9e56c653f, to=[Sender] 0xa6f88e23483ae040807ad2ff63cf58ea5c3670c8, tokenId=1 )

Account State Difference:

  Address   Before After State Difference Code
0x1cf0dF2A...b8d39e18a
(Rarible: Treasury)
4.766342309586560346 Eth4.771092309586560346 Eth0.00475
0x1Fcf9297...6835199bD
0x208F51CD...9e56C653F 0.053094053764123066 Eth0.100594053764123066 Eth0.0475
(Titan Builder)
10.447883008936615593 Eth10.447892066143033173 Eth0.00000905720641758
0x7e9c956e...71f42CBC5 1.042699111941285209 Eth1.042949111941285209 Eth0.00025
0x9757F2d2...4107cd8D6
(Rarible: Exchange V2)
0xA6f88e23...a5C3670C8
0.066054935761319304 Eth
Nonce: 109
0.013454855760597396 Eth
Nonce: 110
0.052600080000721908

Execution Trace

ETH 0.0525 TransparentUpgradeableProxy.e99a3f80( )
  • ETH 0.0525 ExchangeV2.matchOrders( orderLeft=[{name:maker, type:address, order:1, indexed:false, value:0x208F51CDFBb83A1D811A7Fd740C045A9e56C653F, valueString:0x208F51CDFBb83A1D811A7Fd740C045A9e56C653F}, {name:makeAsset, type:tuple, order:2, indexed:false, value:[{name:assetType, type:tuple, order:1, indexed:false, value:[{name:assetClass, type:bytes4, order:1, indexed:false, value:c60hRg==, valueString:System.Byte[]}, {name:data, type:bytes, order:2, indexed:false, value:0x0000000000000000000000001FCF92979C2D967BD6EE143124B99D76835199BD0000000000000000000000000000000000000000000000000000000000000001, valueString:0x0000000000000000000000001FCF92979C2D967BD6EE143124B99D76835199BD0000000000000000000000000000000000000000000000000000000000000001}], valueString:[{name:assetClass, type:bytes4, order:1, indexed:false, value:c60hRg==, valueString:System.Byte[]}, {name:data, type:bytes, order:2, indexed:false, value:0x0000000000000000000000001FCF92979C2D967BD6EE143124B99D76835199BD0000000000000000000000000000000000000000000000000000000000000001, valueString:0x0000000000000000000000001FCF92979C2D967BD6EE143124B99D76835199BD0000000000000000000000000000000000000000000000000000000000000001}]}, {name:value, type:uint256, order:2, indexed:false, value:1, valueString:1}], valueString:[{name:assetType, type:tuple, order:1, indexed:false, value:[{name:assetClass, type:bytes4, order:1, indexed:false, value:c60hRg==, valueString:System.Byte[]}, {name:data, type:bytes, order:2, indexed:false, value:0x0000000000000000000000001FCF92979C2D967BD6EE143124B99D76835199BD0000000000000000000000000000000000000000000000000000000000000001, valueString:0x0000000000000000000000001FCF92979C2D967BD6EE143124B99D76835199BD0000000000000000000000000000000000000000000000000000000000000001}], valueString:[{name:assetClass, type:bytes4, order:1, indexed:false, value:c60hRg==, valueString:System.Byte[]}, {name:data, type:bytes, order:2, indexed:false, value:0x0000000000000000000000001FCF92979C2D967BD6EE143124B99D76835199BD0000000000000000000000000000000000000000000000000000000000000001, valueString:0x0000000000000000000000001FCF92979C2D967BD6EE143124B99D76835199BD0000000000000000000000000000000000000000000000000000000000000001}]}, {name:value, type:uint256, order:2, indexed:false, value:1, valueString:1}]}, {name:taker, type:address, order:3, indexed:false, value:0x0000000000000000000000000000000000000000, valueString:0x0000000000000000000000000000000000000000}, {name:takeAsset, type:tuple, order:4, indexed:false, value:[{name:assetType, type:tuple, order:1, indexed:false, value:[{name:assetClass, type:bytes4, order:1, indexed:false, value:qq6+ug==, valueString:System.Byte[]}, {name:data, type:bytes, order:2, indexed:false, value:0x, valueString:0x}], valueString:[{name:assetClass, type:bytes4, order:1, indexed:false, value:qq6u002Bug==, valueString:System.Byte[]}, {name:data, type:bytes, order:2, indexed:false, value:0x, valueString:0x}]}, {name:value, type:uint256, order:2, indexed:false, value:50000000000000000, valueString:50000000000000000}], valueString:[{name:assetType, type:tuple, order:1, indexed:false, value:[{name:assetClass, type:bytes4, order:1, indexed:false, value:qq6u002Bug==, valueString:System.Byte[]}, {name:data, type:bytes, order:2, indexed:false, value:0x, valueString:0x}], valueString:[{name:assetClass, type:bytes4, order:1, indexed:false, value:qq6u002Bug==, valueString:System.Byte[]}, {name:data, type:bytes, order:2, indexed:false, value:0x, valueString:0x}]}, {name:value, type:uint256, order:2, indexed:false, value:50000000000000000, valueString:50000000000000000}]}, {name:salt, type:uint256, order:5, indexed:false, value:44055455592075237080035554055723107394851506750169765368826648863712983207753, valueString:44055455592075237080035554055723107394851506750169765368826648863712983207753}, {name:start, type:uint256, order:6, indexed:false, value:0, valueString:0}, {name:end, type:uint256, order:7, indexed:false, value:1752528530, valueString:1752528530}, {name:dataType, type:bytes4, order:8, indexed:false, value:St5Uyg==, valueString:System.Byte[]}, {name:data, type:bytes, order:9, indexed:false, value:0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000001CF0DF2A5A20CD61D68D4489EEBBF85B8D39E18A00000000000000000000000000000000000000000000000000000000000001DB, valueString:0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000001CF0DF2A5A20CD61D68D4489EEBBF85B8D39E18A00000000000000000000000000000000000000000000000000000000000001DB}], signatureLeft=0x16E26BCF391746F2620760D82BD3FD285640035A1E6757E5FA0FAF6B4FFBDCC44FF614E611B6408B47E7FEC276D823FE800E58C91912A035A4615EAFD47E88C51B, orderRight=[{name:maker, type:address, order:1, indexed:false, value:0xA6f88e23483ae040807ad2fF63cF58Ea5C3670C8, valueString:0xA6f88e23483ae040807ad2fF63cF58Ea5C3670C8}, {name:makeAsset, type:tuple, order:2, indexed:false, value:[{name:assetType, type:tuple, order:1, indexed:false, value:[{name:assetClass, type:bytes4, order:1, indexed:false, value:qq6+ug==, valueString:System.Byte[]}, {name:data, type:bytes, order:2, indexed:false, value:0x, valueString:0x}], valueString:[{name:assetClass, type:bytes4, order:1, indexed:false, value:qq6u002Bug==, valueString:System.Byte[]}, {name:data, type:bytes, order:2, indexed:false, value:0x, valueString:0x}]}, {name:value, type:uint256, order:2, indexed:false, value:50000000000000000, valueString:50000000000000000}], valueString:[{name:assetType, type:tuple, order:1, indexed:false, value:[{name:assetClass, type:bytes4, order:1, indexed:false, value:qq6u002Bug==, valueString:System.Byte[]}, {name:data, type:bytes, order:2, indexed:false, value:0x, valueString:0x}], valueString:[{name:assetClass, type:bytes4, order:1, indexed:false, value:qq6u002Bug==, valueString:System.Byte[]}, {name:data, type:bytes, order:2, indexed:false, value:0x, valueString:0x}]}, {name:value, type:uint256, order:2, indexed:false, value:50000000000000000, valueString:50000000000000000}]}, {name:taker, type:address, order:3, indexed:false, value:0x208F51CDFBb83A1D811A7Fd740C045A9e56C653F, valueString:0x208F51CDFBb83A1D811A7Fd740C045A9e56C653F}, {name:takeAsset, type:tuple, order:4, indexed:false, value:[{name:assetType, type:tuple, order:1, indexed:false, value:[{name:assetClass, type:bytes4, order:1, indexed:false, value:c60hRg==, valueString:System.Byte[]}, {name:data, type:bytes, order:2, indexed:false, value:0x0000000000000000000000001FCF92979C2D967BD6EE143124B99D76835199BD0000000000000000000000000000000000000000000000000000000000000001, valueString:0x0000000000000000000000001FCF92979C2D967BD6EE143124B99D76835199BD0000000000000000000000000000000000000000000000000000000000000001}], valueString:[{name:assetClass, type:bytes4, order:1, indexed:false, value:c60hRg==, valueString:System.Byte[]}, {name:data, type:bytes, order:2, indexed:false, value:0x0000000000000000000000001FCF92979C2D967BD6EE143124B99D76835199BD0000000000000000000000000000000000000000000000000000000000000001, valueString:0x0000000000000000000000001FCF92979C2D967BD6EE143124B99D76835199BD0000000000000000000000000000000000000000000000000000000000000001}]}, {name:value, type:uint256, order:2, indexed:false, value:1, valueString:1}], valueString:[{name:assetType, type:tuple, order:1, indexed:false, value:[{name:assetClass, type:bytes4, order:1, indexed:false, value:c60hRg==, valueString:System.Byte[]}, {name:data, type:bytes, order:2, indexed:false, value:0x0000000000000000000000001FCF92979C2D967BD6EE143124B99D76835199BD0000000000000000000000000000000000000000000000000000000000000001, valueString:0x0000000000000000000000001FCF92979C2D967BD6EE143124B99D76835199BD0000000000000000000000000000000000000000000000000000000000000001}], valueString:[{name:assetClass, type:bytes4, order:1, indexed:false, value:c60hRg==, valueString:System.Byte[]}, {name:data, type:bytes, order:2, indexed:false, value:0x0000000000000000000000001FCF92979C2D967BD6EE143124B99D76835199BD0000000000000000000000000000000000000000000000000000000000000001, valueString:0x0000000000000000000000001FCF92979C2D967BD6EE143124B99D76835199BD0000000000000000000000000000000000000000000000000000000000000001}]}, {name:value, type:uint256, order:2, indexed:false, value:1, valueString:1}]}, {name:salt, type:uint256, order:5, indexed:false, value:0, valueString:0}, {name:start, type:uint256, order:6, indexed:false, value:0, valueString:0}, {name:end, type:uint256, order:7, indexed:false, value:1752528530, valueString:1752528530}, {name:dataType, type:bytes4, order:8, indexed:false, value:St5Uyg==, valueString:System.Byte[]}, {name:data, type:bytes, order:9, indexed:false, value:0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000001CF0DF2A5A20CD61D68D4489EEBBF85B8D39E18A00000000000000000000000000000000000000000000000000000000000001DB, valueString:0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000001CF0DF2A5A20CD61D68D4489EEBBF85B8D39E18A00000000000000000000000000000000000000000000000000000000000001DB}], signatureRight=0x )
    • Null: 0x000...001.bd7f1624( )
    • ETH 0.00025 TransparentUpgradeableProxy.CALL( )
      • ETH 0.00025 RariTimelockController.DELEGATECALL( )
      • TransparentUpgradeableProxy.9ca7dc7a( )
        • RoyaltiesRegistry.getRoyalties( token=0x1Fcf92979C2D967Bd6EE143124b99d76835199bD, tokenId=1 ) => ( )
          • DropERC721.royaltyInfo( tokenId=1, salePrice=1000000 ) => ( receiver=0x208F51CDFBb83A1D811A7Fd740C045A9e56C653F, royaltyAmount=100000 )
            • DropERC721.royaltyInfo( tokenId=1, salePrice=1000000 ) => ( receiver=0x208F51CDFBb83A1D811A7Fd740C045A9e56C653F, royaltyAmount=100000 )
            • ETH 0.00475 Proxy.CALL( )
            • ETH 0.0475 0x208f51cdfbb83a1d811a7fd740c045a9e56c653f.CALL( )
            • TransferProxy.erc721safeTransferFrom( token=0x1Fcf92979C2D967Bd6EE143124b99d76835199bD, from=0x208F51CDFBb83A1D811A7Fd740C045A9e56C653F, to=0xA6f88e23483ae040807ad2fF63cF58Ea5C3670C8, tokenId=1 )
              • DropERC721.safeTransferFrom( from=0x208F51CDFBb83A1D811A7Fd740C045A9e56C653F, to=0xA6f88e23483ae040807ad2fF63cF58Ea5C3670C8, tokenId=1 )
                • DropERC721.safeTransferFrom( from=0x208F51CDFBb83A1D811A7Fd740C045A9e56C653F, to=0xA6f88e23483ae040807ad2fF63cF58Ea5C3670C8, tokenId=1 )
                  File 1 of 11: TransparentUpgradeableProxy
                  1
                  2
                  3
                  4
                  5
                  6
                  7
                  8
                  9
                  10
                  11
                  12
                  13
                  14
                  15
                  16
                  // SPDX-License-Identifier: MIT
                  pragma solidity ^0.8.0;
                  import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol";
                  import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
                  import "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol";
                  // Kept for backwards compatibility with older versions of Hardhat and Truffle plugins.
                  contract AdminUpgradeabilityProxy is TransparentUpgradeableProxy {
                  constructor(address logic, address admin, bytes memory data) payable TransparentUpgradeableProxy(logic, admin, data) {}
                  }
                  // SPDX-License-Identifier: MIT
                  pragma solidity ^0.8.0;
                  import "../Proxy.sol";
                  import "./ERC1967Upgrade.sol";
                  /**
                  * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an
                  * implementation address that can be changed. This address is stored in storage in the location specified by
                  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                  File 2 of 11: DropERC721
                  1
                  2
                  3
                  4
                  5
                  6
                  7
                  8
                  9
                  10
                  11
                  12
                  13
                  14
                  15
                  16
                  // SPDX-License-Identifier: MIT
                  // ERC721A Contracts v3.3.0
                  // Creator: Chiru Labs
                  ////////// CHANGELOG: turn `approve` to virtual //////////
                  pragma solidity ^0.8.4;
                  import "erc721a-upgradeable/contracts/IERC721AUpgradeable.sol";
                  import "@openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.sol";
                  import "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol";
                  import "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol";
                  import "@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol";
                  import "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol";
                  import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
                  /**
                  * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including
                  * the Metadata extension. Built to optimize for lower gas during batch mints.
                  *
                  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                  File 3 of 11: ExchangeV2
                  1
                  2
                  3
                  4
                  5
                  6
                  7
                  8
                  9
                  10
                  11
                  12
                  13
                  14
                  15
                  16
                  // SPDX-License-Identifier: MIT
                  pragma solidity >=0.6.0 <0.8.0;
                  import "../utils/ContextUpgradeable.sol";
                  import "../proxy/Initializable.sol";
                  /**
                  * @dev Contract module which provides a basic access control mechanism, where
                  * there is an account (an owner) that can be granted exclusive access to
                  * specific functions.
                  *
                  * By default, the owner account will be the one that deploys the contract. This
                  * can later be changed with {transferOwnership}.
                  *
                  * This module is used through inheritance. It will make available the modifier
                  * `onlyOwner`, which can be applied to your functions to restrict their use to
                  * the owner.
                  */
                  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                  File 4 of 11: TransparentUpgradeableProxy
                  1
                  2
                  3
                  4
                  5
                  6
                  7
                  8
                  9
                  10
                  11
                  12
                  13
                  14
                  15
                  16
                  // SPDX-License-Identifier: MIT
                  pragma solidity ^0.8.0;
                  import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol";
                  import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
                  import "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol";
                  // Kept for backwards compatibility with older versions of Hardhat and Truffle plugins.
                  contract AdminUpgradeabilityProxy is TransparentUpgradeableProxy {
                  constructor(address logic, address admin, bytes memory data) payable TransparentUpgradeableProxy(logic, admin, data) {}
                  }
                  // SPDX-License-Identifier: MIT
                  pragma solidity ^0.8.0;
                  import "../Proxy.sol";
                  import "./ERC1967Upgrade.sol";
                  /**
                  * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an
                  * implementation address that can be changed. This address is stored in storage in the location specified by
                  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                  File 5 of 11: RariTimelockController
                  1
                  2
                  3
                  4
                  5
                  6
                  7
                  8
                  9
                  10
                  11
                  12
                  13
                  14
                  15
                  16
                  // SPDX-License-Identifier: MIT
                  pragma solidity ^0.8.0;
                  import "@openzeppelin/contracts-upgradeable/governance/TimelockControllerUpgradeable.sol";
                  contract RariTimelockController is TimelockControllerUpgradeable {
                  function __RariTimelockController_init(
                  uint256 minDelay,
                  address[] memory proposers,
                  address[] memory executors
                  ) external initializer {
                  __TimelockController_init(minDelay, proposers, executors);
                  }
                  }
                  // SPDX-License-Identifier: MIT
                  // OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)
                  pragma solidity ^0.8.0;
                  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                  File 6 of 11: TransparentUpgradeableProxy
                  1
                  2
                  3
                  4
                  5
                  6
                  7
                  8
                  9
                  10
                  11
                  12
                  13
                  14
                  15
                  16
                  // SPDX-License-Identifier: MIT
                  pragma solidity ^0.8.0;
                  import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol";
                  import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
                  import "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol";
                  // Kept for backwards compatibility with older versions of Hardhat and Truffle plugins.
                  contract AdminUpgradeabilityProxy is TransparentUpgradeableProxy {
                  constructor(address logic, address admin, bytes memory data) payable TransparentUpgradeableProxy(logic, admin, data) {}
                  }
                  // SPDX-License-Identifier: MIT
                  pragma solidity ^0.8.0;
                  import "../Proxy.sol";
                  import "./ERC1967Upgrade.sol";
                  /**
                  * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an
                  * implementation address that can be changed. This address is stored in storage in the location specified by
                  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                  File 7 of 11: RoyaltiesRegistry
                  1
                  2
                  3
                  4
                  5
                  6
                  7
                  8
                  9
                  10
                  11
                  12
                  13
                  14
                  15
                  16
                  // SPDX-License-Identifier: MIT
                  pragma solidity >=0.6.2 <0.8.0;
                  pragma abicoder v2;
                  import "@rarible/exchange-interfaces/contracts/IRoyaltiesProvider.sol";
                  import "@rarible/royalties/contracts/LibRoyaltiesV2.sol";
                  import "@rarible/royalties/contracts/LibRoyaltiesV1.sol";
                  import "@rarible/royalties/contracts/LibRoyalties2981.sol";
                  import "@rarible/royalties/contracts/RoyaltiesV1.sol";
                  import "@rarible/royalties/contracts/RoyaltiesV2.sol";
                  import "@rarible/royalties/contracts/IERC2981.sol";
                  import "@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol";
                  import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
                  contract RoyaltiesRegistry is IRoyaltiesProvider, OwnableUpgradeable {
                  /// @dev deprecated
                  event RoyaltiesSetForToken(address indexed token, uint indexed tokenId, LibPart.Part[] royalties);
                  /// @dev emitted when royalties set for token in
                  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                  File 8 of 11: DropERC721
                  1
                  2
                  3
                  4
                  5
                  6
                  7
                  8
                  9
                  10
                  11
                  12
                  13
                  14
                  15
                  16
                  // SPDX-License-Identifier: MIT
                  // ERC721A Contracts v3.3.0
                  // Creator: Chiru Labs
                  ////////// CHANGELOG: turn `approve` to virtual //////////
                  pragma solidity ^0.8.4;
                  import "erc721a-upgradeable/contracts/IERC721AUpgradeable.sol";
                  import "@openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.sol";
                  import "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol";
                  import "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol";
                  import "@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol";
                  import "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol";
                  import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
                  /**
                  * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including
                  * the Metadata extension. Built to optimize for lower gas during batch mints.
                  *
                  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                  File 9 of 11: Proxy
                  1
                  2
                  3
                  4
                  5
                  6
                  7
                  8
                  9
                  10
                  11
                  12
                  13
                  14
                  15
                  16
                  pragma solidity ^0.5.3;
                  /// @title Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract.
                  /// @author Stefan George - <stefan@gnosis.io>
                  /// @author Richard Meissner - <richard@gnosis.io>
                  contract Proxy {
                  // masterCopy always needs to be first declared variable, to ensure that it is at the same location in the contracts to which calls are delegated.
                  // To reduce deployment costs this variable is internal and needs to be retrieved via `getStorageAt`
                  address internal masterCopy;
                  /// @dev Constructor function sets address of master copy contract.
                  /// @param _masterCopy Master copy address.
                  constructor(address _masterCopy)
                  public
                  {
                  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                  File 10 of 11: GnosisSafe
                  1
                  2
                  3
                  4
                  5
                  6
                  7
                  8
                  9
                  10
                  11
                  12
                  13
                  14
                  15
                  16
                  pragma solidity >=0.5.0 <0.7.0;
                  /// @title SelfAuthorized - authorizes current contract to perform actions
                  /// @author Richard Meissner - <richard@gnosis.pm>
                  contract SelfAuthorized {
                  modifier authorized() {
                  require(msg.sender == address(this), "Method can only be called from this contract");
                  _;
                  }
                  }
                  /// @title MasterCopy - Base for master copy contracts (should always be first super contract)
                  /// This contract is tightly coupled to our proxy contract (see `proxies/Proxy.sol`)
                  /// @author Richard Meissner - <richard@gnosis.io>
                  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                  File 11 of 11: TransferProxy
                  1
                  2
                  3
                  4
                  5
                  6
                  7
                  8
                  9
                  10
                  11
                  12
                  13
                  14
                  15
                  16
                  pragma solidity ^0.5.0;
                  /**
                  * @dev Interface of the ERC165 standard, as defined in the
                  * https://eips.ethereum.org/EIPS/eip-165[EIP].
                  *
                  * Implementers can declare support of contract interfaces, which can then be
                  * queried by others ({ERC165Checker}).
                  *
                  * For an implementation, see {ERC165}.
                  */
                  interface IERC165 {
                  /**
                  * @dev Returns true if this contract implements the interface defined by
                  * `interfaceId`. See the corresponding
                  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX