ETH Price: $2,544.89 (-6.79%)

Transaction Decoder

Block:
15911921 at Nov-06-2022 03:37:59 PM +UTC
Transaction Fee:
0.00351383328512064 ETH $8.94
Gas Used:
226,432 Gas / 15.518271645 Gwei

Emitted Events:

266 ERC721Standalone.Transfer( from=0xd3834caa0f19eb3b4f19febf11efa92983b403a5, to=[Sender] 0xb681e94cadf59bb445dd30439912e3e8e6c8ea32, tokenId=139 )
267 ERC1967Proxy.0x61cbb2a3dee0b6064c2e681aadd61677fb4ef319f0b547508d495626f5a62f64( 0x61cbb2a3dee0b6064c2e681aadd61677fb4ef319f0b547508d495626f5a62f64, 0x000000000000000000000000d3834caa0f19eb3b4f19febf11efa92983b403a5, 0x000000000000000000000000b681e94cadf59bb445dd30439912e3e8e6c8ea32, 0000000000000000000000000000000000000000000000000000000000000080, 885095a61f1da0b45b3846ef9fc5c074dfde1c030facf2c3a54821aa656fe9d2, 00000000000000000000000000000000000000000000000000000000000002a0, faa34f93db3737c697e62f45b6e5be375f338fa70346fac6a8b9d8a31bfade2f, 000000000000000000000000d3834caa0f19eb3b4f19febf11efa92983b403a5, 0000000000000000000000000000000000000000000000000000000000000001, 00000000000000000000000000000000006411739da1c40b106f8511de5d1fac, 0000000000000000000000006f3aca0d7d5d8639e314bd20b79abb3e51c06f47, 000000000000000000000000000000000000000000000000000000000000008b, 0000000000000000000000000000000000000000000000000000000000000001, 0000000000000000000000000000000000000000000000000000000000000000, 00000000000000000000000000000000000000000000000000037b4e07e14000, 0000000000000000000000000000000000000000000000000000000063677199, 00000000000000000000000000000000000000000000000000000000638ee315, 00000000000000000000000000000000000000000000000000000000000001a0, 000000000000000000000000000000003e481f1bfff73505fd6a129f91d86bda, 0000000000000000000000000000000000000000000000000000000000000200, 0000000000000000000000000000000000000000000000000000000000000001, 00000000000000000000000000000000000000000000000000000000000001f4, 0000000000000000000000005f503c8b9d7f130d5e379c3c88b860ae1eb42b43, 0000000000000000000000000000000000000000000000000000000000000000, 000000000000000000000000b681e94cadf59bb445dd30439912e3e8e6c8ea32, 0000000000000000000000000000000000000000000000000000000000000000, 00000000000000000000000000000000006411739da1c40b106f8511de5d1fac, 0000000000000000000000006f3aca0d7d5d8639e314bd20b79abb3e51c06f47, 000000000000000000000000000000000000000000000000000000000000008b, 0000000000000000000000000000000000000000000000000000000000000001, 0000000000000000000000000000000000000000000000000000000000000000, 00000000000000000000000000000000000000000000000000037b4e07e14000, 000000000000000000000000000000000000000000000000000000006367c6b1, 000000000000000000000000000000000000000000000000000000006367e2d1, 00000000000000000000000000000000000000000000000000000000000001a0, 00000000000000000000000000000000c6774583d484b1ff5d288ccd4c4d2cfd, 00000000000000000000000000000000000000000000000000000000000001c0, 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000 )

Account State Difference:

  Address   Before After State Difference Code
0x00000000...830B95127
(Blur.io: Marketplace)
0x5F503c8b...e1EB42b43 0.821275135773297599 Eth0.821324135773297599 Eth0.000049
(builder0x69)
2.895410172974344662 Eth2.895749820974344662 Eth0.000339648
0x6f3Aca0D...E51c06f47
0xb681e94c...8e6C8eA32
0.042070131914452968 Eth
Nonce: 159
0.037576298629332328 Eth
Nonce: 160
0.00449383328512064
0xD3834caa...983B403a5 0.00100369860661 Eth0.00193469860661 Eth0.000931

Execution Trace

