Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
0x60806040 | 15118761 | 840 days ago | IN | 0 ETH | 0.00198012 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
StrategyFixedPrice
Compiler Version
v0.8.15+commit.e14f2714
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import {OrderTypes} from "../libraries/OrderTypes.sol"; import {IStrategy} from "../interfaces/IStrategy.sol"; contract StrategyFixedPrice is IStrategy { // solhint-disable not-rely-on-time using OrderTypes for OrderTypes.MakerOrder; function canExecuteTakerAsk( OrderTypes.MakerOrder calldata makerBid, OrderTypes.TakerOrder calldata takerAsk ) external view override returns ( bool valid, uint256 tokenId, uint256 amount ) { OrderTypes.OrderItem memory item = makerBid.items[takerAsk.itemIdx]; return ( (makerBid.startTime <= block.timestamp && makerBid.endTime >= block.timestamp && item.collection == takerAsk.item.collection && item.tokenId == takerAsk.item.tokenId && item.amount == takerAsk.item.amount && item.price == takerAsk.item.price), item.tokenId, item.amount ); } function canExecuteTakerBid( OrderTypes.MakerOrder calldata makerAsk, OrderTypes.TakerOrder calldata takerBid ) external view override returns ( bool valid, uint256 tokenId, uint256 amount ) { OrderTypes.OrderItem memory item = makerAsk.items[takerBid.itemIdx]; return ( (makerAsk.startTime <= block.timestamp && makerAsk.endTime >= block.timestamp && item.collection == takerBid.item.collection && item.tokenId == takerBid.item.tokenId && item.amount == takerBid.item.amount && item.price == takerBid.item.price), item.tokenId, item.amount ); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; library OrderTypes { struct OrderItem { address collection; uint256 tokenId; uint256 amount; uint256 price; } struct MakerOrder { bool isAsk; address signer; OrderItem[] items; address strategy; address currency; uint256 nonce; uint256 startTime; uint256 endTime; uint256 minPercentageToAsk; bytes32 marketplace; bytes params; uint8 v; bytes32 r; bytes32 s; } struct TakerOrder { bool isAsk; address taker; uint256 itemIdx; OrderItem item; uint256 minPercentageToAsk; bytes32 marketplace; bytes params; } struct Fulfillment { address collection; uint256 tokenId; uint256 amount; address currency; uint256 price; } function hash(OrderItem memory orderItem) internal pure returns (bytes32) { return keccak256( abi.encode( keccak256( "OrderItem(address collection,uint256 tokenId,uint256 amount,uint256 price)" ), orderItem.collection, orderItem.tokenId, orderItem.amount, orderItem.price ) ); } function hash(MakerOrder memory makerOrder) internal pure returns (bytes32) { bytes32[] memory itemsHash = new bytes32[](makerOrder.items.length); for (uint256 i = 0; i < makerOrder.items.length; i++) { itemsHash[i] = hash(makerOrder.items[i]); } return keccak256( abi.encode( keccak256( "MakerOrder(bool isAsk,address signer,OrderItem[] items,address strategy,address currency,uint256 nonce,uint256 startTime,uint256 endTime,uint256 minPercentageToAsk,bytes32 marketplace,bytes params)OrderItem(address collection,uint256 tokenId,uint256 amount,uint256 price)" ), makerOrder.isAsk, makerOrder.signer, keccak256(abi.encodePacked(itemsHash)), makerOrder.strategy, makerOrder.currency, makerOrder.nonce, makerOrder.startTime, makerOrder.endTime, makerOrder.minPercentageToAsk, makerOrder.marketplace, keccak256(makerOrder.params) ) ); } function hashOrderItem(MakerOrder memory makerOrder, uint256 idx) internal pure returns (bytes32) { return keccak256( abi.encode( makerOrder.isAsk, makerOrder.signer, idx, makerOrder.items[idx], makerOrder.strategy, makerOrder.currency, makerOrder.nonce, makerOrder.startTime, makerOrder.endTime, makerOrder.minPercentageToAsk, makerOrder.params ) ); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import {OrderTypes} from "../libraries/OrderTypes.sol"; interface IStrategy { function canExecuteTakerAsk( OrderTypes.MakerOrder calldata makerBid, OrderTypes.TakerOrder calldata takerAsk ) external view returns ( bool valid, uint256 tokenId, uint256 amount ); function canExecuteTakerBid( OrderTypes.MakerOrder calldata makerAsk, OrderTypes.TakerOrder calldata takerBid ) external view returns ( bool valid, uint256 tokenId, uint256 amount ); }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"components":[{"internalType":"bool","name":"isAsk","type":"bool"},{"internalType":"address","name":"signer","type":"address"},{"components":[{"internalType":"address","name":"collection","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"}],"internalType":"struct OrderTypes.OrderItem[]","name":"items","type":"tuple[]"},{"internalType":"address","name":"strategy","type":"address"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"uint256","name":"minPercentageToAsk","type":"uint256"},{"internalType":"bytes32","name":"marketplace","type":"bytes32"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct OrderTypes.MakerOrder","name":"makerBid","type":"tuple"},{"components":[{"internalType":"bool","name":"isAsk","type":"bool"},{"internalType":"address","name":"taker","type":"address"},{"internalType":"uint256","name":"itemIdx","type":"uint256"},{"components":[{"internalType":"address","name":"collection","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"}],"internalType":"struct OrderTypes.OrderItem","name":"item","type":"tuple"},{"internalType":"uint256","name":"minPercentageToAsk","type":"uint256"},{"internalType":"bytes32","name":"marketplace","type":"bytes32"},{"internalType":"bytes","name":"params","type":"bytes"}],"internalType":"struct OrderTypes.TakerOrder","name":"takerAsk","type":"tuple"}],"name":"canExecuteTakerAsk","outputs":[{"internalType":"bool","name":"valid","type":"bool"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bool","name":"isAsk","type":"bool"},{"internalType":"address","name":"signer","type":"address"},{"components":[{"internalType":"address","name":"collection","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"}],"internalType":"struct OrderTypes.OrderItem[]","name":"items","type":"tuple[]"},{"internalType":"address","name":"strategy","type":"address"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"uint256","name":"minPercentageToAsk","type":"uint256"},{"internalType":"bytes32","name":"marketplace","type":"bytes32"},{"internalType":"bytes","name":"params","type":"bytes"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct OrderTypes.MakerOrder","name":"makerAsk","type":"tuple"},{"components":[{"internalType":"bool","name":"isAsk","type":"bool"},{"internalType":"address","name":"taker","type":"address"},{"internalType":"uint256","name":"itemIdx","type":"uint256"},{"components":[{"internalType":"address","name":"collection","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"}],"internalType":"struct OrderTypes.OrderItem","name":"item","type":"tuple"},{"internalType":"uint256","name":"minPercentageToAsk","type":"uint256"},{"internalType":"bytes32","name":"marketplace","type":"bytes32"},{"internalType":"bytes","name":"params","type":"bytes"}],"internalType":"struct OrderTypes.TakerOrder","name":"takerBid","type":"tuple"}],"name":"canExecuteTakerBid","outputs":[{"internalType":"bool","name":"valid","type":"bool"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b5061030f806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063375977c71461003b578063c35186d81461003b575b600080fd5b61004e610049366004610146565b61006f565b60408051931515845260208401929092529082015260600160405180910390f35b600080808061008160408701876101bb565b86604001358181106100955761009561020c565b9050608002018036038101906100ab919061023e565b9050428660c00135111580156100c55750428660e0013510155b80156100f557506100dc60808601606087016102b7565b6001600160a01b031681600001516001600160a01b0316145b8015610108575060208101516080860135145b801561011b5750604081015160a0860135145b801561012e5750606081015160c0860135145b81602001518260400151935093509350509250925092565b6000806040838503121561015957600080fd5b823567ffffffffffffffff8082111561017157600080fd5b908401906101c0828703121561018657600080fd5b9092506020840135908082111561019c57600080fd5b50830161014081860312156101b057600080fd5b809150509250929050565b6000808335601e198436030181126101d257600080fd5b83018035915067ffffffffffffffff8211156101ed57600080fd5b6020019150600781901b360382131561020557600080fd5b9250929050565b634e487b7160e01b600052603260045260246000fd5b80356001600160a01b038116811461023957600080fd5b919050565b60006080828403121561025057600080fd5b6040516080810181811067ffffffffffffffff8211171561028157634e487b7160e01b600052604160045260246000fd5b60405261028d83610222565b81526020830135602082015260408301356040820152606083013560608201528091505092915050565b6000602082840312156102c957600080fd5b6102d282610222565b939250505056fea2646970667358221220066a9eb4dd566767304d3c5a6f55cc7c0fa70bb2f67b0a5a9d0f3334c6f8bac464736f6c634300080f0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063375977c71461003b578063c35186d81461003b575b600080fd5b61004e610049366004610146565b61006f565b60408051931515845260208401929092529082015260600160405180910390f35b600080808061008160408701876101bb565b86604001358181106100955761009561020c565b9050608002018036038101906100ab919061023e565b9050428660c00135111580156100c55750428660e0013510155b80156100f557506100dc60808601606087016102b7565b6001600160a01b031681600001516001600160a01b0316145b8015610108575060208101516080860135145b801561011b5750604081015160a0860135145b801561012e5750606081015160c0860135145b81602001518260400151935093509350509250925092565b6000806040838503121561015957600080fd5b823567ffffffffffffffff8082111561017157600080fd5b908401906101c0828703121561018657600080fd5b9092506020840135908082111561019c57600080fd5b50830161014081860312156101b057600080fd5b809150509250929050565b6000808335601e198436030181126101d257600080fd5b83018035915067ffffffffffffffff8211156101ed57600080fd5b6020019150600781901b360382131561020557600080fd5b9250929050565b634e487b7160e01b600052603260045260246000fd5b80356001600160a01b038116811461023957600080fd5b919050565b60006080828403121561025057600080fd5b6040516080810181811067ffffffffffffffff8211171561028157634e487b7160e01b600052604160045260246000fd5b60405261028d83610222565b81526020830135602082015260408301356040820152606083013560608201528091505092915050565b6000602082840312156102c957600080fd5b6102d282610222565b939250505056fea2646970667358221220066a9eb4dd566767304d3c5a6f55cc7c0fa70bb2f67b0a5a9d0f3334c6f8bac464736f6c634300080f0033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
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.