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. |