ETH Price: $2,958.00 (+0.65%)

Transaction Decoder

Block:
22746252 at Jun-20-2025 02:21:35 PM +UTC
Transaction Fee:
0.000813892021360635 ETH $2.41
Gas Used:
256,315 Gas / 3.175358529 Gwei

Emitted Events:

703 TransparentUpgradeableProxy.0x956cd63ee4cdcd81fda5f0ec7c6c36dceda99e1b412f4a650a5d26055dc3c450( 0x956cd63ee4cdcd81fda5f0ec7c6c36dceda99e1b412f4a650a5d26055dc3c450, fc3fb0fdff817b901fd60ee3bcf82d15cc66bb5174a2560b4d30a62c7bc5d0a1, 1d4fb602940a3ae63bbc7bf44cc8a29606e72bb1c5857ac2eb88b024022e98ea, 0000000000000000000000000000000000000000000000000226abadc42f8000, 0000000000000000000000000000000000000000000000000000000000000001 )
704 DropERC721.Approval( owner=0xf96be336d78294633a04b10b97fa78dbfa8841c0, approved=0x00000000...000000000, tokenId=908 )
705 DropERC721.Transfer( from=0xf96be336d78294633a04b10b97fa78dbfa8841c0, to=[Sender] 0x28daedf98e29732068bd3edcebfc981bf96a8ffc, tokenId=908 )

Account State Difference:

  Address   Before After State Difference Code
0x1cf0dF2A...b8d39e18a
(Rarible: Treasury)
5.167962885986560346 Eth5.175325385986560346 Eth0.0073625
0x28DaedF9...Bf96a8fFc
0.94536271827369034 Eth
Nonce: 11
0.781798826252329705 Eth
Nonce: 12
0.163563892021360635
0x4bBf5707...4C494C806 0.205545 Eth0.213295 Eth0.00775
0x7E5Ca132...68C9Aa263
0x7e9c956e...71f42CBC5 1.080691339541285209 Eth1.081466339541285209 Eth0.000775
(beaverbuild)
9.489081080252148783 Eth9.489081080252661413 Eth0.00000000000051263
0x9757F2d2...4107cd8D6
(Rarible: Exchange V2)
0xf96Be336...bFA8841C0 12.850788784449641691 Eth12.997651284449641691 Eth0.1468625

Execution Trace