ETH 0.00098 ERC1967Proxy.9a1fc3a7( )
  • ETH 0.00098 BlurExchange.execute( sell=[{name:order, type:tuple, order:1, indexed:false, value:[{name:trader, type:address, order:1, indexed:false, value:0xD3834caa0f19EB3B4f19FEBF11eFa92983B403a5, valueString:0xD3834caa0f19EB3B4f19FEBF11eFa92983B403a5}, {name:side, type:uint8, order:2, indexed:false, value:1, valueString:1}, {name:matchingPolicy, type:address, order:3, indexed:false, value:0x00000000006411739DA1c40B106F8511de5D1FAC, valueString:0x00000000006411739DA1c40B106F8511de5D1FAC}, {name:collection, type:address, order:4, indexed:false, value:0x6f3Aca0D7d5d8639e314Bd20b79AbB3E51c06f47, valueString:0x6f3Aca0D7d5d8639e314Bd20b79AbB3E51c06f47}, {name:tokenId, type:uint256, order:5, indexed:false, value:139, valueString:139}, {name:amount, type:uint256, order:6, indexed:false, value:1, valueString:1}, {name:paymentToken, type:address, order:7, indexed:false, value:0x0000000000000000000000000000000000000000, valueString:0x0000000000000000000000000000000000000000}, {name:price, type:uint256, order:8, indexed:false, value:980000000000000, valueString:980000000000000}, {name:listingTime, type:uint256, order:9, indexed:false, value:1667723673, valueString:1667723673}, {name:expirationTime, type:uint256, order:10, indexed:false, value:1670308629, valueString:1670308629}, {name:fees, type:tuple[], order:11, indexed:false}, {name:salt, type:uint256, order:12, indexed:false, value:82786612085554925374016037369960491994, valueString:82786612085554925374016037369960491994}, {name:extraParams, type:bytes, order:13, indexed:false, value:0x, valueString:0x}], valueString:[{name:trader, type:address, order:1, indexed:false, value:0xD3834caa0f19EB3B4f19FEBF11eFa92983B403a5, valueString:0xD3834caa0f19EB3B4f19FEBF11eFa92983B403a5}, {name:side, type:uint8, order:2, indexed:false, value:1, valueString:1}, {name:matchingPolicy, type:address, order:3, indexed:false, value:0x00000000006411739DA1c40B106F8511de5D1FAC, valueString:0x00000000006411739DA1c40B106F8511de5D1FAC}, {name:collection, type:address, order:4, indexed:false, value:0x6f3Aca0D7d5d8639e314Bd20b79AbB3E51c06f47, valueString:0x6f3Aca0D7d5d8639e314Bd20b79AbB3E51c06f47}, {name:tokenId, type:uint256, order:5, indexed:false, value:139, valueString:139}, {name:amount, type:uint256, order:6, indexed:false, value:1, valueString:1}, {name:paymentToken, type:address, order:7, indexed:false, value:0x0000000000000000000000000000000000000000, valueString:0x0000000000000000000000000000000000000000}, {name:price, type:uint256, order:8, indexed:false, value:980000000000000, valueString:980000000000000}, {name:listingTime, type:uint256, order:9, indexed:false, value:1667723673, valueString:1667723673}, {name:expirationTime, type:uint256, order:10, indexed:false, value:1670308629, valueString:1670308629}, {name:fees, type:tuple[], order:11, indexed:false}, {name:salt, type:uint256, order:12, indexed:false, value:82786612085554925374016037369960491994, valueString:82786612085554925374016037369960491994}, {name:extraParams, type:bytes, order:13, indexed:false, value:0x, valueString:0x}]}, {name:v, type:uint8, order:2, indexed:false, value:28, valueString:28}, {name:r, type:bytes32, order:3, indexed:false, value:8E93D457401DBAED0C3A0605C88FFD841DA76E920F928A4FC345A490CA1AD5FE, valueString:8E93D457401DBAED0C3A0605C88FFD841DA76E920F928A4FC345A490CA1AD5FE}, {name:s, type:bytes32, order:4, indexed:false, value:4FC98FCCD6D907A53D33257EB3F6A18AD0A3C30C2A37EB76D741A53E5A83C5B4, valueString:4FC98FCCD6D907A53D33257EB3F6A18AD0A3C30C2A37EB76D741A53E5A83C5B4}, {name:extraSignature, type:bytes, order:5, indexed:false, value:0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000029DB102EAABB454172A821C622E5DE54F0D4F64483E729D928B4FF5006F3D0103EA10DFB848F1053FA13393CDAB3D3713EAB7233EAF9CA6BC20FA19DEF117CFF0, valueString:0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000029DB102EAABB454172A821C622E5DE54F0D4F64483E729D928B4FF5006F3D0103EA10DFB848F1053FA13393CDAB3D3713EAB7233EAF9CA6BC20FA19DEF117CFF0}, {name:signatureVersion, type:uint8, order:6, indexed:false, value:1, valueString:1}, {name:blockNumber, type:uint256, order:7, indexed:false, value:15911919, valueString:15911919}], buy=[{name:order, type:tuple, order:1, indexed:false, value:[{name:trader, type:address, order:1, indexed:false, value:0xb681e94cadf59bb445Dd30439912E3e8e6C8eA32, valueString:0xb681e94cadf59bb445Dd30439912E3e8e6C8eA32}, {name:side, type:uint8, order:2, indexed:false, value:0, valueString:0}, {name:matchingPolicy, type:address, order:3, indexed:false, value:0x00000000006411739DA1c40B106F8511de5D1FAC, valueString:0x00000000006411739DA1c40B106F8511de5D1FAC}, {name:collection, type:address, order:4, indexed:false, value:0x6f3Aca0D7d5d8639e314Bd20b79AbB3E51c06f47, valueString:0x6f3Aca0D7d5d8639e314Bd20b79AbB3E51c06f47}, {name:tokenId, type:uint256, order:5, indexed:false, value:139, valueString:139}, {name:amount, type:uint256, order:6, indexed:false, value:1, valueString:1}, {name:paymentToken, type:address, order:7, indexed:false, value:0x0000000000000000000000000000000000000000, valueString:0x0000000000000000000000000000000000000000}, {name:price, type:uint256, order:8, indexed:false, value:980000000000000, valueString:980000000000000}, {name:listingTime, type:uint256, order:9, indexed:false, value:1667745457, valueString:1667745457}, {name:expirationTime, type:uint256, order:10, indexed:false, value:1667752657, valueString:1667752657}, {name:fees, type:tuple[], order:11, indexed:false}, {name:salt, type:uint256, order:12, indexed:false, value:263806436422502169516450666515106966781, valueString:263806436422502169516450666515106966781}, {name:extraParams, type:bytes, order:13, indexed:false, value:0x, valueString:0x}], valueString:[{name:trader, type:address, order:1, indexed:false, value:0xb681e94cadf59bb445Dd30439912E3e8e6C8eA32, valueString:0xb681e94cadf59bb445Dd30439912E3e8e6C8eA32}, {name:side, type:uint8, order:2, indexed:false, value:0, valueString:0}, {name:matchingPolicy, type:address, order:3, indexed:false, value:0x00000000006411739DA1c40B106F8511de5D1FAC, valueString:0x00000000006411739DA1c40B106F8511de5D1FAC}, {name:collection, type:address, order:4, indexed:false, value:0x6f3Aca0D7d5d8639e314Bd20b79AbB3E51c06f47, valueString:0x6f3Aca0D7d5d8639e314Bd20b79AbB3E51c06f47}, {name:tokenId, type:uint256, order:5, indexed:false, value:139, valueString:139}, {name:amount, type:uint256, order:6, indexed:false, value:1, valueString:1}, {name:paymentToken, type:address, order:7, indexed:false, value:0x0000000000000000000000000000000000000000, valueString:0x0000000000000000000000000000000000000000}, {name:price, type:uint256, order:8, indexed:false, value:980000000000000, valueString:980000000000000}, {name:listingTime, type:uint256, order:9, indexed:false, value:1667745457, valueString:1667745457}, {name:expirationTime, type:uint256, order:10, indexed:false, value:1667752657, valueString:1667752657}, {name:fees, type:tuple[], order:11, indexed:false}, {name:salt, type:uint256, order:12, indexed:false, value:263806436422502169516450666515106966781, valueString:263806436422502169516450666515106966781}, {name:extraParams, type:bytes, order:13, indexed:false, value:0x, valueString:0x}]}, {name:v, type:uint8, order:2, indexed:false, value:0, valueString:0}, {name:r, type:bytes32, order:3, indexed:false, value:0000000000000000000000000000000000000000000000000000000000000000, valueString:0000000000000000000000000000000000000000000000000000000000000000}, {name:s, type:bytes32, order:4, indexed:false, value:0000000000000000000000000000000000000000000000000000000000000000, valueString:0000000000000000000000000000000000000000000000000000000000000000}, {name:extraSignature, type:bytes, order:5, indexed:false, value:0x, valueString:0x}, {name:signatureVersion, type:uint8, order:6, indexed:false, value:0, valueString:0}, {name:blockNumber, type:uint256, order:7, indexed:false, value:15911919, valueString:15911919}] )
    • ETH 0.00098 MerkleVerifier._computeRoot( ) => ( 48558302249C837BF415CB6C18B871CECDB4AD31FD09950734F7FEA3E3A13047 )
    • Null: 0x000...001.7b0fa757( )
    • PolicyManager.isPolicyWhitelisted( policy=0x00000000006411739DA1c40B106F8511de5D1FAC ) => ( True )
    • StandardPolicyERC721.canMatchMakerAsk( makerAsk=[{name:trader, type:address, order:1, indexed:false, value:0xD3834caa0f19EB3B4f19FEBF11eFa92983B403a5, valueString:0xD3834caa0f19EB3B4f19FEBF11eFa92983B403a5}, {name:side, type:uint8, order:2, indexed:false, value:1, valueString:1}, {name:matchingPolicy, type:address, order:3, indexed:false, value:0x00000000006411739DA1c40B106F8511de5D1FAC, valueString:0x00000000006411739DA1c40B106F8511de5D1FAC}, {name:collection, type:address, order:4, indexed:false, value:0x6f3Aca0D7d5d8639e314Bd20b79AbB3E51c06f47, valueString:0x6f3Aca0D7d5d8639e314Bd20b79AbB3E51c06f47}, {name:tokenId, type:uint256, order:5, indexed:false, value:139, valueString:139}, {name:amount, type:uint256, order:6, indexed:false, value:1, valueString:1}, {name:paymentToken, type:address, order:7, indexed:false, value:0x0000000000000000000000000000000000000000, valueString:0x0000000000000000000000000000000000000000}, {name:price, type:uint256, order:8, indexed:false, value:980000000000000, valueString:980000000000000}, {name:listingTime, type:uint256, order:9, indexed:false, value:1667723673, valueString:1667723673}, {name:expirationTime, type:uint256, order:10, indexed:false, value:1670308629, valueString:1670308629}, {name:fees, type:tuple[], order:11, indexed:false}, {name:salt, type:uint256, order:12, indexed:false, value:82786612085554925374016037369960491994, valueString:82786612085554925374016037369960491994}, {name:extraParams, type:bytes, order:13, indexed:false, value:0x, valueString:0x}], takerBid=[{name:trader, type:address, order:1, indexed:false, value:0xb681e94cadf59bb445Dd30439912E3e8e6C8eA32, valueString:0xb681e94cadf59bb445Dd30439912E3e8e6C8eA32}, {name:side, type:uint8, order:2, indexed:false, value:0, valueString:0}, {name:matchingPolicy, type:address, order:3, indexed:false, value:0x00000000006411739DA1c40B106F8511de5D1FAC, valueString:0x00000000006411739DA1c40B106F8511de5D1FAC}, {name:collection, type:address, order:4, indexed:false, value:0x6f3Aca0D7d5d8639e314Bd20b79AbB3E51c06f47, valueString:0x6f3Aca0D7d5d8639e314Bd20b79AbB3E51c06f47}, {name:tokenId, type:uint256, order:5, indexed:false, value:139, valueString:139}, {name:amount, type:uint256, order:6, indexed:false, value:1, valueString:1}, {name:paymentToken, type:address, order:7, indexed:false, value:0x0000000000000000000000000000000000000000, valueString:0x0000000000000000000000000000000000000000}, {name:price, type:uint256, order:8, indexed:false, value:980000000000000, valueString:980000000000000}, {name:listingTime, type:uint256, order:9, indexed:false, value:1667745457, valueString:1667745457}, {name:expirationTime, type:uint256, order:10, indexed:false, value:1667752657, valueString:1667752657}, {name:fees, type:tuple[], order:11, indexed:false}, {name:salt, type:uint256, order:12, indexed:false, value:263806436422502169516450666515106966781, valueString:263806436422502169516450666515106966781}, {name:extraParams, type:bytes, order:13, indexed:false, value:0x, valueString:0x}] ) => ( True, 980000000000000, 139, 1, 0 )
    • ETH 0.000049 0x5f503c8b9d7f130d5e379c3c88b860ae1eb42b43.CALL( )
    • ETH 0.000931 0xd3834caa0f19eb3b4f19febf11efa92983b403a5.CALL( )
    • ExecutionDelegate.transferERC721( collection=0x6f3Aca0D7d5d8639e314Bd20b79AbB3E51c06f47, from=0xD3834caa0f19EB3B4f19FEBF11eFa92983B403a5, to=0xb681e94cadf59bb445Dd30439912E3e8e6C8eA32, tokenId=139 )
      • ERC721Standalone.safeTransferFrom( from=0xD3834caa0f19EB3B4f19FEBF11eFa92983B403a5, to=0xb681e94cadf59bb445Dd30439912E3e8e6C8eA32, tokenId=139 )
        execute[BlurExchange (ln:101)]
        File 1 of 7: ERC1967Proxy
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        // SPDX-License-Identifier: MIT
        // OpenZeppelin Contracts v4.4.1 (proxy/ERC1967/ERC1967Proxy.sol)
        pragma solidity 0.8.17;
        // OpenZeppelin Contracts v4.4.1 (proxy/Proxy.sol)
        /**
        * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM
        * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to
        * be specified by overriding the virtual {_implementation} function.
        *
        * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a
        * different contract through the {_delegate} function.
        *
        * The success and return data of the delegated call will be returned back to the caller of the proxy.
        */
        abstract contract Proxy {
        /**
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

        File 2 of 7: ERC721Standalone
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        // SPDX-License-Identifier: MIT
        // OpenZeppelin Contracts (last updated v4.5.0) (access/AccessControl.sol)
        pragma solidity ^0.8.0;
        import "./IAccessControl.sol";
        import "../utils/Context.sol";
        import "../utils/Strings.sol";
        import "../utils/introspection/ERC165.sol";
        /**
        * @dev Contract module that allows children to implement role-based access
        * control mechanisms. This is a lightweight version that doesn't allow enumerating role
        * members except through off-chain means by accessing the contract event logs. Some
        * applications may benefit from on-chain enumerability, for those cases see
        * {AccessControlEnumerable}.
        *
        * Roles are referred to by their `bytes32` identifier. These should be exposed
        * in the external API and be unique. The best way to achieve this is by
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

        File 3 of 7: BlurExchange
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        // SPDX-License-Identifier: MIT
        pragma solidity 0.8.17;
        import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
        import "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";
        import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
        import "./lib/ReentrancyGuarded.sol";
        import "./lib/EIP712.sol";
        import "./lib/MerkleVerifier.sol";
        import "./interfaces/IBlurExchange.sol";
        import "./interfaces/IExecutionDelegate.sol";
        import "./interfaces/IPolicyManager.sol";
        import "./interfaces/IMatchingPolicy.sol";
        import {
        Side,
        SignatureVersion,
        AssetType,
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

        File 4 of 7: MerkleVerifier
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        // SPDX-License-Identifier: MIT
        pragma solidity 0.8.17;
        /**
        * @title MerkleVerifier
        * @dev Utility functions for Merkle tree computations
        */
        library MerkleVerifier {
        error InvalidProof();
        /**
        * @dev Verify the merkle proof
        * @param leaf leaf
        * @param root root
        * @param proof proof
        */
        function _verifyProof(
        bytes32 leaf,
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

        File 5 of 7: PolicyManager
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        // SPDX-License-Identifier: MIT
        pragma solidity 0.8.17;
        import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
        import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
        import {IPolicyManager} from "./interfaces/IPolicyManager.sol";
        /**
        * @title PolicyManager
        * @dev Manages the policy whitelist for the Blur exchange
        */
        contract PolicyManager is IPolicyManager, Ownable {
        using EnumerableSet for EnumerableSet.AddressSet;
        EnumerableSet.AddressSet private _whitelistedPolicies;
        event PolicyRemoved(address indexed policy);
        event PolicyWhitelisted(address indexed policy);
        /**
        * @notice Add matching policy
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

        File 6 of 7: StandardPolicyERC721
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        // SPDX-License-Identifier: MIT
        pragma solidity 0.8.17;
        import {Order, AssetType} from "../lib/OrderStructs.sol";
        import {IMatchingPolicy} from "../interfaces/IMatchingPolicy.sol";
        /**
        * @title StandardPolicyERC721
        * @dev Policy for matching orders at a fixed price for a specific ERC721 tokenId
        */
        contract StandardPolicyERC721 is IMatchingPolicy {
        function canMatchMakerAsk(Order calldata makerAsk, Order calldata takerBid)
        external
        pure
        override
        returns (
        bool,
        uint256,
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

        File 7 of 7: ExecutionDelegate
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        // SPDX-License-Identifier: MIT
        pragma solidity 0.8.17;
        import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
        import "@openzeppelin/contracts/token/ERC721/IERC721.sol";
        import "@openzeppelin/contracts/token/ERC1155/IERC1155.sol";
        import "@openzeppelin/contracts/access/Ownable.sol";
        import "@openzeppelin/contracts/utils/Address.sol";
        import {IExecutionDelegate} from "./interfaces/IExecutionDelegate.sol";
        /**
        * @title ExecutionDelegate
        * @dev Proxy contract to manage user token approvals
        */
        contract ExecutionDelegate is IExecutionDelegate, Ownable {
        using Address for address;
        mapping(address => bool) public contracts;
        mapping(address => bool) public revokedApproval;
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX