ETH Price: $3,560.12 (+3.85%)

Transaction Decoder

Block:
13901770 at Dec-29-2021 06:08:47 PM +UTC
Transaction Fee:
0.040245213528086136 ETH $143.28
Gas Used:
228,376 Gas / 176.223480261 Gwei

Emitted Events:

83 TransparentUpgradeableProxy.0xcae9d16f553e92058883de29cb3135dbc0c1e31fd7eace79fef1d80577fe482e( 0xcae9d16f553e92058883de29cb3135dbc0c1e31fd7eace79fef1d80577fe482e, 00000000000000000000000000000000000000000000000000000000000000a0, 000000000000000000000000e749493eacd6350abd8a2210cb5a020e25ebcb93, 000000000000000000000000e8ca36c7994463183f916d513a82c95c4117050f, b45a3ba100000000000000000000000000000000000000000000000000000000, b3c5c69700000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000040, 000000000000000000000000000000000000000000000000000aa87bee538000, aaaebeba00000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000040, 0000000000000000000000000000000000000000000000000000000000000000 )
84 TransparentUpgradeableProxy.0xcae9d16f553e92058883de29cb3135dbc0c1e31fd7eace79fef1d80577fe482e( 0xcae9d16f553e92058883de29cb3135dbc0c1e31fd7eace79fef1d80577fe482e, 00000000000000000000000000000000000000000000000000000000000000a0, 000000000000000000000000e749493eacd6350abd8a2210cb5a020e25ebcb93, 0000000000000000000000001cf0df2a5a20cd61d68d4489eebbf85b8d39e18a, b45a3ba100000000000000000000000000000000000000000000000000000000, dfdfdaf400000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000040, 0000000000000000000000000000000000000000000000000005543df729c000, aaaebeba00000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000040, 0000000000000000000000000000000000000000000000000000000000000000 )
85 TransparentUpgradeableProxy.0xcae9d16f553e92058883de29cb3135dbc0c1e31fd7eace79fef1d80577fe482e( 0xcae9d16f553e92058883de29cb3135dbc0c1e31fd7eace79fef1d80577fe482e, 00000000000000000000000000000000000000000000000000000000000000a0, 000000000000000000000000e749493eacd6350abd8a2210cb5a020e25ebcb93, 0000000000000000000000001cf0df2a5a20cd61d68d4489eebbf85b8d39e18a, b45a3ba100000000000000000000000000000000000000000000000000000000, dfdfdaf400000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000040, 0000000000000000000000000000000000000000000000000005543df729c000, aaaebeba00000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000040, 0000000000000000000000000000000000000000000000000000000000000000 )
86 TransparentUpgradeableProxy.0xcae9d16f553e92058883de29cb3135dbc0c1e31fd7eace79fef1d80577fe482e( 0xcae9d16f553e92058883de29cb3135dbc0c1e31fd7eace79fef1d80577fe482e, 00000000000000000000000000000000000000000000000000000000000000a0, 000000000000000000000000e749493eacd6350abd8a2210cb5a020e25ebcb93, 000000000000000000000000145e9e42fbf7dceed2dcfab59c3312b9a2aa164f, b45a3ba100000000000000000000000000000000000000000000000000000000, a10bb5b200000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000040, 00000000000000000000000000000000000000000000000000c52cf4b908c000, aaaebeba00000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000040, 0000000000000000000000000000000000000000000000000000000000000000 )
87 PhunkyApeYachtClub.Approval( owner=0x145e9e42fbf7dceed2dcfab59c3312b9a2aa164f, approved=0x00000000...000000000, tokenId=5927 )
88 PhunkyApeYachtClub.Transfer( from=0x145e9e42fbf7dceed2dcfab59c3312b9a2aa164f, to=[Sender] 0xe749493eacd6350abd8a2210cb5a020e25ebcb93, tokenId=5927 )
89 TransparentUpgradeableProxy.0xcae9d16f553e92058883de29cb3135dbc0c1e31fd7eace79fef1d80577fe482e( 0xcae9d16f553e92058883de29cb3135dbc0c1e31fd7eace79fef1d80577fe482e, 00000000000000000000000000000000000000000000000000000000000000a0, 000000000000000000000000145e9e42fbf7dceed2dcfab59c3312b9a2aa164f, 000000000000000000000000e749493eacd6350abd8a2210cb5a020e25ebcb93, 1a0388dd00000000000000000000000000000000000000000000000000000000, a10bb5b200000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000040, 0000000000000000000000000000000000000000000000000000000000000001, 73ad214600000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000040, 0000000000000000000000000000000000000000000000000000000000000040, 000000000000000000000000176e0fe17314def59f0f06e976e1b74203be4a55, 0000000000000000000000000000000000000000000000000000000000001727 )
90 TransparentUpgradeableProxy.0x268820db288a211986b26a8fda86b1e0046281b21206936bb0e61c67b5c79ef4( 0x268820db288a211986b26a8fda86b1e0046281b21206936bb0e61c67b5c79ef4, e4202c1fc97985da1c3e7e0b9d59d7cbcd18dd645d9519142a5e7ba6133d746b, c55ac8dddc225fa470eae8dac5fa995cf070f115795b66cd96f481568cbf5a2e, 000000000000000000000000145e9e42fbf7dceed2dcfab59c3312b9a2aa164f, 000000000000000000000000e749493eacd6350abd8a2210cb5a020e25ebcb93, 00000000000000000000000000000000000000000000000000d529ae9e860000, 0000000000000000000000000000000000000000000000000000000000000001, 0000000000000000000000000000000000000000000000000000000000000100, 00000000000000000000000000000000000000000000000000000000000001a0, 73ad214600000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000040, 0000000000000000000000000000000000000000000000000000000000000040, 000000000000000000000000176e0fe17314def59f0f06e976e1b74203be4a55, 0000000000000000000000000000000000000000000000000000000000001727, aaaebeba00000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000040, 0000000000000000000000000000000000000000000000000000000000000000 )

Account State Difference:

  Address   Before After State Difference Code
0x145E9e42...9A2Aa164F 0.809214114590028355 Eth0.864714114590028355 Eth0.0555
0x176e0Fe1...203be4a55
0x1cf0dF2A...b8d39e18a
(Rarible: Treasury)
3,368.607195409047503071 Eth3,368.610195409047503071 Eth0.003
(666 Mining Pool)
255.401666306876547619 Eth255.402237246876547619 Eth0.00057094
0x9757F2d2...4107cd8D6
(Rarible: Exchange V2)
0xE749493E...E25EbCB93
0.396553212003789923 Eth
Nonce: 390
0.294807998475703787 Eth
Nonce: 391
0.101745213528086136
0xe8ca36c7...c4117050F 21.481988741744911605 Eth21.484988741744911605 Eth0.003

Execution Trace

ETH 0.0615 TransparentUpgradeableProxy.e99a3f80( )
  • ETH 0.0615 ExchangeV2.matchOrders( orderLeft=[{name:maker, type:address, order:1, indexed:false, value:0x145E9e42FBf7dcEed2DCFaB59C3312b9A2Aa164F, valueString:0x145E9e42FBf7dcEed2DCFaB59C3312b9A2Aa164F}, {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:0x000000000000000000000000176E0FE17314DEF59F0F06E976E1B74203BE4A550000000000000000000000000000000000000000000000000000000000001727, valueString:0x000000000000000000000000176E0FE17314DEF59F0F06E976E1B74203BE4A550000000000000000000000000000000000000000000000000000000000001727}], valueString:[{name:assetClass, type:bytes4, order:1, indexed:false, value:c60hRg==, valueString:System.Byte[]}, {name:data, type:bytes, order:2, indexed:false, value:0x000000000000000000000000176E0FE17314DEF59F0F06E976E1B74203BE4A550000000000000000000000000000000000000000000000000000000000001727, valueString:0x000000000000000000000000176E0FE17314DEF59F0F06E976E1B74203BE4A550000000000000000000000000000000000000000000000000000000000001727}]}, {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:0x000000000000000000000000176E0FE17314DEF59F0F06E976E1B74203BE4A550000000000000000000000000000000000000000000000000000000000001727, valueString:0x000000000000000000000000176E0FE17314DEF59F0F06E976E1B74203BE4A550000000000000000000000000000000000000000000000000000000000001727}], valueString:[{name:assetClass, type:bytes4, order:1, indexed:false, value:c60hRg==, valueString:System.Byte[]}, {name:data, type:bytes, order:2, indexed:false, value:0x000000000000000000000000176E0FE17314DEF59F0F06E976E1B74203BE4A550000000000000000000000000000000000000000000000000000000000001727, valueString:0x000000000000000000000000176E0FE17314DEF59F0F06E976E1B74203BE4A550000000000000000000000000000000000000000000000000000000000001727}]}, {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:60000000000000000, valueString:60000000000000000}], 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:60000000000000000, valueString:60000000000000000}]}, {name:salt, type:uint256, order:5, indexed:false, value:59485986986817517726705132144932521765744453044957427673120738847175818201109, valueString:59485986986817517726705132144932521765744453044957427673120738847175818201109}, {name:start, type:uint256, order:6, indexed:false, value:0, valueString:0}, {name:end, type:uint256, order:7, indexed:false, value:0, valueString:0}, {name:dataType, type:bytes4, order:8, indexed:false, value:I9I17w==, valueString:System.Byte[]}, {name:data, type:bytes, order:9, indexed:false, value:0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000001CF0DF2A5A20CD61D68D4489EEBBF85B8D39E18A00000000000000000000000000000000000000000000000000000000000000FA, valueString:0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000001CF0DF2A5A20CD61D68D4489EEBBF85B8D39E18A00000000000000000000000000000000000000000000000000000000000000FA}], signatureLeft=0x533DB23F1AA7FB5F0A28C7A4C1E1B5182270996818070028D5FA1E933B293ADA6DD30F03CA8A8DDBF6FB6D6E424A6D81AB9644490811A42B586FB599E0602C291C, orderRight=[{name:maker, type:address, order:1, indexed:false, value:0xE749493EACD6350aBd8A2210cb5A020E25EbCB93, valueString:0xE749493EACD6350aBd8A2210cb5A020E25EbCB93}, {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:60000000000000000, valueString:60000000000000000}], 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:60000000000000000, valueString:60000000000000000}]}, {name:taker, type:address, order:3, indexed:false, value:0x145E9e42FBf7dcEed2DCFaB59C3312b9A2Aa164F, valueString:0x145E9e42FBf7dcEed2DCFaB59C3312b9A2Aa164F}, {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:0x000000000000000000000000176E0FE17314DEF59F0F06E976E1B74203BE4A550000000000000000000000000000000000000000000000000000000000001727, valueString:0x000000000000000000000000176E0FE17314DEF59F0F06E976E1B74203BE4A550000000000000000000000000000000000000000000000000000000000001727}], valueString:[{name:assetClass, type:bytes4, order:1, indexed:false, value:c60hRg==, valueString:System.Byte[]}, {name:data, type:bytes, order:2, indexed:false, value:0x000000000000000000000000176E0FE17314DEF59F0F06E976E1B74203BE4A550000000000000000000000000000000000000000000000000000000000001727, valueString:0x000000000000000000000000176E0FE17314DEF59F0F06E976E1B74203BE4A550000000000000000000000000000000000000000000000000000000000001727}]}, {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:0x000000000000000000000000176E0FE17314DEF59F0F06E976E1B74203BE4A550000000000000000000000000000000000000000000000000000000000001727, valueString:0x000000000000000000000000176E0FE17314DEF59F0F06E976E1B74203BE4A550000000000000000000000000000000000000000000000000000000000001727}], valueString:[{name:assetClass, type:bytes4, order:1, indexed:false, value:c60hRg==, valueString:System.Byte[]}, {name:data, type:bytes, order:2, indexed:false, value:0x000000000000000000000000176E0FE17314DEF59F0F06E976E1B74203BE4A550000000000000000000000000000000000000000000000000000000000001727, valueString:0x000000000000000000000000176E0FE17314DEF59F0F06E976E1B74203BE4A550000000000000000000000000000000000000000000000000000000000001727}]}, {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:0, valueString:0}, {name:dataType, type:bytes4, order:8, indexed:false, value:I9I17w==, valueString:System.Byte[]}, {name:data, type:bytes, order:9, indexed:false, value:0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000001CF0DF2A5A20CD61D68D4489EEBBF85B8D39E18A00000000000000000000000000000000000000000000000000000000000000FA, valueString:0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000001CF0DF2A5A20CD61D68D4489EEBBF85B8D39E18A00000000000000000000000000000000000000000000000000000000000000FA}], signatureRight=0x )
    • Null: 0x000...001.705983be( )
    • TransparentUpgradeableProxy.9ca7dc7a( )
      • RoyaltiesRegistry.getRoyalties( token=0x176e0Fe17314DEf59F0F06e976E1b74203be4a55, tokenId=5927 ) => ( )
      • ETH 0.003 0xe8ca36c7994463183f916d513a82c95c4117050f.CALL( )
      • ETH 0.0015 Proxy.CALL( )
      • ETH 0.0015 Proxy.CALL( )
      • ETH 0.0555 0x145e9e42fbf7dceed2dcfab59c3312b9a2aa164f.CALL( )
      • TransferProxy.erc721safeTransferFrom( token=0x176e0Fe17314DEf59F0F06e976E1b74203be4a55, from=0x145E9e42FBf7dcEed2DCFaB59C3312b9A2Aa164F, to=0xE749493EACD6350aBd8A2210cb5A020E25EbCB93, tokenId=5927 )
        • PhunkyApeYachtClub.safeTransferFrom( from=0x145E9e42FBf7dcEed2DCFaB59C3312b9A2Aa164F, to=0xE749493EACD6350aBd8A2210cb5A020E25EbCB93, tokenId=5927 )
          File 1 of 8: 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 8: PhunkyApeYachtClub
          1
          2
          3
          4
          5
          6
          7
          8
          9
          10
          11
          12
          13
          14
          15
          16
          pragma solidity ^0.8.0;
          import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
          import "@openzeppelin/contracts/access/Ownable.sol";
          import "@openzeppelin/contracts/utils/Counters.sol";
          contract PhunkyApeYachtClub is ERC721, Ownable {
          using Counters for Counters.Counter;
          Counters.Counter private _tokenIds;
          using Strings for uint256;
          // Optional mapping for token URIs
          mapping(uint256 => string) private _tokenURIs;
          uint256 _mintPrice = 42069000000000000;
          // Base URI
          string private _baseURIextended =
          "ipfs://QmZnBLTvnUpTjtQq5S6yRuCRjLBWzpKDEXwPwFRFus3kub/";
          uint256 totalMinted;
          // treasury payouts
          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

          File 3 of 8: ExchangeV2
          1
          2
          3
          4
          5
          6
          7
          8
          9
          10
          11
          12
          13
          14
          15
          16
          // SPDX-License-Identifier: MIT
          pragma solidity 0.7.6;
          pragma abicoder v2;
          import "./ExchangeV2Core.sol";
          import "./RaribleTransferManager.sol";
          import "@rarible/royalties/contracts/IRoyaltiesProvider.sol";
          contract ExchangeV2 is ExchangeV2Core, RaribleTransferManager {
          function __ExchangeV2_init(
          INftTransferProxy _transferProxy,
          IERC20TransferProxy _erc20TransferProxy,
          uint newProtocolFee,
          address newDefaultFeeReceiver,
          IRoyaltiesProvider newRoyaltiesProvider
          ) external initializer {
          __Context_init_unchained();
          __Ownable_init_unchained();
          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

          File 4 of 8: 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 8: 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/royalties/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 6 of 8: 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 7 of 8: 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 8 of 8: 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