Frequently Used Message
Transaction
Provide Liquidity / Withdraw
As the swap ratio is stated here, the size of a pool is related to its swap ratio. The ratio will get stable if the size of the pool increases, and vice versa. Otherwise, liquidity providers need more tokens to adjust the price in a bigger pool and it means that the market loses elasticity. The providers adjust their markets by providing and withdrawing liquidity within a trade-off.
Provide Liquidity
Contribute to the pool by sending a pair of tokens. The transaction increases the pool size.
Execute this message by the Pair contract address!
If you are trying to provide cw20 token, increase your allowance first. Execute IncreaseAllowance
{
"provide_liquidity": {
"assets": [
{
"info" : {
"token": {
"contract_addr": "<Addr>"
}
},
"amount": "10"
},
{
"info" : {
"native_token": {
"denom": "axpla"
}
},
"amount": "10"
}
],
"deadline": 123123, // optional
"slippage_tolerance": "0.005" // optional
}
}
Withdraw
Withdraw your tokens and decrease the size of the pool.
Execute the below message via the Liquidity token contract address! Not token contract, nor pair contract!
{
"send": {
"contract": "<PairContractAddress>",
"amount": "123",
"msg": "<base64-encodedStringOfWithdrawMsg>"
}
}
In send.msg
, you may decode this JSON string into base64 encoding.
{
"withdraw_liquidity": {
"min_assets": [
{
"info" : {
"token": {
"contract_addr": "<Addr>"
}
},
"amount": "10"
},
{
"info" : {
"native_token": {
"denom": "axpla"
}
},
"amount": "10"
}
], // optional
"deadline": 123123 // optional
}
}
As a result, the contract calculates the portion of your liquidity token compared to the total supply, and withdraws them.
Query
Pool
The pool query message returns the amount of the tokens in the pool from the given pair contract address.
{
"pool":{}
}
Response:
{
"data": {
"assets": [
{
"info": {
"token": {
"contract_addr": "xpla1cl0kw9axzpzkw58snj6cy0hfp0xp8xh9tudpw2exvzuupn3fafwqqhjc24"
}
},
"amount": "81695"
},
{
"info": {
"native_token": {
"denom": "axpla"
}
},
"amount": "40774785"
}
],
"total_share": "1814863"
}
}
Simulation / Reverse Simulation
Simulation works for guessing how much you will get by swapping with your token.
In case of you want to know how much the target token will be given from the source token, use simulation
. Likewise, reverse_simulation
can let you derive the number of source token from the number of target token.
Simulation Request
{
"simulation": {
"offer_asset": {
"amount":"1000000",
"info": {
"native_token": {
"denom":"axpla"
}
}
}
}
}
Simulation Response
{
"data": {
"return_amount": "1950",
"spread_amount": "48",
"commission_amount": "5"
}
}
Reverse Simulation Request
{
"reverse_simulation":{
"ask_asset": {
"amount":"1000000",
"info": {
"native_token": {
"denom": "axpla"
}
}
}
}
}
Reverse Simulation Response
{
"data": {
"offer_amount": "2060",
"spread_amount": "25157",
"commission_amount": "3009"
}
}