Trade Preimage
API-v2trade_preimage
The trade_preimage
method returns the approximate fee amounts that are paid per the whole swap.
Depending on the parameters, the function returns different results:
- If the
swap_method
isbuy
orsell
, then the result will include thetaker_fee
and thefee_to_send_taker_fee
. Thetaker_fee
amount is paid from thebase
coin balance if theswap_method
issell
, else it is paid from therel
coin balance; - If the
max
field is true, then the result will include thevolume
.
This method can be used instead of max_taker_vol, if the max
field is true and the swap_method
is buy
or sell
.
Use the resulting volume
as an argument of the buy
or sell
requests.
Use the trade_preimage
request with max = true
and swap_method = "setprice"
arguments to approximate the fee amounts only. Do not use the resulting volume
as an argument of the setprice
.
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
base | string | ✓ | - | The base currency of the request. |
rel | string | ✓ | - | The rel currency of the request. |
swap_method | string | ✓ | - | The name of the method whose preimage is requested. Possible values: buy , sell , setprice . See SwapMethodEnum. |
price | numeric string or rational | ✓ | - | The price in rel the user is willing to pay per one unit of the base coin. |
max | bool | ✗ | false | Whether to return the maximum available volume for setprice method; must not be set or false if swap_method is buy or sell . |
volume | numeric string or rational | ✗ | - | The amount the user is willing to trade; ignored if max = true and swap_method = setprice , otherwise, it must be set. |
Parameter | Type | Description |
---|---|---|
base_coin_fee | object | A standard ExtendedFeeInfo object. The approximate miner fee is paid per the whole swap concerning the base coin. |
rel_coin_fee | object | A standard ExtendedFeeInfo object. The approximate miner fee is paid per the whole swap concerning the rel coin. |
volume | string (numeric) | Optional. The max available volume that can be traded (in decimal representation); empty if the max argument is missing or false. |
volume_rat | rational | Optional. The max available volume that can be traded represented as a standard RationalValue object.; empty if the max argument is missing or false. |
volume_fraction | fraction | Optional. The max available volume that can be traded represented as a standard fractionalValue object.; empty if the max argument is missing or false. |
taker_fee | object | A standard ExtendedFeeInfo object. The dex fee to be paid by Taker; empty if swap_method is setprice . |
fee_to_send_taker_fee | object | A standard ExtendedFeeInfo object. The approximate miner fee is paid to send the dex fee; empty if swap_method is setprice . |
total_fees | array of objects | A standard TotalFeeInfo object. Each element is a sum of fees required to be paid from user's balance of corresponding ExtendedFeeInfo.coin ; the elements are unique by coin. |
Trade Preimage (setprice)
POST
trade_preimage{
"mmrpc": "2.0",
"userpass": "RPC_UserP@SSW0RD",
"method": "trade_preimage",
"params": {
"base": "BTC",
"rel": "DOC",
"price": "1",
"volume": "0.1",
"swap_method": "setprice"
},
"id": 0
}
Trade Preimage (buy)
POST
trade_preimage{
"mmrpc": "2.0",
"userpass": "RPC_UserP@SSW0RD",
"method": "trade_preimage",
"params": {
"base": "BTC",
"rel": "DOC",
"price": "1",
"volume": "0.1",
"swap_method": "buy"
},
"id": 0
}
Trade Preimage (sell, max)
POST
trade_preimage{
"mmrpc": "2.0",
"userpass": "RPC_UserP@SSW0RD",
"method": "trade_preimage",
"params": {
"base": "BTC",
"rel": "DOC",
"price": "1",
"volume": "2.21363478",
"swap_method": "sell"
},
"id": 0
}
Trade Preimage (ERC20 and QRC20)
POST
trade_preimage{
"mmrpc": "2.0",
"userpass": "RPC_UserP@SSW0RD",
"method": "trade_preimage",
"params": {
"base": "LTC",
"rel": "LTC",
"price": "1",
"volume": "2.21363478",
"swap_method": "setprice"
},
"id": 0
}
Error | Description |
---|---|
NotSufficientBalance | The available balance of the coin is not sufficient to start the swap. |
NotSufficientBaseCoinBalance | The available balance of the base coin is not sufficient to pay transaction fees. |
VolumeTooLow | The specified volume is too low. Required at least threshold. |
NoSuchCoin | The specified coin was not found or is not activated yet. |
CoinIsWalletOnly | The specified coin is wallet only and cannot be participated in the swap. |
BaseEqualRel | The base and rel coins are the same. |
InvalidParam | Incorrect use of a parameter in the request. |
PriceTooLow | The specified price is too low. |
Transport | The request failed due to a network error. |
InternalError | The request failed due to a Komodo DeFi Framework API internal error. |