ETH Price: $2,951.80 (-1.81%)
Gas: 0.76 Gwei

Transaction Decoder

Block:
13890233 at Dec-27-2021 11:22:46 PM +UTC
Transaction Fee:
0.018242209380515512 ETH $53.85
Gas Used:
274,408 Gas / 66.478416739 Gwei

Emitted Events:

235 TransparentUpgradeableProxy.0xcae9d16f553e92058883de29cb3135dbc0c1e31fd7eace79fef1d80577fe482e( 0xcae9d16f553e92058883de29cb3135dbc0c1e31fd7eace79fef1d80577fe482e, 00000000000000000000000000000000000000000000000000000000000000a0, 000000000000000000000000ea8d6a16ba2a4593a461acddbfa7fa656132c61c, 0000000000000000000000001a8844f3218177e2eae693ad65a6c794a4a32b3d, b45a3ba100000000000000000000000000000000000000000000000000000000, b3c5c69700000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000040, 0000000000000000000000000000000000000000000000000005543df729c000, aaaebeba00000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000040, 0000000000000000000000000000000000000000000000000000000000000000 )
236 TransparentUpgradeableProxy.0xcae9d16f553e92058883de29cb3135dbc0c1e31fd7eace79fef1d80577fe482e( 0xcae9d16f553e92058883de29cb3135dbc0c1e31fd7eace79fef1d80577fe482e, 00000000000000000000000000000000000000000000000000000000000000a0, 000000000000000000000000ea8d6a16ba2a4593a461acddbfa7fa656132c61c, 0000000000000000000000001cf0df2a5a20cd61d68d4489eebbf85b8d39e18a, b45a3ba100000000000000000000000000000000000000000000000000000000, dfdfdaf400000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000040, 0000000000000000000000000000000000000000000000000001550f7dca7000, aaaebeba00000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000040, 0000000000000000000000000000000000000000000000000000000000000000 )
237 TransparentUpgradeableProxy.0xcae9d16f553e92058883de29cb3135dbc0c1e31fd7eace79fef1d80577fe482e( 0xcae9d16f553e92058883de29cb3135dbc0c1e31fd7eace79fef1d80577fe482e, 00000000000000000000000000000000000000000000000000000000000000a0, 000000000000000000000000ea8d6a16ba2a4593a461acddbfa7fa656132c61c, 0000000000000000000000001cf0df2a5a20cd61d68d4489eebbf85b8d39e18a, b45a3ba100000000000000000000000000000000000000000000000000000000, dfdfdaf400000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000040, 0000000000000000000000000000000000000000000000000001550f7dca7000, aaaebeba00000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000040, 0000000000000000000000000000000000000000000000000000000000000000 )
238 TransparentUpgradeableProxy.0xcae9d16f553e92058883de29cb3135dbc0c1e31fd7eace79fef1d80577fe482e( 0xcae9d16f553e92058883de29cb3135dbc0c1e31fd7eace79fef1d80577fe482e, 00000000000000000000000000000000000000000000000000000000000000a0, 000000000000000000000000ea8d6a16ba2a4593a461acddbfa7fa656132c61c, 000000000000000000000000289b69e7b64848c9bec746cf2ce7459179bf06e2, b45a3ba100000000000000000000000000000000000000000000000000000000, a10bb5b200000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000040, 000000000000000000000000000000000000000000000000002ea11e32ad5000, aaaebeba00000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000040, 0000000000000000000000000000000000000000000000000000000000000000 )
239 RaribleUserToken.TransferSingle( _operator=TransferProxy, _from=0x289b69e7b64848c9bec746cf2ce7459179bf06e2, _to=[Sender] 0xea8d6a16ba2a4593a461acddbfa7fa656132c61c, _id=2, _value=1 )
240 TransparentUpgradeableProxy.0xcae9d16f553e92058883de29cb3135dbc0c1e31fd7eace79fef1d80577fe482e( 0xcae9d16f553e92058883de29cb3135dbc0c1e31fd7eace79fef1d80577fe482e, 00000000000000000000000000000000000000000000000000000000000000a0, 000000000000000000000000289b69e7b64848c9bec746cf2ce7459179bf06e2, 000000000000000000000000ea8d6a16ba2a4593a461acddbfa7fa656132c61c, 1a0388dd00000000000000000000000000000000000000000000000000000000, a10bb5b200000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000040, 0000000000000000000000000000000000000000000000000000000000000001, 973bb64000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000040, 0000000000000000000000000000000000000000000000000000000000000040, 000000000000000000000000a9823611aa152b6efe4eca3e51ac74998b5d7afe, 0000000000000000000000000000000000000000000000000000000000000002 )
241 TransparentUpgradeableProxy.0x268820db288a211986b26a8fda86b1e0046281b21206936bb0e61c67b5c79ef4( 0x268820db288a211986b26a8fda86b1e0046281b21206936bb0e61c67b5c79ef4, e674b9b93d971c1a4ef7add37babe40aea972d7819970596684f3658149ec8ca, 33b210d7f4990bb900e126f2af7327657ed950d9c66b82a47030d7592113e8a8, 000000000000000000000000289b69e7b64848c9bec746cf2ce7459179bf06e2, 000000000000000000000000ea8d6a16ba2a4593a461acddbfa7fa656132c61c, 00000000000000000000000000000000000000000000000000354a6ba7a18000, 0000000000000000000000000000000000000000000000000000000000000001, 0000000000000000000000000000000000000000000000000000000000000100, 00000000000000000000000000000000000000000000000000000000000001a0, 973bb64000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000040, 0000000000000000000000000000000000000000000000000000000000000040, 000000000000000000000000a9823611aa152b6efe4eca3e51ac74998b5d7afe, 0000000000000000000000000000000000000000000000000000000000000002, aaaebeba00000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000040, 0000000000000000000000000000000000000000000000000000000000000000 )

