This repository has been archived by the owner on Nov 15, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
AssetsLocal renamed to Assets
Pool assets in separate instance
Merge master
Revert "Merge master"
Update master
fix tests post merge.
gilescope
removed
the
D9-needsaudit 👮
PR contains changes to fund-managing logic that should be properly reviewed and externally audited
label
May 25, 2023
Last audit issue fixed. Removing needs audit label. |
gilescope
added
the
D1-audited 👍
PR contains changes to fund-managing logic that has been properly reviewed and externally audited
label
May 25, 2023
jsidorenko
removed
the
D1-audited 👍
PR contains changes to fund-managing logic that has been properly reviewed and externally audited
label
May 25, 2023
let's allow auditors to set the "audited" label :) |
gilescope
added
the
D9-needsaudit 👮
PR contains changes to fund-managing logic that should be properly reviewed and externally audited
label
May 25, 2023
jsidorenko
approved these changes
May 25, 2023
The CI pipeline was cancelled due to failure one of the required jobs. |
joepetrowski
approved these changes
May 25, 2023
bot merge |
louismerlin
added
D1-audited 👍
PR contains changes to fund-managing logic that has been properly reviewed and externally audited
and removed
D9-needsaudit 👮
PR contains changes to fund-managing logic that should be properly reviewed and externally audited
labels
May 30, 2023
Ank4n
pushed a commit
that referenced
this pull request
Jul 8, 2023
* 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 <5252494+jsidorenko@users.noreply.github.com> * Update frame/dex/src/lib.rs Co-authored-by: Jegor Sidorenko <5252494+jsidorenko@users.noreply.github.com> * 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 <5252494+jsidorenko@users.noreply.github.com> * Update frame/asset-conversion/src/lib.rs Co-authored-by: Jegor Sidorenko <5252494+jsidorenko@users.noreply.github.com> * Add documentation links * add collision test * Revert "[Enhancement] Throw an error when there are too many pallets (#13763)" This reverts commit 9b8e6e7. * [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 <git@kchr.de> * Update frame/support/procedural/src/construct_runtime/mod.rs Co-authored-by: Bastian Köcher <git@kchr.de> * ".git/.scripts/commands/fmt/fmt.sh" --------- Co-authored-by: Bastian Köcher <git@kchr.de> 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 <sam@durosoft.com> * Update frame/asset-conversion/README.md Co-authored-by: Sam Johnson <sam@durosoft.com> * 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 <jegor@parity.io> Co-authored-by: Jegor Sidorenko <5252494+jsidorenko@users.noreply.github.com> Co-authored-by: parity-processbot <> Co-authored-by: Roman Useinov <roman.useinov@gmail.com> Co-authored-by: Bastian Köcher <git@kchr.de> Co-authored-by: Sam Johnson <sam@durosoft.com>
nathanwhit
pushed a commit
to nathanwhit/substrate
that referenced
this pull request
Jul 19, 2023
* 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 <5252494+jsidorenko@users.noreply.github.com> * Update frame/dex/src/lib.rs Co-authored-by: Jegor Sidorenko <5252494+jsidorenko@users.noreply.github.com> * 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 (paritytech#12990) (there's generic transaction deadline functionality already) * fix kitchen sink (paritytech#12991) * fix kitchen sink * Only the dex can mint lp_tokens * add BenchmarkHelper for second instance (paritytech#12998) * update mock to latest master * less indirections (paritytech#13012) * remove dex PR's custom RPC (paritytech#13050) * As we have state_call we don't need a custom RPC * fix docs * no longer a need to upgrade rpc version (paritytech#13053) * add CallbackHadle * quote bugfix (paritytech#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 <5252494+jsidorenko@users.noreply.github.com> * Update frame/asset-conversion/src/lib.rs Co-authored-by: Jegor Sidorenko <5252494+jsidorenko@users.noreply.github.com> * Add documentation links * add collision test * Revert "[Enhancement] Throw an error when there are too many pallets (paritytech#13763)" This reverts commit 9b8e6e7. * [Enhancement] Throw an error when there are too many pallets (paritytech#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 <git@kchr.de> * Update frame/support/procedural/src/construct_runtime/mod.rs Co-authored-by: Bastian Köcher <git@kchr.de> * ".git/.scripts/commands/fmt/fmt.sh" --------- Co-authored-by: Bastian Köcher <git@kchr.de> 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 <sam@durosoft.com> * Update frame/asset-conversion/README.md Co-authored-by: Sam Johnson <sam@durosoft.com> * 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 <jegor@parity.io> Co-authored-by: Jegor Sidorenko <5252494+jsidorenko@users.noreply.github.com> Co-authored-by: parity-processbot <> Co-authored-by: Roman Useinov <roman.useinov@gmail.com> Co-authored-by: Bastian Köcher <git@kchr.de> Co-authored-by: Sam Johnson <sam@durosoft.com>
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
A0-please_review
Pull request needs code review.
B1-note_worthy
Changes should be noted in the release notes
C1-low
PR touches the given topic and has a low impact on builders.
D1-audited 👍
PR contains changes to fund-managing logic that has been properly reviewed and externally audited
T2-API
This PR/Issue is related to APIs.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
A simple automated market maker pallet.
I'd direct both non-technical discussion and discussion of possible future improvements to be hosted on the forum: https://forum.polkadot.network/t/statemint-e-swap-discussion/1498
The goal of this pallet is to provide people with a simple audited AMM pallet should a substrate chain need a basic decentralised exchange.