Market Maker Contract
Market Maker Contract
Interface
pragma solidity ^0.6.7;
contract OptionV2Maker {
address[] public maker;
mapping(address => bool) public allowMaker;
mapping(address => uint256) public makerIndex;
uint256 public rate;
//makerBalance[_payToken][_indexNo][makeraddress][_poolId]
mapping(address => mapping(uint256 => mapping(address => uint256[16])))
public makerBalance;
function getOrderMaker(uint256 _orderNo, uint256 _start) external view returns (uint256[50] memory makerArr, uint256[50] memory makerMargin);
event Maker(address maker, bool allow);
event MakerDeposit(address payToken, uint256 indexNo, uint8 poolId, address maker, uint256 amount, uint256 fee);
event MakerWithdraw( address payToken,uint256 indexNo, uint8 poolId, address maker, uint256 amount);
}##Events
Maker(address maker, bool allow)Add new or modify market maker permissionsMakerDeposit(address payToken,uint256 indexNo,uint8 poolId,address maker, uint256 amount, uint256 fee )Market makers deposit marginMakerWithdraw(address payToken,uint256 indexNo,uint8 poolId,address maker, uint256 amount)Market makers withdrow margin
Methods(read thmods)
Based on the market maker address to lookup: maker_index
1. Allow Maker
mapping(address => bool) public allowMaker
Whether to run deposite margin
2. Maker
address[] public maker;
Based on maker_index to ger address
node
let address = await contract.maker(maker_index);3.Rate
uint256 public rate
**The rate of market maker deposits margin **
4. Maker Balance
mapping(uint256 => mapping(uint256 => uint256[16])) public makerBalance
View the balance of single market maker in option pool
index_no
uint256
index_no
maker_index
uint256
maker_index
pool_id
uint8
pool_id
balance
uint256
balance
node
let balance = await contract.makerBalance(pay_token,index_no,maker_index,pool_id);5. Order Maker Length
function orderMakerLength( uint256 _orderNo ) external view returns (uint256)
Order maker length
6. Get Order Maker
function getOrderMaker( uint256 _orderNo, uint256 _start) external view returns (uint256[50] memory makerArr, uint256[50] memory makerMargin)
Get order maker
order_no
uint256
order_no
start
uint256
start from
makerArr
uint256[50]
maker_index list
makerMargin
uint256[50]
margin list
7. Pools
function pools(address _payToken, uint256 _indexNo, uint8 _poolId) external view returns (uint256)
Pools balance
Methods(write methods)
1. Make rDeposit
function makerDeposit(uint256 _payToken, uint256 _indexNo,uint8 _poolId, uint256 _amount ) external
Deposit margin
_payToken
address
base token
_index_no
uint256
index_no
_pool_id
uint8
pool_id
_amount
uint256
deposit margin
2. Maker Withdraw
function makerWithdraw(uint256 _payToken, uint256 _indexNo,uint8 _poolId, uint256 _amount ) external
Withdraw margin
_payToken
address
base token
_index_no
uint256
index_no
_pool_id
uint8
pool_id
_amount
uint256
withdraw amount
Last updated