Account State Difference:

  Address   Before After State Difference Code
0x1A8844F3...4a4a32B3D 0.525415008340309033 Eth0.526915008340309033 Eth0.0015
0x1cf0dF2A...b8d39e18a
(Rarible: Treasury)
3,362.857196409522503069 Eth3,362.857946409522503069 Eth0.00075
0x289B69E7...179bF06e2 0.090097269418083219 Eth0.103222269418083219 Eth0.013125
(F2Pool Old)
3,585.908766403167936824 Eth3,585.909178015167936824 Eth0.000411612
0x9757F2d2...4107cd8D6
(Rarible: Exchange V2)
0xA9823611...98b5D7AfE
0xEA8d6a16...56132c61C
0.279703132836348533 Eth
Nonce: 89
0.246085923455833021 Eth
Nonce: 90
0.033617209380515512
0xEa90CFad...AEb8E0DCD
(Rarible: External Royalties)

Execution Trace

ETH 0.015375 TransparentUpgradeableProxy.e99a3f80( )
  • ETH 0.015375 ExchangeV2.matchOrders( orderLeft=[{name:maker, type:address, order:1, indexed:false, value:0x289B69E7b64848C9Bec746Cf2CE7459179bF06e2, valueString:0x289B69E7b64848C9Bec746Cf2CE7459179bF06e2}, {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:lzu2QA==, valueString:System.Byte[]}, {name:data, type:bytes, order:2, indexed:false, value:0x000000000000000000000000A9823611AA152B6EFE4ECA3E51AC74998B5D7AFE0000000000000000000000000000000000000000000000000000000000000002, valueString:0x000000000000000000000000A9823611AA152B6EFE4ECA3E51AC74998B5D7AFE0000000000000000000000000000000000000000000000000000000000000002}], valueString:[{name:assetClass, type:bytes4, order:1, indexed:false, value:lzu2QA==, valueString:System.Byte[]}, {name:data, type:bytes, order:2, indexed:false, value:0x000000000000000000000000A9823611AA152B6EFE4ECA3E51AC74998B5D7AFE0000000000000000000000000000000000000000000000000000000000000002, valueString:0x000000000000000000000000A9823611AA152B6EFE4ECA3E51AC74998B5D7AFE0000000000000000000000000000000000000000000000000000000000000002}]}, {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:lzu2QA==, valueString:System.Byte[]}, {name:data, type:bytes, order:2, indexed:false, value:0x000000000000000000000000A9823611AA152B6EFE4ECA3E51AC74998B5D7AFE0000000000000000000000000000000000000000000000000000000000000002, valueString:0x000000000000000000000000A9823611AA152B6EFE4ECA3E51AC74998B5D7AFE0000000000000000000000000000000000000000000000000000000000000002}], valueString:[{name:assetClass, type:bytes4, order:1, indexed:false, value:lzu2QA==, valueString:System.Byte[]}, {name:data, type:bytes, order:2, indexed:false, value:0x000000000000000000000000A9823611AA152B6EFE4ECA3E51AC74998B5D7AFE0000000000000000000000000000000000000000000000000000000000000002, valueString:0x000000000000000000000000A9823611AA152B6EFE4ECA3E51AC74998B5D7AFE0000000000000000000000000000000000000000000000000000000000000002}]}, {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:15000000000000000, valueString:15000000000000000}], 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:15000000000000000, valueString:15000000000000000}]}, {name:salt, type:uint256, order:5, indexed:false, value:111567042825483301089720158566642827355796649602416856659182065693680863789019, valueString:111567042825483301089720158566642827355796649602416856659182065693680863789019}, {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:TCNCZg==, valueString:System.Byte[]}, {name:data, type:bytes, order:9, indexed:false, value:0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000001CF0DF2A5A20CD61D68D4489EEBBF85B8D39E18A00000000000000000000000000000000000000000000000000000000000000FA, valueString:0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000001CF0DF2A5A20CD61D68D4489EEBBF85B8D39E18A00000000000000000000000000000000000000000000000000000000000000FA}], signatureLeft=0x5A81B55BEF2DF0F5D696BE0B2BBFA1CF11358BF9EC83938ABCF4CA1523E607E30424A2C706866F3DD0759185E2DF6C4EED7703F2B126B1500F3D45ECC6BF570F1B, orderRight=[{name:maker, type:address, order:1, indexed:false, value:0xEA8d6a16Ba2A4593A461ACDdbfA7Fa656132c61C, valueString:0xEA8d6a16Ba2A4593A461ACDdbfA7Fa656132c61C}, {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:15000000000000000, valueString:15000000000000000}], 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:15000000000000000, valueString:15000000000000000}]}, {name:taker, type:address, order:3, indexed:false, value:0x289B69E7b64848C9Bec746Cf2CE7459179bF06e2, valueString:0x289B69E7b64848C9Bec746Cf2CE7459179bF06e2}, {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:lzu2QA==, valueString:System.Byte[]}, {name:data, type:bytes, order:2, indexed:false, value:0x000000000000000000000000A9823611AA152B6EFE4ECA3E51AC74998B5D7AFE0000000000000000000000000000000000000000000000000000000000000002, valueString:0x000000000000000000000000A9823611AA152B6EFE4ECA3E51AC74998B5D7AFE0000000000000000000000000000000000000000000000000000000000000002}], valueString:[{name:assetClass, type:bytes4, order:1, indexed:false, value:lzu2QA==, valueString:System.Byte[]}, {name:data, type:bytes, order:2, indexed:false, value:0x000000000000000000000000A9823611AA152B6EFE4ECA3E51AC74998B5D7AFE0000000000000000000000000000000000000000000000000000000000000002, valueString:0x000000000000000000000000A9823611AA152B6EFE4ECA3E51AC74998B5D7AFE0000000000000000000000000000000000000000000000000000000000000002}]}, {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:lzu2QA==, valueString:System.Byte[]}, {name:data, type:bytes, order:2, indexed:false, value:0x000000000000000000000000A9823611AA152B6EFE4ECA3E51AC74998B5D7AFE0000000000000000000000000000000000000000000000000000000000000002, valueString:0x000000000000000000000000A9823611AA152B6EFE4ECA3E51AC74998B5D7AFE0000000000000000000000000000000000000000000000000000000000000002}], valueString:[{name:assetClass, type:bytes4, order:1, indexed:false, value:lzu2QA==, valueString:System.Byte[]}, {name:data, type:bytes, order:2, indexed:false, value:0x000000000000000000000000A9823611AA152B6EFE4ECA3E51AC74998B5D7AFE0000000000000000000000000000000000000000000000000000000000000002, valueString:0x000000000000000000000000A9823611AA152B6EFE4ECA3E51AC74998B5D7AFE0000000000000000000000000000000000000000000000000000000000000002}]}, {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:TCNCZg==, valueString:System.Byte[]}, {name:data, type:bytes, order:9, indexed:false, value:0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000001CF0DF2A5A20CD61D68D4489EEBBF85B8D39E18A00000000000000000000000000000000000000000000000000000000000000FA, valueString:0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000001CF0DF2A5A20CD61D68D4489EEBBF85B8D39E18A00000000000000000000000000000000000000000000000000000000000000FA}], signatureRight=0x )
    • Null: 0x000...001.c4637e4e( )
    • TransparentUpgradeableProxy.9ca7dc7a( )
      • RoyaltiesRegistry.getRoyalties( token=0xA9823611aa152b6Efe4ECa3e51AC74998b5D7AfE, tokenId=2 ) => ( )
        • RaribleUserToken.supportsInterface( interfaceId=System.Byte[] ) => ( False )
        • RaribleUserToken.supportsInterface( interfaceId=System.Byte[] ) => ( True )
        • RaribleUserToken.getFeeRecipients( id=2 ) => ( [0x1A8844F3218177E2EaE693Ad65A6c794a4a32B3D] )
        • RaribleUserToken.getFeeBps( id=2 ) => ( [1000] )
        • ETH 0.0015 0x1a8844f3218177e2eae693ad65a6c794a4a32b3d.CALL( )
        • ETH 0.000375 Proxy.CALL( )
        • ETH 0.000375 Proxy.CALL( )
        • ETH 0.013125 0x289b69e7b64848c9bec746cf2ce7459179bf06e2.CALL( )
        • TransferProxy.erc1155safeTransferFrom( token=0xA9823611aa152b6Efe4ECa3e51AC74998b5D7AfE, from=0x289B69E7b64848C9Bec746Cf2CE7459179bF06e2, to=0xEA8d6a16Ba2A4593A461ACDdbfA7Fa656132c61C, id=2, value=1, data=0x )
          • RaribleUserToken.safeTransferFrom( _from=0x289B69E7b64848C9Bec746Cf2CE7459179bF06e2, _to=0xEA8d6a16Ba2A4593A461ACDdbfA7Fa656132c61C, _id=2, _value=1, _data=0x )
            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: RaribleUserToken
            1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            12
            13
            14
            15
            16
            pragma solidity ^0.5.0;
            pragma experimental ABIEncoderV2;
            /**
            * @title SafeMath
            * @dev Math operations with safety checks that throw on error
            */
            library SafeMath {
            /**
            * @dev Multiplies two numbers, throws on overflow.
            */
            function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
            // Gas optimization: this is cheaper than asserting 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            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