false
true
0

Contract Address Details

0x0000000000daB4A563819e8fd93dbA3b25BC3495

Contract Name
StandardPolicyERC721
Creator
0x73ccad–d65399 at 0xde2a59–1c6c42
Balance
0 PLS ( )
Tokens
Fetching tokens...
Transactions
0 Transactions
Transfers
0 Transfers
Gas Used
Fetching gas used...
Last Balance Update
26598063
Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
This contract has been partially verified via Sourcify. View contract in Sourcify repository
Contract name:
StandardPolicyERC721




Optimization enabled
true
Compiler version
v0.8.17+commit.8df45f5f




Optimization runs
800
EVM Version
london




Verified at
2026-05-23T00:43:01.102594Z

contracts/matchingPolicies/StandardPolicyERC721.sol

// 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 (requires oracle authorization on both orders)
 */
contract StandardPolicyERC721 is IMatchingPolicy {
    function canMatchMakerAsk(Order calldata makerAsk, Order calldata takerBid)
        external
        pure
        override
        returns (
            bool,
            uint256,
            uint256,
            uint256,
            AssetType
        )
    {
        return (
            (makerAsk.side != takerBid.side) &&
            (makerAsk.paymentToken == takerBid.paymentToken) &&
            (makerAsk.collection == takerBid.collection) &&
            (makerAsk.tokenId == takerBid.tokenId) &&
            (makerAsk.extraParams.length > 0 && makerAsk.extraParams[0] == "\x01") &&
            (takerBid.extraParams.length > 0 && takerBid.extraParams[0] == "\x01") &&
            (makerAsk.amount == 1) &&
            (takerBid.amount == 1) &&
            (makerAsk.matchingPolicy == takerBid.matchingPolicy) &&
            (makerAsk.price == takerBid.price),
            makerAsk.price,
            makerAsk.tokenId,
            1,
            AssetType.ERC721
        );
    }

    function canMatchMakerBid(Order calldata makerBid, Order calldata takerAsk)
        external
        pure
        override
        returns (
            bool,
            uint256,
            uint256,
            uint256,
            AssetType
        )
    {
        return (
            (makerBid.side != takerAsk.side) &&
            (makerBid.paymentToken == takerAsk.paymentToken) &&
            (makerBid.collection == takerAsk.collection) &&
            (makerBid.tokenId == takerAsk.tokenId) &&
            (makerBid.extraParams.length > 0 && makerBid.extraParams[0] == "\x01") &&
            (takerAsk.extraParams.length > 0 && takerAsk.extraParams[0] == "\x01") &&
            (makerBid.amount == 1) &&
            (takerAsk.amount == 1) &&
            (makerBid.matchingPolicy == takerAsk.matchingPolicy) &&
            (makerBid.price == takerAsk.price),
            makerBid.price,
            makerBid.tokenId,
            1,
            AssetType.ERC721
        );
    }
}

        

/OrderStructs.sol

// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;

enum Side { Buy, Sell }
enum SignatureVersion { Single, Bulk }
enum AssetType { ERC721, ERC1155 }

struct Fee {
    uint16 rate;
    address payable recipient;
}

struct Order {
    address trader;
    Side side;
    address matchingPolicy;
    address collection;
    uint256 tokenId;
    uint256 amount;
    address paymentToken;
    uint256 price;
    uint256 listingTime;
    /* Order expiration timestamp - 0 for oracle cancellations. */
    uint256 expirationTime;
    Fee[] fees;
    uint256 salt;
    bytes extraParams;
}

struct Input {
    Order order;
    uint8 v;
    bytes32 r;
    bytes32 s;
    bytes extraSignature;
    SignatureVersion signatureVersion;
    uint256 blockNumber;
}

struct Execution {
  Input sell;
  Input buy;
}
          

/IMatchingPolicy.sol

// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;

import {Order, AssetType} from "../lib/OrderStructs.sol";

interface IMatchingPolicy {
    function canMatchMakerAsk(Order calldata makerAsk, Order calldata takerBid)
        external
        view
        returns (
            bool,
            uint256,
            uint256,
            uint256,
            AssetType
        );

    function canMatchMakerBid(Order calldata makerBid, Order calldata takerAsk)
        external
        view
        returns (
            bool,
            uint256,
            uint256,
            uint256,
            AssetType
        );
}
          

Compiler Settings

{"remappings":[],"optimizer":{"runs":800,"enabled":true},"metadata":{"bytecodeHash":"none"},"libraries":{},"evmVersion":"london","compilationTarget":{"contracts/matchingPolicies/StandardPolicyERC721.sol":"StandardPolicyERC721"}}
              

Contract ABI

