IOfferLogic
IOfferLogicβ
It is an IMaker for Mangrove.
LogIncidentβ
event LogIncident(bytes32 olKeyHash, uint256 offerId, bytes32 makerData, bytes32 mgvData)
Log incident (during post trade execution) By emitting this data, an indexer can keep track of what incidents has happened.
Parametersβ
Name | Type | Description |
---|---|---|
olKeyHash | bytes32 | the hash of the offer list key. This is indexed so that RPC calls can filter on it. |
offerId | uint256 | the Mangrove offer id. This is indexed so that RPC calls can filter on it. |
makerData | bytes32 | from the maker. |
mgvData | bytes32 | from Mangrove. |
SetRouterβ
event SetRouter(contract AbstractRouter router)
Logging change of router address By emitting this an indexer can keep track of what router is used.
Parametersβ
Name | Type | Description |
---|---|---|
router | contract AbstractRouter | the new router address. |
setRouterβ
function setRouter(contract AbstractRouter router_) external
sets a new router to pull outbound tokens from contract's reserve to this
and push inbound tokens to reserve.
new router needs to be approved by this
to push funds to reserve (see activate
function). It also needs to be approved by reserve to pull from it.
Parametersβ
Name | Type | Description |
---|---|---|
router_ | contract AbstractRouter | the new router contract that this contract should use. Use NO_ROUTER for no router. |
approveβ
function approve(contract IERC20 token, address spender, uint256 amount) external returns (bool)
Approves a spender to transfer a certain amount of tokens on behalf of this
.
admin may use this function to revoke specific approvals of this
that are set after a call to activate
.
Parametersβ
Name | Type | Description |
---|---|---|
token | contract IERC20 | the ERC20 token contract |
spender | address | the approved spender |
amount | uint256 | the spending amount |
Return Valuesβ
Name | Type | Description |
---|---|---|
[0] | bool | result of token approval. |
provisionOfβ
function provisionOf(struct OLKey olKey, uint256 offerId) external view returns (uint256 provision)
computes the amount of native tokens that can be redeemed when deprovisioning a given offer.
Parametersβ
Name | Type | Description |
---|---|---|
olKey | struct OLKey | the offer list key. |
offerId | uint256 | the identifier of the offer in the offer list |
Return Valuesβ
Name | Type | Description |
---|---|---|
provision | uint256 | the amount of native tokens that can be redeemed when deprovisioning the offer |
checkListβ
function checkList(contract IERC20[] tokens) external view
verifies that this contract's current state is ready to be used to post offers on Mangrove
throws with a reason if something (e.g. an approval) is missing.
Parametersβ
Name | Type | Description |
---|---|---|
tokens | contract IERC20[] | the list of tokens that are traded by this contract |
activateβ
function activate(contract IERC20[] tokens) external
performs the required approvals so as to allow this
to interact with Mangrove on a set of assets.
Parametersβ
Name | Type | Description |
---|---|---|
tokens | contract IERC20[] | the ERC20 this will approve to be able to trade on Mangrove's corresponding markets. |
withdrawFromMangroveβ
function withdrawFromMangrove(uint256 amount, address payable receiver) external
withdraws native tokens from this
balance on Mangrove.
Since a call is made to the receiver
, this function is subject to reentrancy.
Parametersβ
Name | Type | Description |
---|---|---|
amount | uint256 | the amount of WEI one wishes to withdraw. |
receiver | address payable | the address of the receiver of the funds. |
OfferArgsβ
Memory allocation for _new/updateOffer
's arguments.
owner
is required in Forwarder
logics, when _newOffer
or _updateOffer
in called in a hook (msg.sender==MGV
).
Parametersβ
Name | Type | Description |
---|
struct OfferArgs {
struct OLKey olKey;
Tick tick;
uint256 gives;
uint256 gasreq;
uint256 gasprice;
uint256 fund;
bool noRevert;
}
routerβ
function router() external view returns (contract AbstractRouter)
Contract's router getter.
if contract has a no router, function returns NO_ROUTER
.
Return Valuesβ
Name | Type | Description |
---|---|---|
[0] | contract AbstractRouter | the router. |
MGVβ
function MGV() external view returns (contract IMangrove)
Contract's Mangrove getter
Return Valuesβ
Name | Type | Description |
---|---|---|
[0] | contract IMangrove | the Mangrove contract. |