Asset Conversion pallet (#12984)
* Add pallet dex * Fmt * Add RPC endpoint * Fix RPC * Fix the build * Some more fixes * Add a method to topup pallet's account * Add support for multi-currency into Uniques * Fix the build * Add [transactional] + setup() + fix balances * Improve tests * Fix price quotation * Code clean up * Validate swaps * Fmt * Update README * add test * mint LP assets in a different instance * remove transactional as now the default AssetsLocal renamed to Assets * merge master * Revert "Merge master" * fix tests post merge. * attempt to set create origin * Internally allocate lp asset id. * Simplify * Bump to be in line * additional bumps to make compile * fix compile * less bounds * use fungible crates * multiasset enum * only allow native currency pairs * added slippage tests * transfer into separate method (Also fee not set in 2 places now.) Added test where lp and user are different users. * Add benchmarks + weights * Typos * Clean up * More tests, split error into two because it wasn't clear which parameter. renamed liquidity to lp_tokens_minted or lp_tokens_burned in events. * tighten up naming * Default, zero, square root traits not needed Also let's not force people to be compact * add keep-alive param * add insufficient liquidity test * Fix quote() to support u64 * Avoid recording balances twice * cargo fmt * Didn't mean to change error type * temp * Less * Rework get_amount_in/get_amount_out * Convert other places * Rework the last piece * Typo * Fix benchmarks * use hash trait * Extract a native asset check into the runtime setting * Don't set the metadata * Remove spec file * Enable multi-assets swaps by default * Refactor conversion into u128 * Add path param to swap_token_for_exact_tokens * Fix typo + a bit of refactoring * Implement path param for swap_exact_tokens_for_tokens() * Deref * Minor fixes * Add test with sensible scale values * Use .windows() * Fix benchmarks * update docs * Fix everything :) * Chore * Revert * Chore * prev way of creating sub accounts lead to collisions * Update frame/dex/src/lib.rs Co-authored-by: Jegor Sidorenko <[email protected]> * Update frame/dex/src/lib.rs Co-authored-by: Jegor Sidorenko <[email protected]> * Chore * Fmt fix on Uniques * add call_index bring code up to date with latest master * revert readme changes * add cr * revert uniques changes * reducing noise * no need for deadline (#12990) (there's generic transaction deadline functionality already) * fix kitchen sink (#12991) * fix kitchen sink * Only the dex can mint lp_tokens * add BenchmarkHelper for second instance (#12998) * update mock to latest master * less indirections (#13012) * remove dex PR's custom RPC (#13050) * As we have state_call we don't need a custom RPC * fix docs * no longer a need to upgrade rpc version (#13053) * add CallbackHadle * quote bugfix (#13191) quote was giving same price in both directions as we were inverting needlessly. * merging in dex specific changes due to pay by dex * update lock file * merging in kitchen sink changes * Add get_reserves() api method * Partial updating of the benchmarks * Fix tests * clippy * Temp fix weights * Fix benchmarks * Add pool setup fee * Money upfront * Address some comments * Use u128 in mock * Fix benchmarks * Change error message * Update comments * Change error names * Implement PartialOrd for NativeOrAssetId * add note * Update errors * More tests for assets sorting * ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_dex * Change the way we generate pool accounts * Improve the liquidity removal method * Extract MintMinLiquidity to config, rework all tests * Add comments * Validate provided amount * Rename to asset-conversion * Validate ED * Improve handling the ED related errors * typos * Try to fix benchmarks * Another try * Another day, another try * Fix benchmarks * Expose fee related params * Validate token's minimal amount the same way as ED * fix typo * Use longer path for swaps in benchmarks * need to ref sp_std's vec. * Remove From<u32> requirement when benchmarking * impl BenchmarkHelper for () * only for runtime benchmarks * MultiLocation: !MaybeDisplay Looks like we might not need this bound from initial testing. * Update frame/asset-conversion/src/lib.rs Co-authored-by: Jegor Sidorenko <[email protected]> * Update frame/asset-conversion/src/lib.rs Co-authored-by: Jegor Sidorenko <[email protected]> * Add documentation links * add collision test * Revert "[Enhancement] Throw an error when there are too many pallets (#13763)" This reverts commit cc3152bc . * [Enhancement] Throw an error when there are too many pallets (#13763) * [Enhancement] Throw an error when there are too many pallets * fix ui test * fix PR comments * Update frame/support/procedural/src/construct_runtime/mod.rs Co-authored-by: Bastian Köcher <[email protected]> * Update frame/support/procedural/src/construct_runtime/mod.rs Co-authored-by: Bastian Köcher <[email protected]> * ".git/.scripts/commands/fmt/fmt.sh" --------- Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: command-bot <> * add benchmark helper + doc fix * cargo fmt * Fix adding liquidity to non-empty pool * Fix compilation error * Fix params ordering issue * additional docs * The swap path elements should be unique * Fix account collision * Validate all the pool in a swap path are unique * Change the way we add liquidity to empty pools * Improve docs * remove unnessisary Display impl * cargo fmt * remove unused imports * Make api consistent * Chore * Touch the pool account so it could hold the pair tokens * Check the balance before touching the pool's account * Introduce liquidity provision fee * Touch the pool acc one more time * Apply suggestions from code review Co-authored-by: Sam Johnson <[email protected]> * Update frame/asset-conversion/README.md Co-authored-by: Sam Johnson <[email protected]> * Use ContainsPair instead of the balance checker * Remove old Currency trait * Add liquidity withdrawal fee * Update docs * Use 0 withdrawal fee in mock * Rename vars * asset id not clone * fix: shadow var was being used * correct tests * fix benches * merge master * neater --------- Co-authored-by: Jegor Sidorenko <[email protected]> Co-authored-by: Jegor Sidorenko <[email protected]> Co-authored-by: parity-processbot <> Co-authored-by: Roman Useinov <[email protected]> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: Sam Johnson <[email protected]>
parent
7b101536
Please register or sign in to comment