[{"type":"function","stateMutability":"pure","outputs":[{"type":"bool","name":"","internalType":"bool"},{"type":"uint256","name":"","internalType":"uint256"},{"type":"uint256","name":"","internalType":"uint256"},{"type":"uint256","name":"","internalType":"uint256"},{"type":"uint8","name":"","internalType":"enum AssetType"}],"name":"canMatchMakerAsk","inputs":[{"type":"tuple","name":"makerAsk","internalType":"struct Order","components":[{"type":"address","name":"trader","internalType":"address"},{"type":"uint8","name":"side","internalType":"enum Side"},{"type":"address","name":"matchingPolicy","internalType":"address"},{"type":"address","name":"collection","internalType":"address"},{"type":"uint256","name":"tokenId","internalType":"uint256"},{"type":"uint256","name":"amount","internalType":"uint256"},{"type":"address","name":"paymentToken","internalType":"address"},{"type":"uint256","name":"price","internalType":"uint256"},{"type":"uint256","name":"listingTime","internalType":"uint256"},{"type":"uint256","name":"expirationTime","internalType":"uint256"},{"type":"tuple[]","name":"fees","internalType":"struct Fee[]","components":[{"type":"uint16","name":"rate","internalType":"uint16"},{"type":"address","name":"recipient","internalType":"address payable"}]},{"type":"uint256","name":"salt","internalType":"uint256"},{"type":"bytes","name":"extraParams","internalType":"bytes"}]},{"type":"tuple","name":"takerBid","internalType":"struct Order","components":[{"type":"address","name":"trader","internalType":"address"},{"type":"uint8","name":"side","internalType":"enum Side"},{"type":"address","name":"matchingPolicy","internalType":"address"},{"type":"address","name":"collection","internalType":"address"},{"type":"uint256","name":"tokenId","internalType":"uint256"},{"type":"uint256","name":"amount","internalType":"uint256"},{"type":"address","name":"paymentToken","internalType":"address"},{"type":"uint256","name":"price","internalType":"uint256"},{"type":"uint256","name":"listingTime","internalType":"uint256"},{"type":"uint256","name":"expirationTime","internalType":"uint256"},{"type":"tuple[]","name":"fees","internalType":"struct Fee[]","components":[{"type":"uint16","name":"rate","internalType":"uint16"},{"type":"address","name":"recipient","internalType":"address payable"}]},{"type":"uint256","name":"salt","internalType":"uint256"},{"type":"bytes","name":"extraParams","internalType":"bytes"}]}]},{"type":"function","stateMutability":"pure","outputs":[{"type":"bool","name":"","internalType":"bool"},{"type":"uint256","name":"","internalType":"uint256"},{"type":"uint256","name":"","internalType":"uint256"},{"type":"uint256","name":"","internalType":"uint256"},{"type":"uint8","name":"","internalType":"enum AssetType"}],"name":"canMatchMakerBid","inputs":[{"type":"tuple","name":"makerBid","internalType":"struct Order","components":[{"type":"address","name":"trader","internalType":"address"},{"type":"uint8","name":"side","internalType":"enum Side"},{"type":"address","name":"matchingPolicy","internalType":"address"},{"type":"address","name":"collection","internalType":"address"},{"type":"uint256","name":"tokenId","internalType":"uint256"},{"type":"uint256","name":"amount","internalType":"uint256"},{"type":"address","name":"paymentToken","internalType":"address"},{"type":"uint256","name":"price","internalType":"uint256"},{"type":"uint256","name":"listingTime","internalType":"uint256"},{"type":"uint256","name":"expirationTime","internalType":"uint256"},{"type":"tuple[]","name":"fees","internalType":"struct Fee[]","components":[{"type":"uint16","name":"rate","internalType":"uint16"},{"type":"address","name":"recipient","internalType":"address payable"}]},{"type":"uint256","name":"salt","internalType":"uint256"},{"type":"bytes","name":"extraParams","internalType":"bytes"}]},{"type":"tuple","name":"takerAsk","internalType":"struct Order","components":[{"type":"address","name":"trader","internalType":"address"},{"type":"uint8","name":"side","internalType":"enum Side"},{"type":"address","name":"matchingPolicy","internalType":"address"},{"type":"address","name":"collection","internalType":"address"},{"type":"uint256","name":"tokenId","internalType":"uint256"},{"type":"uint256","name":"amount","internalType":"uint256"},{"type":"address","name":"paymentToken","internalType":"address"},{"type":"uint256","name":"price","internalType":"uint256"},{"type":"uint256","name":"listingTime","internalType":"uint256"},{"type":"uint256","name":"expirationTime","internalType":"uint256"},{"type":"tuple[]","name":"fees","internalType":"struct Fee[]","components":[{"type":"uint16","name":"rate","internalType":"uint16"},{"type":"address","name":"recipient","internalType":"address payable"}]},{"type":"uint256","name":"salt","internalType":"uint256"},{"type":"bytes","name":"extraParams","internalType":"bytes"}]}]}]
              

