DirectWithBidsAndAsksDistribution
DirectWithBidsAndAsksDistributionβ
PopulateStartβ
event PopulateStart()
logs the start of a call to populate By emitting this, an indexer will be able to know that the following events are in the context of populate.
PopulateEndβ
event PopulateEnd()
logs the end of a call to populate By emitting this, an indexer will know that the previous PopulateStart event is over.
RetractStartβ
event RetractStart()
logs the start of a call to retractOffers By emitting this, an indexer will be able to know that the following events are in the context of retract.
RetractEndβ
event RetractEnd()
logs the end of a call to retractOffers By emitting this, an indexer will know that the previous RetractStart event is over.
constructorβ
constructor(contract IMangrove mgv, address reserveId) internal
Constructor
Parametersβ
Name | Type | Description |
---|---|---|
mgv | contract IMangrove | The Mangrove deployment. |
reserveId | address | identifier of this contract's reserve when using a router. |
DistributionOfferβ
Parametersβ
Name | Type | Description |
---|
struct DistributionOffer {
uint256 index;
Tick tick;
uint256 gives;
}
Distributionβ
Parametersβ
Name | Type | Description |
---|
struct Distribution {
struct DirectWithBidsAndAsksDistribution.DistributionOffer[] asks;
struct DirectWithBidsAndAsksDistribution.DistributionOffer[] bids;
}
populateChunkInternalβ
function populateChunkInternal(struct DirectWithBidsAndAsksDistribution.Distribution distribution, uint256 gasreq, uint256 gasprice) internal
Publishes bids/asks for the distribution in the indices
. Care must be taken to publish offers in meaningful chunks. For instance, for Kandel an offer and its dual should be published in the same chunk (one being optionally initially dead).
Gives of 0 means create/update and then retract offer (but update price, gasreq, gasprice of the offer)
Parametersβ
Name | Type | Description |
---|---|---|
distribution | struct DirectWithBidsAndAsksDistribution.Distribution | the distribution of bids and asks to populate |
gasreq | uint256 | the amount of gas units that are required to execute the trade. |
gasprice | uint256 | the gasprice used to compute offer's provision. |
populateOfferListChunkInternalβ
function populateOfferListChunkInternal(struct DirectWithBidsAndAsksDistribution.DistributionOffer[] offers, enum OfferType ba, struct IOfferLogic.OfferArgs args) internal
populates one of the offer lists with the given offers
Parametersβ
Name | Type | Description |
---|---|---|
offers | struct DirectWithBidsAndAsksDistribution.DistributionOffer[] | the offers to populate |
ba | enum OfferType | whether to populate bids or asks |
args | struct IOfferLogic.OfferArgs | a reused offer creation args structure with defaults passed from caller. |
populateIndexβ
function populateIndex(enum OfferType ba, uint256 offerId, uint256 index, struct IOfferLogic.OfferArgs args, uint256 minGives) internal
publishes (by either creating or updating) a bid/ask at a given price index.
Parametersβ
Name | Type | Description |
---|---|---|
ba | enum OfferType | whether the offer is a bid or an ask. |
offerId | uint256 | the Mangrove offer id (0 for a new offer). |
index | uint256 | the price index. |
args | struct IOfferLogic.OfferArgs | the argument of the offer. args.gives=0 means offer will be created/updated and then retracted. |
minGives | uint256 | the minimum gives to satisfy density requirement - used for creating/updating offers when args.gives=0. |
retractOffersβ
function retractOffers(uint256 from, uint256 to) public
retracts and deprovisions offers of the distribution interval [from, to[
.
use in conjunction of withdrawFromMangrove
if the user wishes to redeem the available WEIs.
Parametersβ
Name | Type | Description |
---|---|---|
from | uint256 | the start index. |
to | uint256 | the end index. |
retractOffersOnOfferListβ
function retractOffersOnOfferList(uint256 from, uint256 to, enum OfferType ba) internal
retracts and deprovisions offers of the distribution interval [from, to[
for the given offer type.
Parametersβ
Name | Type | Description |
---|---|---|
from | uint256 | the start index. |
to | uint256 | the end index. |
ba | enum OfferType | the offer type. |
getOfferβ
function getOffer(enum OfferType ba, uint256 index) public view returns (Offer offer)
gets the Mangrove offer at the given index for the offer type.
Parametersβ
Name | Type | Description |
---|---|---|
ba | enum OfferType | the offer type. |
index | uint256 | the index. |
Return Valuesβ
Name | Type | Description |
---|---|---|
offer | Offer | the Mangrove offer. |
offeredVolumeβ
function offeredVolume(enum OfferType ba) public view returns (uint256 volume)
gets the total gives of all offers of the offer type.
function is very gas costly, for external calls only.
Parametersβ
Name | Type | Description |
---|---|---|
ba | enum OfferType | offer type. |
Return Valuesβ
Name | Type | Description |
---|---|---|
volume | uint256 | the total gives of all offers of the offer type. |