23 releases (major breaking)
20.0.0 | Sep 26, 2024 |
---|---|
19.0.0 | Jul 18, 2024 |
18.0.0 | Jul 12, 2024 |
17.0.0 | Jun 21, 2024 |
0.0.0 | Mar 31, 2023 |
#16 in #price
6,876 downloads per month
Used in 78 crates
(10 directly)
3MB
52K
SLoC
asset-conversion
A swap pallet
This pallet allows assets to be converted from one type to another by means of a constant product formula. The pallet based is based on Uniswap V2 logic.
Overview
This pallet allows you to:
- create a liquidity pool for 2 assets
- provide the liquidity and receive back an LP token
- exchange the LP token back to assets
- swap 2 assets if there is a pool created
- query for an exchange price via a new runtime call endpoint
- query the size of a liquidity pool.
Please see the rust module documentation for full details:
cargo doc -p pallet-asset-conversion --open
License
License: Apache-2.0
Release
Polkadot SDK stable2409
lib.rs
:
Substrate Asset Conversion pallet
Substrate Asset Conversion pallet based on the Uniswap V2 logic.
Overview
This pallet allows you to:
- create a liquidity pool for 2 assets
- provide the liquidity and receive back an LP token
- exchange the LP token back to assets
- swap a specific amount of assets for another if there is a pool created, or
- swap some assets for a specific amount of another.
- query for an exchange price via a runtime call endpoint
- query the size of a liquidity pool via a runtime api endpoint.
The quote_price_exact_tokens_for_tokens
and quote_price_tokens_for_exact_tokens
functions
both take a path parameter of the route to take. If you want to swap from native asset to
non-native asset 1, you would pass in a path of [DOT, 1]
or [1, DOT]
. If you want to swap
from non-native asset 1 to non-native asset 2, you would pass in a path of [1, DOT, 2]
.
(For an example of configuring this pallet to use Location
as an asset id, see the
cumulus repo).
Here is an example state_call
that asks for a quote of a pool of native versus asset 1:
curl -sS -H "Content-Type: application/json" -d \
'{"id":1, "jsonrpc":"2.0", "method": "state_call", "params": ["AssetConversionApi_quote_price_tokens_for_exact_tokens", "0x0101000000000000000000000011000000000000000000"]}' \
http://localhost:9933/
(This can be run against the kitchen sync node in the node
folder of this repo.)
Dependencies
~18–33MB
~538K SLoC