ETH 0.16275 TransparentUpgradeableProxy.e99a3f80( )
  • ETH 0.16275 ExchangeV2.matchOrders( orderLeft=[{name:maker, type:address, order:1, indexed:false, value:0xf96Be336D78294633A04b10b97fA78DbFA8841C0, valueString:0xf96Be336D78294633A04b10b97fA78DbFA8841C0}, {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:0x0000000000000000000000007E5CA13295B580128D9E9BD46756F2368C9AA263000000000000000000000000000000000000000000000000000000000000038C, valueString:0x0000000000000000000000007E5CA13295B580128D9E9BD46756F2368C9AA263000000000000000000000000000000000000000000000000000000000000038C}], valueString:[{name:assetClass, type:bytes4, order:1, indexed:false, value:c60hRg==, valueString:System.Byte[]}, {name:data, type:bytes, order:2, indexed:false, value:0x0000000000000000000000007E5CA13295B580128D9E9BD46756F2368C9AA263000000000000000000000000000000000000000000000000000000000000038C, valueString:0x0000000000000000000000007E5CA13295B580128D9E9BD46756F2368C9AA263000000000000000000000000000000000000000000000000000000000000038C}]}, {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:0x0000000000000000000000007E5CA13295B580128D9E9BD46756F2368C9AA263000000000000000000000000000000000000000000000000000000000000038C, valueString:0x0000000000000000000000007E5CA13295B580128D9E9BD46756F2368C9AA263000000000000000000000000000000000000000000000000000000000000038C}], valueString:[{name:assetClass, type:bytes4, order:1, indexed:false, value:c60hRg==, valueString:System.Byte[]}, {name:data, type:bytes, order:2, indexed:false, value:0x0000000000000000000000007E5CA13295B580128D9E9BD46756F2368C9AA263000000000000000000000000000000000000000000000000000000000000038C, valueString:0x0000000000000000000000007E5CA13295B580128D9E9BD46756F2368C9AA263000000000000000000000000000000000000000000000000000000000000038C}]}, {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:155000000000000000, valueString:155000000000000000}], 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:155000000000000000, valueString:155000000000000000}]}, {name:salt, type:uint256, order:5, indexed:false, value:44199500833128957795807462659045890831934873825948994192618436279466544453966, valueString:44199500833128957795807462659045890831934873825948994192618436279466544453966}, {name:start, type:uint256, order:6, indexed:false, value:0, valueString:0}, {name:end, type:uint256, order:7, indexed:false, value:1753021214, valueString:1753021214}, {name:dataType, type:bytes4, order:8, indexed:false, value:St5Uyg==, valueString:System.Byte[]}, {name:data, type:bytes, order:9, indexed:false, value:0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, valueString:0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000}], signatureLeft=0x8E62D38B388C1B657A044F8D34BEDDF92F0E29A3A45F953DD25119A37631F2365C9175FDE9FEF743E43CDD3E30EC999E3428C3BBB91C4A16C2A68F50B8EA07671C, orderRight=[{name:maker, type:address, order:1, indexed:false, value:0x28DaedF98e29732068bD3EDcebFC981Bf96a8fFc, valueString:0x28DaedF98e29732068bD3EDcebFC981Bf96a8fFc}, {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:155000000000000000, valueString:155000000000000000}], 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:155000000000000000, valueString:155000000000000000}]}, {name:taker, type:address, order:3, indexed:false, value:0xf96Be336D78294633A04b10b97fA78DbFA8841C0, valueString:0xf96Be336D78294633A04b10b97fA78DbFA8841C0}, {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:0x0000000000000000000000007E5CA13295B580128D9E9BD46756F2368C9AA263000000000000000000000000000000000000000000000000000000000000038C, valueString:0x0000000000000000000000007E5CA13295B580128D9E9BD46756F2368C9AA263000000000000000000000000000000000000000000000000000000000000038C}], valueString:[{name:assetClass, type:bytes4, order:1, indexed:false, value:c60hRg==, valueString:System.Byte[]}, {name:data, type:bytes, order:2, indexed:false, value:0x0000000000000000000000007E5CA13295B580128D9E9BD46756F2368C9AA263000000000000000000000000000000000000000000000000000000000000038C, valueString:0x0000000000000000000000007E5CA13295B580128D9E9BD46756F2368C9AA263000000000000000000000000000000000000000000000000000000000000038C}]}, {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:0x0000000000000000000000007E5CA13295B580128D9E9BD46756F2368C9AA263000000000000000000000000000000000000000000000000000000000000038C, valueString:0x0000000000000000000000007E5CA13295B580128D9E9BD46756F2368C9AA263000000000000000000000000000000000000000000000000000000000000038C}], valueString:[{name:assetClass, type:bytes4, order:1, indexed:false, value:c60hRg==, valueString:System.Byte[]}, {name:data, type:bytes, order:2, indexed:false, value:0x0000000000000000000000007E5CA13295B580128D9E9BD46756F2368C9AA263000000000000000000000000000000000000000000000000000000000000038C, valueString:0x0000000000000000000000007E5CA13295B580128D9E9BD46756F2368C9AA263000000000000000000000000000000000000000000000000000000000000038C}]}, {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:1753021214, valueString:1753021214}, {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.e7887884( )
    • ETH 0.000775 TransparentUpgradeableProxy.CALL( )
      • ETH 0.000775 RariTimelockController.DELEGATECALL( )
      • TransparentUpgradeableProxy.9ca7dc7a( )
        • RoyaltiesRegistry.getRoyalties( token=0x7E5Ca13295B580128d9e9BD46756f2368C9Aa263, tokenId=908 ) => ( )
          • DropERC721.royaltyInfo( tokenId=908, salePrice=1000000 ) => ( receiver=0x4bBf570791B989152CFa7EC4dAEF5d14C494C806, royaltyAmount=50000 )
            • DropERC721.royaltyInfo( tokenId=908, salePrice=1000000 ) => ( receiver=0x4bBf570791B989152CFa7EC4dAEF5d14C494C806, royaltyAmount=50000 )
            • ETH 0.00775 0x4bbf570791b989152cfa7ec4daef5d14c494c806.CALL( )
            • ETH 0.0073625 Proxy.CALL( )
            • ETH 0.1468625 0xf96be336d78294633a04b10b97fa78dbfa8841c0.CALL( )
            • TransferProxy.erc721safeTransferFrom( token=0x7E5Ca13295B580128d9e9BD46756f2368C9Aa263, from=0xf96Be336D78294633A04b10b97fA78DbFA8841C0, to=0x28DaedF98e29732068bD3EDcebFC981Bf96a8fFc, tokenId=908 )
              • DropERC721.safeTransferFrom( from=0xf96Be336D78294633A04b10b97fA78DbFA8841C0, to=0x28DaedF98e29732068bD3EDcebFC981Bf96a8fFc, tokenId=908 )
                • DropERC721.safeTransferFrom( from=0xf96Be336D78294633A04b10b97fA78DbFA8841C0, to=0x28DaedF98e29732068bD3EDcebFC981Bf96a8fFc, tokenId=908 )
                  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