Skip to main content
Version: 1.0.0

StrategyChainlinkUSDDynamicAsk

LooksRare protocol team (👀,💎)

StrategyChainlinkUSDDynamicAsk

This contract allows a seller to sell an NFT priced in USD and the receivable amount to be in ETH.

Methods​

ETH_USD_PRICE_FEED_DECIMALS​

function ETH_USD_PRICE_FEED_DECIMALS() external view returns (uint256)

It is possible to call priceFeed.decimals() to get the decimals, but to save gas, it is hard coded instead.

Returns​

NameTypeDescription
_0uint256undefined

WETH​

function WETH() external view returns (address)

Wrapped ether (WETH) address.

Returns​

NameTypeDescription
_0addressundefined

cancelOwnershipTransfer​

function cancelOwnershipTransfer() external nonpayable

This function is used to cancel the ownership transfer.

This function can be used for both cancelling a transfer to a new owner and cancelling the renouncement of the ownership.

confirmOwnershipRenouncement​

function confirmOwnershipRenouncement() external nonpayable

This function is used to confirm the ownership renouncement.

confirmOwnershipTransfer​

function confirmOwnershipTransfer() external nonpayable

This function is used to confirm the ownership transfer.

This function can only be called by the current potential owner.

executeStrategyWithTakerBid​

function executeStrategyWithTakerBid(OrderStructs.Taker takerBid, OrderStructs.Maker makerAsk) external view returns (uint256 price, uint256[] itemIds, uint256[] amounts, bool isNonceInvalidated)

Parameters​

NameTypeDescription
takerBidOrderStructs.Takerundefined
makerAskOrderStructs.Makerundefined

Returns​

NameTypeDescription
priceuint256undefined
itemIdsuint256[]undefined
amountsuint256[]undefined
isNonceInvalidatedboolundefined

initiateOwnershipRenouncement​

function initiateOwnershipRenouncement() external nonpayable

This function is used to initiate the ownership renouncement.

initiateOwnershipTransfer​

function initiateOwnershipTransfer(address newPotentialOwner) external nonpayable

This function is used to initiate the transfer of ownership to a new owner.

Parameters​

NameTypeDescription
newPotentialOwneraddressNew potential owner address

isLooksRareV2Strategy​

function isLooksRareV2Strategy() external pure returns (bool)

This function acts as a safety check for the protocol's owner when adding new execution strategies.

Returns​

NameTypeDescription
_0boolWhether it is a LooksRare V2 protocol strategy

isMakerOrderValid​

function isMakerOrderValid(OrderStructs.Maker makerAsk, bytes4 functionSelector) external view returns (bool isValid, bytes4 errorSelector)

Parameters​

NameTypeDescription
makerAskOrderStructs.Makerundefined
functionSelectorbytes4undefined

Returns​

NameTypeDescription
isValidboolundefined
errorSelectorbytes4undefined

maxLatency​

function maxLatency() external view returns (uint256)

Maximum latency accepted after which the execution strategy rejects the retrieved price. For ETH, it cannot be higher than 3,600 as Chainlink will at least update the price every 3,600 seconds, provided ETH's price does not deviate more than 0.5%. For NFTs, it cannot be higher than 86,400 as Chainlink will at least update the price every 86,400 seconds, provided ETH's price does not deviate more than 2%.

Returns​

NameTypeDescription
_0uint256undefined

owner​

function owner() external view returns (address)

Address of the current owner.

Returns​

NameTypeDescription
_0addressundefined

ownershipStatus​

function ownershipStatus() external view returns (enum IOwnableTwoSteps.Status)

Ownership status.

Returns​

NameTypeDescription
_0enum IOwnableTwoSteps.Statusundefined

potentialOwner​

function potentialOwner() external view returns (address)

Address of the potential owner.

Returns​

NameTypeDescription
_0addressundefined

priceFeed​

function priceFeed() external view returns (contract AggregatorV3Interface)

ETH/USD Chainlink price feed

Returns​

NameTypeDescription
_0contract AggregatorV3Interfaceundefined

Events​

CancelOwnershipTransfer​

event CancelOwnershipTransfer()

This is emitted if the ownership transfer is cancelled.

InitiateOwnershipRenouncement​

event InitiateOwnershipRenouncement()

This is emitted if the ownership renouncement is initiated.

InitiateOwnershipTransfer​

event InitiateOwnershipTransfer(address previousOwner, address potentialOwner)

This is emitted if the ownership transfer is initiated.

Parameters​

NameTypeDescription
previousOwneraddressundefined
potentialOwneraddressundefined

NewOwner​

event NewOwner(address newOwner)

This is emitted when there is a new owner.

Parameters​

NameTypeDescription
newOwneraddressundefined

Errors​

BidTooLow​

error BidTooLow()

It is returned if the bid price is too low for the ask user.

ChainlinkPriceInvalid​

error ChainlinkPriceInvalid()

It is returned if the Chainlink price is invalid (e.g. negative).

NoOngoingTransferInProgress​

error NoOngoingTransferInProgress()

This is returned when there is no transfer of ownership in progress.

NotOwner​

error NotOwner()

This is returned when the caller is not the owner.

OrderInvalid​

error OrderInvalid()

It is returned if the order is permanently invalid. There may be an issue with the order formatting.

PriceNotRecentEnough​

error PriceNotRecentEnough()

It is returned if the current block time relative to the latest price's update time is greater than the latency tolerance.

RenouncementNotInProgress​

error RenouncementNotInProgress()

This is returned when there is no renouncement in progress but the owner tries to validate the ownership renouncement.

TransferAlreadyInProgress​

error TransferAlreadyInProgress()

This is returned when the transfer is already in progress but the owner tries initiate a new ownership transfer.

TransferNotInProgress​

error TransferNotInProgress()

This is returned when there is no ownership transfer in progress but the ownership change tries to be approved.

WrongPotentialOwner​

error WrongPotentialOwner()

This is returned when the ownership transfer is attempted to be validated by the a caller that is not the potential owner.