Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Cross-Chain Transactions
Loading...
Loading
Contract Name:
SafeCollectionBidPolicyERC721
Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled:
Yes with 800 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.17; import {Order, AssetType} from "../lib/OrderStructs.sol"; import {IMatchingPolicy} from "../interfaces/IMatchingPolicy.sol"; /** * @title SafeCollectionBidPolicyERC721 * @dev Policy for matching orders where buyer will purchase any NON-SUSPICIOUS token from a collection */ contract SafeCollectionBidPolicyERC721 is IMatchingPolicy { function canMatchMakerAsk(Order calldata makerAsk, Order calldata takerBid) external pure override returns ( bool, uint256, uint256, uint256, AssetType ) { revert("Cannot be matched"); } 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.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, takerAsk.tokenId, 1, AssetType.ERC721 ); } }
// 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; }
// 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 ); }
{ "metadata": { "bytecodeHash": "none" }, "optimizer": { "enabled": true, "runs": 800 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"components":[{"internalType":"address","name":"trader","type":"address"},{"internalType":"enum Side","name":"side","type":"uint8"},{"internalType":"address","name":"matchingPolicy","type":"address"},{"internalType":"address","name":"collection","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"paymentToken","type":"address"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"listingTime","type":"uint256"},{"internalType":"uint256","name":"expirationTime","type":"uint256"},{"components":[{"internalType":"uint16","name":"rate","type":"uint16"},{"internalType":"address payable","name":"recipient","type":"address"}],"internalType":"struct Fee[]","name":"fees","type":"tuple[]"},{"internalType":"uint256","name":"salt","type":"uint256"},{"internalType":"bytes","name":"extraParams","type":"bytes"}],"internalType":"struct Order","name":"makerAsk","type":"tuple"},{"components":[{"internalType":"address","name":"trader","type":"address"},{"internalType":"enum Side","name":"side","type":"uint8"},{"internalType":"address","name":"matchingPolicy","type":"address"},{"internalType":"address","name":"collection","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"paymentToken","type":"address"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"listingTime","type":"uint256"},{"internalType":"uint256","name":"expirationTime","type":"uint256"},{"components":[{"internalType":"uint16","name":"rate","type":"uint16"},{"internalType":"address payable","name":"recipient","type":"address"}],"internalType":"struct Fee[]","name":"fees","type":"tuple[]"},{"internalType":"uint256","name":"salt","type":"uint256"},{"internalType":"bytes","name":"extraParams","type":"bytes"}],"internalType":"struct Order","name":"takerBid","type":"tuple"}],"name":"canMatchMakerAsk","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"enum AssetType","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"trader","type":"address"},{"internalType":"enum Side","name":"side","type":"uint8"},{"internalType":"address","name":"matchingPolicy","type":"address"},{"internalType":"address","name":"collection","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"paymentToken","type":"address"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"listingTime","type":"uint256"},{"internalType":"uint256","name":"expirationTime","type":"uint256"},{"components":[{"internalType":"uint16","name":"rate","type":"uint16"},{"internalType":"address payable","name":"recipient","type":"address"}],"internalType":"struct Fee[]","name":"fees","type":"tuple[]"},{"internalType":"uint256","name":"salt","type":"uint256"},{"internalType":"bytes","name":"extraParams","type":"bytes"}],"internalType":"struct Order","name":"makerBid","type":"tuple"},{"components":[{"internalType":"address","name":"trader","type":"address"},{"internalType":"enum Side","name":"side","type":"uint8"},{"internalType":"address","name":"matchingPolicy","type":"address"},{"internalType":"address","name":"collection","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"paymentToken","type":"address"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"listingTime","type":"uint256"},{"internalType":"uint256","name":"expirationTime","type":"uint256"},{"components":[{"internalType":"uint16","name":"rate","type":"uint16"},{"internalType":"address payable","name":"recipient","type":"address"}],"internalType":"struct Fee[]","name":"fees","type":"tuple[]"},{"internalType":"uint256","name":"salt","type":"uint256"},{"internalType":"bytes","name":"extraParams","type":"bytes"}],"internalType":"struct Order","name":"takerAsk","type":"tuple"}],"name":"canMatchMakerBid","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"enum AssetType","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b506104ab806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80630813a7661461003b578063d5ec8c7714610068575b600080fd5b61004e610049366004610322565b61007b565b60405161005f95949392919061039c565b60405180910390f35b61004e610076366004610322565b6102ae565b60008080808061009160408701602088016103e9565b60018111156100a2576100a2610386565b6100b26040890160208a016103e9565b60018111156100c3576100c3610386565b1415801561010057506100dc60e0870160c08801610411565b6001600160a01b03166100f560e0890160c08a01610411565b6001600160a01b0316145b801561013b57506101176080870160608801610411565b6001600160a01b03166101306080890160608a01610411565b6001600160a01b0316145b80156101ae5750600061015261018089018961043a565b90501180156101ae575061016a61018088018861043a565b600081811061017b5761017b610488565b9050013560f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916600160f81b145b8015610221575060006101c561018088018861043a565b905011801561022157506101dd61018087018761043a565b60008181106101ee576101ee610488565b9050013560f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916600160f81b145b801561023157508660a001356001145b801561024157508560a001356001145b801561027c57506102586060870160408801610411565b6001600160a01b03166102716060890160408a01610411565b6001600160a01b0316145b801561028f57508560e001358760e00135145b9450505060e08501359150506080830135600160009295509295909350565b600080600080600060405162461bcd60e51b81526004016103009060208082526011908201527f43616e6e6f74206265206d617463686564000000000000000000000000000000604082015260600190565b60405180910390fd5b60006101a0828403121561031c57600080fd5b50919050565b6000806040838503121561033557600080fd5b823567ffffffffffffffff8082111561034d57600080fd5b61035986838701610309565b9350602085013591508082111561036f57600080fd5b5061037c85828601610309565b9150509250929050565b634e487b7160e01b600052602160045260246000fd5b600060a0820190508615158252856020830152846040830152836060830152600283106103d957634e487b7160e01b600052602160045260246000fd5b8260808301529695505050505050565b6000602082840312156103fb57600080fd5b81356002811061040a57600080fd5b9392505050565b60006020828403121561042357600080fd5b81356001600160a01b038116811461040a57600080fd5b6000808335601e1984360301811261045157600080fd5b83018035915067ffffffffffffffff82111561046c57600080fd5b60200191503681900382131561048157600080fd5b9250929050565b634e487b7160e01b600052603260045260246000fdfea164736f6c6343000811000a
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100365760003560e01c80630813a7661461003b578063d5ec8c7714610068575b600080fd5b61004e610049366004610322565b61007b565b60405161005f95949392919061039c565b60405180910390f35b61004e610076366004610322565b6102ae565b60008080808061009160408701602088016103e9565b60018111156100a2576100a2610386565b6100b26040890160208a016103e9565b60018111156100c3576100c3610386565b1415801561010057506100dc60e0870160c08801610411565b6001600160a01b03166100f560e0890160c08a01610411565b6001600160a01b0316145b801561013b57506101176080870160608801610411565b6001600160a01b03166101306080890160608a01610411565b6001600160a01b0316145b80156101ae5750600061015261018089018961043a565b90501180156101ae575061016a61018088018861043a565b600081811061017b5761017b610488565b9050013560f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916600160f81b145b8015610221575060006101c561018088018861043a565b905011801561022157506101dd61018087018761043a565b60008181106101ee576101ee610488565b9050013560f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916600160f81b145b801561023157508660a001356001145b801561024157508560a001356001145b801561027c57506102586060870160408801610411565b6001600160a01b03166102716060890160408a01610411565b6001600160a01b0316145b801561028f57508560e001358760e00135145b9450505060e08501359150506080830135600160009295509295909350565b600080600080600060405162461bcd60e51b81526004016103009060208082526011908201527f43616e6e6f74206265206d617463686564000000000000000000000000000000604082015260600190565b60405180910390fd5b60006101a0828403121561031c57600080fd5b50919050565b6000806040838503121561033557600080fd5b823567ffffffffffffffff8082111561034d57600080fd5b61035986838701610309565b9350602085013591508082111561036f57600080fd5b5061037c85828601610309565b9150509250929050565b634e487b7160e01b600052602160045260246000fd5b600060a0820190508615158252856020830152846040830152836060830152600283106103d957634e487b7160e01b600052602160045260246000fd5b8260808301529695505050505050565b6000602082840312156103fb57600080fd5b81356002811061040a57600080fd5b9392505050565b60006020828403121561042357600080fd5b81356001600160a01b038116811461040a57600080fd5b6000808335601e1984360301811261045157600080fd5b83018035915067ffffffffffffffff82111561046c57600080fd5b60200191503681900382131561048157600080fd5b9250929050565b634e487b7160e01b600052603260045260246000fdfea164736f6c6343000811000a
Loading...
Loading
Loading...
Loading

Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.