Contract Creation Code

Verify & Publish
0x608060405234801561001057600080fd5b5061044c806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80630813a7661461003b578063d5ec8c771461003b575b600080fd5b61004e6100493660046102c3565b610068565b60405161005f95949392919061033d565b60405180910390f35b60008080808061007e604087016020880161038a565b600181111561008f5761008f610327565b61009f6040890160208a0161038a565b60018111156100b0576100b0610327565b141580156100ed57506100c960e0870160c088016103b2565b6001600160a01b03166100e260e0890160c08a016103b2565b6001600160a01b0316145b8015610128575061010460808701606088016103b2565b6001600160a01b031661011d6080890160608a016103b2565b6001600160a01b0316145b801561013b575085608001358760800135145b80156101ae575060006101526101808901896103db565b90501180156101ae575061016a6101808801886103db565b600081811061017b5761017b610429565b9050013560f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916600160f81b145b8015610221575060006101c56101808801886103db565b905011801561022157506101dd6101808701876103db565b60008181106101ee576101ee610429565b9050013560f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916600160f81b145b801561023157508660a001356001145b801561024157508560a001356001145b801561027c575061025860608701604088016103b2565b6001600160a01b03166102716060890160408a016103b2565b6001600160a01b0316145b801561028f57508560e001358760e00135145b9760e088013597608001359650600195506000945092505050565b60006101a082840312156102bd57600080fd5b50919050565b600080604083850312156102d657600080fd5b823567ffffffffffffffff808211156102ee57600080fd5b6102fa868387016102aa565b9350602085013591508082111561031057600080fd5b5061031d858286016102aa565b9150509250929050565b634e487b7160e01b600052602160045260246000fd5b600060a08201905086151582528560208301528460408301528360608301526002831061037a57634e487b7160e01b600052602160045260246000fd5b8260808301529695505050505050565b60006020828403121561039c57600080fd5b8135600281106103ab57600080fd5b9392505050565b6000602082840312156103c457600080fd5b81356001600160a01b03811681146103ab57600080fd5b6000808335601e198436030181126103f257600080fd5b83018035915067ffffffffffffffff82111561040d57600080fd5b60200191503681900382131561042257600080fd5b9250929050565b634e487b7160e01b600052603260045260246000fdfea164736f6c6343000811000a

Deployed ByteCode

0x608060405234801561001057600080fd5b50600436106100365760003560e01c80630813a7661461003b578063d5ec8c771461003b575b600080fd5b61004e6100493660046102c3565b610068565b60405161005f95949392919061033d565b60405180910390f35b60008080808061007e604087016020880161038a565b600181111561008f5761008f610327565b61009f6040890160208a0161038a565b60018111156100b0576100b0610327565b141580156100ed57506100c960e0870160c088016103b2565b6001600160a01b03166100e260e0890160c08a016103b2565b6001600160a01b0316145b8015610128575061010460808701606088016103b2565b6001600160a01b031661011d6080890160608a016103b2565b6001600160a01b0316145b801561013b575085608001358760800135145b80156101ae575060006101526101808901896103db565b90501180156101ae575061016a6101808801886103db565b600081811061017b5761017b610429565b9050013560f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916600160f81b145b8015610221575060006101c56101808801886103db565b905011801561022157506101dd6101808701876103db565b60008181106101ee576101ee610429565b9050013560f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916600160f81b145b801561023157508660a001356001145b801561024157508560a001356001145b801561027c575061025860608701604088016103b2565b6001600160a01b03166102716060890160408a016103b2565b6001600160a01b0316145b801561028f57508560e001358760e00135145b9760e088013597608001359650600195506000945092505050565b60006101a082840312156102bd57600080fd5b50919050565b600080604083850312156102d657600080fd5b823567ffffffffffffffff808211156102ee57600080fd5b6102fa868387016102aa565b9350602085013591508082111561031057600080fd5b5061031d858286016102aa565b9150509250929050565b634e487b7160e01b600052602160045260246000fd5b600060a08201905086151582528560208301528460408301528360608301526002831061037a57634e487b7160e01b600052602160045260246000fd5b8260808301529695505050505050565b60006020828403121561039c57600080fd5b8135600281106103ab57600080fd5b9392505050565b6000602082840312156103c457600080fd5b81356001600160a01b03811681146103ab57600080fd5b6000808335601e198436030181126103f257600080fd5b83018035915067ffffffffffffffff82111561040d57600080fd5b60200191503681900382131561042257600080fd5b9250929050565b634e487b7160e01b600052603260045260246000fdfea164736f6c6343000811000a