Skip to content

Conversation

@sea212
Copy link
Contributor

@sea212 sea212 commented Apr 2, 2024

sea212 and others added 13 commits December 22, 2023 15:07
…es to runtime (#1177)

* Add new asset types

* Add custom assets to runtime

* Add market assets to runtime

* Add pallet_assets benchmark and weights

* Expose MarketAssets call enum

* Update todo comment to incluse issue number

* Add campaign assets instance to runtime

* Cargo fmt

* Taplo fmt

* Fix comments

Co-authored-by: Malte Kliemann <[email protected]>

* Adjust ForceOrigins

* Fix typo

* Update primitives/src/types.rs

Co-authored-by: Chralt <[email protected]>

* Remove CombinatorialOutcome from PredictionMarketAsset

---------

Co-authored-by: Malte Kliemann <[email protected]>
Co-authored-by: Chralt <[email protected]>
* Add new asset types

* Add custom assets to runtime

* Add market assets to runtime

* Add pallet_assets benchmark and weights

* Expose MarketAssets call enum

* Update todo comment to incluse issue number

* Add campaign assets instance to runtime

* Cargo fmt

* Taplo fmt

* Refine asset class types

* Use efficient asset types

* Add all variants to overarching Asset enum

* Make MarketId compactable

* Adjust SerdeWrapper

Soon to be deprecated

* Make Battery Station compileable

* Make Zeitgeist compileable

* Cleanup code

* Remove NewForeignAsset

Conversion to compact encoding implies massive migration effort

* Implement asset type conversions

* Add Currency asset class

* Remove deprecated SerdeWrapper

* Add Currencies asset class

Also renames existing CurrencyId to Assets

* Add scale codec index matching tests

* Add asset conversion tests

* Update docstring

* Improve assets module structure

* Update license

* Update copyright

* Repair errorneous merge

* Update license

* Remove CombinatorialOutcome

* Improve tests

* Improve variable names

* Prettify code

Co-authored-by: Malte Kliemann <[email protected]>

* Fix conversion CampaignAssetId <> CampaignAssetClass

* Reorder asset enum variants

* Update runtime/zeitgeist/src/parameters.rs

Co-authored-by: Chralt <[email protected]>

* Improve CurrencyClass docstring

Co-authored-by: Malte Kliemann <[email protected]>

---------

Co-authored-by: Malte Kliemann <[email protected]>
Co-authored-by: Chralt <[email protected]>
* Add new asset types

* Add custom assets to runtime

* Add market assets to runtime

* Add pallet_assets benchmark and weights

* Expose MarketAssets call enum

* Update todo comment to incluse issue number

* Add campaign assets instance to runtime

* Cargo fmt

* Taplo fmt

* Refine asset class types

* Use efficient asset types

* Add all variants to overarching Asset enum

* Make MarketId compactable

* Adjust SerdeWrapper

Soon to be deprecated

* Make Battery Station compileable

* Make Zeitgeist compileable

* Cleanup code

* Remove NewForeignAsset

Conversion to compact encoding implies massive migration effort

* Implement asset type conversions

* Add Currency asset class

* Remove deprecated SerdeWrapper

* Add Currencies asset class

Also renames existing CurrencyId to Assets

* Add scale codec index matching tests

* Add asset conversion tests

* Update docstring

* Improve assets module structure

* Update license

* Create asset-router pallet scaffold

* Start implementing all traits

* Implement MultiCurrency partially for asset-router

* Implement MultiCurrency for asset-router

* Implement MultiCurrencyExtended

* MultiLockableCurrency

* Implement MultiReservableCurrency

* Implement NamedMultiReservableCurrency

* Fix runtime

* Integrate asset-router in runtime

* Fix a couple of bugs

* Prepare asset-router test environment

* Start MultiCurrency test impl

* Complete MultiCurrency tests

* Add MultiCurrencyExtended tests

* Implement MultiReserveableCurrency tests

* Implement NamedMultiReserveableCurrency tests

* Implement MultiLockableCurrency tests

* Improve test structure

* Undo unnecessary change

* Format code

* Implement fungibles::{Create, Destroy, Inspect}

* Remove comment

* Add tests for Inspect impl

* Add tests for Create impl

* Add tests for Destroy impl

* Make asset types configurable

* Use less restricitve traits for pm AssetManager

* Make project compilable

* Merge branch 'sea212-new-asset-system' into sea212-new-asset-system-part-3

* Update licenses

* Repair tests partially

* Comment out irrelevant test

* Partially satisfy Clippy

* Adjust XCM to use Currencies

* Adjust XCM to use Currencies (zeitgeist runtime)

* Adjust prediction markets tests

* Adjust neo-swaps mock

* Satisfy Clippy

* Format code

* Update licenses

* Remove pallet-asset benchmark helper from mock

* Format code

* Repair tests with runtime-benchmarks

* Format code

* Remove TODO comment

* Implement log for unhandled errors in asset-router

* Use log target

* Improve and prettify readmes

* Use assert_noop! in favor of asset_err!

Co-authored-by: Malte Kliemann <[email protected]>

* Make sea212 codeowner of zrml/asset-router

* Fix typo

* Rename variable

* Better abs() overflow handling

* Check Bob's balance in MultiCurrency tests

* Fix Create test for Currencies

* Improve test precision

* Verify total issuance via direct pallet invocation

* Implement Inspect for Currencies

* Satisfy Clippy

---------

Co-authored-by: Malte Kliemann <[email protected]>
* Add new asset types

* Add custom assets to runtime

* Add market assets to runtime

* Add pallet_assets benchmark and weights

* Expose MarketAssets call enum

* Update todo comment to incluse issue number

* Add campaign assets instance to runtime

* Cargo fmt

* Taplo fmt

* Refine asset class types

* Use efficient asset types

* Add all variants to overarching Asset enum

* Make MarketId compactable

* Adjust SerdeWrapper

Soon to be deprecated

* Make Battery Station compileable

* Make Zeitgeist compileable

* Cleanup code

* Remove NewForeignAsset

Conversion to compact encoding implies massive migration effort

* Implement asset type conversions

* Add Currency asset class

* Remove deprecated SerdeWrapper

* Add Currencies asset class

Also renames existing CurrencyId to Assets

* Add scale codec index matching tests

* Add asset conversion tests

* Update docstring

* Improve assets module structure

* Update license

* Create asset-router pallet scaffold

* Start implementing all traits

* Implement MultiCurrency partially for asset-router

* Implement MultiCurrency for asset-router

* Implement MultiCurrencyExtended

* MultiLockableCurrency

* Implement MultiReservableCurrency

* Implement NamedMultiReservableCurrency

* Fix runtime

* Integrate asset-router in runtime

* Fix a couple of bugs

* Prepare asset-router test environment

* Start MultiCurrency test impl

* Complete MultiCurrency tests

* Add MultiCurrencyExtended tests

* Implement MultiReserveableCurrency tests

* Implement NamedMultiReserveableCurrency tests

* Implement MultiLockableCurrency tests

* Improve test structure

* Undo unnecessary change

* Format code

* Implement fungibles::{Create, Destroy, Inspect}

* Remove comment

* Add tests for Inspect impl

* Add tests for Create impl

* Add tests for Destroy impl

* Make asset types configurable

* Use less restricitve traits for pm AssetManager

* Make project compilable

* Create volatile assets in PM

* Start adjustment of PM tests

* Add ManagedDestroy trait

* Implement managed_destroy in asset-router

* Implement ManagedDestroy trait

* Implement on_idle asset destruction

* Finalize managed asset destruction

* Finalize managed asset destruction

* Handle duplicate destruction attempts

* Fix reverse logic

* Add managed destroy add asset test

* Add managed destroy multi add asset test

* Add destroy all assets on_idle tests

* Complete managed destroy tests

* Update AssetRouter config in runtime

* Repair PM mock

* Satisfy Clippy

* Use modified pallet-assets

* Use modified pallet-assets

The modified variant provides an additional trait and Config type, that are used to automate asset destruction

* Remove comments

* Remove empty line

* Mostly improve asset destruction code

* Finalize on_idle hook and adjust tests

* Improve project structure

* Rename files

* Add tests for custom types

* Satisfy CI

* Apply suggestions from code review

Co-authored-by: Chralt <[email protected]>

* Use common function for impl ManagedDestroy

* Improve AssetInDestruction ordering & add test

* Format code

* Use require_transactional

* Use ensure!

* Use AssetIndestructible error and fix tests

* Don't execute on_idle if weight not enough to read storage

* Use DestroyApprovalWeight for approval destruction

Co-authored-by: Malte Kliemann <[email protected]>

* Reduce available weight to 0 when destroying accounts/approvals errors.

Co-authored-by: Malte Kliemann <[email protected]>

* Use more precise return type for handle_destroy functions

* Fix destruction state machine loop condition

Co-authored-by: Malte Kliemann <[email protected]>

* Log warning / test assert when loop safety guard is triggered

* Add outer asset destruction loop safety guard

* Revert loop condition overwrite

* Elaborate on managed asset destruction in readme

* Improved weight guards + tests

Also reduce the maximum storage proof size required, as it previously was 1/8 of the maximum PoV size per block on Polkadot

* Test that approvals are also destroyed

* Use constant for min extra computation time in on_idle

* Add more tests

* Add and use unreachable_non_terminating macro

* Refractor code

* Satisfy Clippy

* Fix unreachable_non_terminating macro

---------

Co-authored-by: Chralt <[email protected]>
Co-authored-by: Malte Kliemann <[email protected]>
* Merge Old* and New* asset variants

* Partially integrate lazy migration routing

* Integrate lazy migration routing

* Fix ExistentialDeposit mapping & Satisfy Clippy

* Improve code style

Co-authored-by: Chralt <[email protected]>

* Improve style

Co-authored-by: Malte Kliemann <[email protected]>

* Improve style

Co-authored-by: Malte Kliemann <[email protected]>

* Add frame-support/try-runtime to asset-router

* Rename multicurrency* files to multi_currency*

* Test old-outcome currency branch

* Use reserved_balance_named in tests

* Including duplicate asset routing info in readme

* Update readme

---------

Co-authored-by: Chralt <[email protected]>
Co-authored-by: Malte Kliemann <[email protected]>
…ality (#1281)

* Add sub asset classes, extend Market, provide market transition trait

* Update asset-router

* Correct ParimutuelAssetClass docstring

* Add more docstrings to Market impl

* Add tests for MarketTransitionApi

* Implement try_into failure tests for assets

* Fix typo

* Add docstring to public func of Market struct
…1282)

* Add sub asset classes, extend Market, provide market transition trait

* Update asset-router

* Integrate asset system into prediction-market, market-commons and parimutuel

- Market commons now uses the BaseAsset class for base assets
- Prediction markets now creates and destroys MarketAssets only if market.is_redeemable
- Prediction markets now calls OnStateTransition when transitioning it's state
- Parimutuel markets now implements StateTransitionApi
- Parimutuel markets now properly creates and destroys ParimutuelShares

* Apply suggestions from code review

Co-authored-by: Malte Kliemann <[email protected]>

* Use workspace for impl-trait-for-tuples

* Add on_activation and on_resolution weight to parimutuel

* Fix typo

* Prepare OnStateTransition tests

* Add OnStateTransition tests

* Update zrml/parimutuel/src/lib.rs

Co-authored-by: Chralt <[email protected]>

---------

Co-authored-by: Malte Kliemann <[email protected]>
Co-authored-by: Chralt <[email protected]>
* Add sub asset classes, extend Market, provide market transition trait

* Update asset-router

* Integrate asset system into prediction-market, market-commons and parimutuel

- Market commons now uses the BaseAsset class for base assets
- Prediction markets now creates and destroys MarketAssets only if market.is_redeemable
- Prediction markets now calls OnStateTransition when transitioning it's state
- Parimutuel markets now implements StateTransitionApi
- Parimutuel markets now properly creates and destroys ParimutuelShares

* Integrate new asset system into remaining pallets

* Update zrml/neo-swaps/src/tests/join.rs

Co-authored-by: Malte Kliemann <[email protected]>

---------

Co-authored-by: Malte Kliemann <[email protected]>
* Add sub asset classes, extend Market, provide market transition trait

* Update asset-router

* Integrate asset system into prediction-market, market-commons and parimutuel

- Market commons now uses the BaseAsset class for base assets
- Prediction markets now creates and destroys MarketAssets only if market.is_redeemable
- Prediction markets now calls OnStateTransition when transitioning it's state
- Parimutuel markets now implements StateTransitionApi
- Parimutuel markets now properly creates and destroys ParimutuelShares

* Implement support for non-reservable assets in orderbook

* Format

* Fix unfillable / unremovable order bug

Co-authored-by: Chralt <[email protected]>

* Check reserved balanced named

* Log when reserve is less than expected

---------

Co-authored-by: Chralt <[email protected]>
* Merge release v0.4.2 (#1174)

* Update versions (#1168)

* Add updated weights from reference machine (#1169)

* Add license header

Co-authored-by: Chralt <[email protected]>

---------

Co-authored-by: Chralt <[email protected]>

* Remove migrations (#1180)

* Filter admin functions for main-net (#1190)

filter admin functions for main-net

* Add debug assertions for slashes and reserves (#1188)

* add debug assertions for missing slashes

* place debug_assert for unreserves

* Add some verify checks to court (#1187)

add some verify checks to court

* Bypass battery stations contracts call filter for court, parimutuel, order book markets (#1185)

update contracts call filter

* Fix failing court benchmark (#1191)

* fix court assertion for resolve_at

* remove unnecessary variable

* mirror mock and actual impl for DisputeResolution

* Implement trusted market close (#1184)

* implement trusted market close

* remove unnecessary benchmark helper function

* Update zrml/prediction-markets/src/lib.rs

Co-authored-by: Malte Kliemann <[email protected]>

* remove unnecessary function

* check market end

* check auto close

* add invalid market status test

---------

Co-authored-by: Malte Kliemann <[email protected]>

* Modify court events for indexer (#1182)

* modify events for indexer

* gracefully handle panicers

* handle binary search by key error

* improve style

* Ensure MinBetSize after fee (#1193)

* handle own existential deposit errors

* use require_transactional

* correct benchmark and test min bet size amounts

* Replace fixed math operations with traited versions (#1149)

* Replace `bmul` and `bdiv` with traited versions

* Restructure directories

* Replace `saturating_*` from neo-swaps

* Fix formatting

* Restructure zrml-swaps math

* Implement and test `b*`

* Fix formatting

* Use new math in orderbook-v1

* Replace checked multiplication with new math

* Use correct rounding in neo-swaps

* Add docs

* Update licenses

* Remove `fixed` module from `primitives`

* Fix formatting

* Update primitives/src/math/fixed.rs

Co-authored-by: Harald Heckmann <[email protected]>

---------

Co-authored-by: Harald Heckmann <[email protected]>

* Add env_logger and add force-debug feature (#1205)

* add env_logger and add force-debug feature

* taplo fmt, fix copyrights

* Update zrml/styx/src/mock.rs

Co-authored-by: Malte Kliemann <[email protected]>

* Update zrml/rikiddo/src/mock.rs

Co-authored-by: Malte Kliemann <[email protected]>

* update comment to clarify logging

---------

Co-authored-by: Malte Kliemann <[email protected]>

* Inflate defensively (#1195)

* inflate defensively

* add tests

* Update zrml/court/src/tests.rs

Co-authored-by: Malte Kliemann <[email protected]>

* fix test

* fix test name

---------

Co-authored-by: Malte Kliemann <[email protected]>

* Maintain order book (#1183)

* integrate market creator fees into orderbook

* edit tests

* update tests

* modify tests

* avoid order side

* Update primitives/src/traits/distribute_fees.rs

Co-authored-by: Malte Kliemann <[email protected]>

* remove asset and account from get_fee api call

* take base asset fees from fill_order

* adjust orderbook for taking fees in fill_order

* adjust without order side for fill_order

* adapt to avoid concept of order side

* adapt benchmarks, tests and weights, restructure

* use DispatchResult

* remove unused import

* do not adjust maker amount for place_order

* correct fuzz of orderbook

* check if maker_amount is zero

* fix order book name in benchmarks

* use remove instead of cancel order book

* correct order book test names

* update READMEs

* fmt

* add tests

* use minimum balance as min order size

* Update zrml/orderbook/README.md

Co-authored-by: Malte Kliemann <[email protected]>

* Update zrml/orderbook/README.md

Co-authored-by: Malte Kliemann <[email protected]>

* Apply suggestions from code review

Co-authored-by: Malte Kliemann <[email protected]>

* prettier orderbook md

* remove comments from benchmarks

* fix tests and benchmarks readibility

* use order book instead of orderbook

* clarify error message

* clarify comments

* rename is to ensure

* error for repatriate

* fix unnecessary clone

* correct mocks behaviour

* improve test

* improve test of near full fill error

* use turbofish syntax

* add filled_maker_amount to event

* split tests

* combine two functions, add docs

* abandon get_fees

* fix order book tests and mock

* remove check for impossible behaviour

* fix toml and benchs

* prepare migration

* add migration for order structure

* return zero fees if transfer fails

* delete unnecessary assert

* fix naming

* fix naming the second

* fix maker fill description

* add scoring rule check to remove order

* fix post_upgrade

* fix terminology

* Update zrml/orderbook/src/migrations.rs

Co-authored-by: Malte Kliemann <[email protected]>

* use storage root check in migration test

* Update zrml/orderbook/src/lib.rs

Co-authored-by: Harald Heckmann <[email protected]>

* Update zrml/orderbook/src/lib.rs

Co-authored-by: Harald Heckmann <[email protected]>

* Update zrml/orderbook/src/lib.rs

Co-authored-by: Harald Heckmann <[email protected]>

* delete debug_assert

---------

Co-authored-by: Malte Kliemann <[email protected]>
Co-authored-by: Harald Heckmann <[email protected]>

* Implement AMM 2.0 (#1173)

* Replace `bmul` and `bdiv` with traited versions

* Restructure directories

* Replace `saturating_*` from neo-swaps

* Fix formatting

* Restructure zrml-swaps math

* Implement and test `b*`

* Fix formatting

* Use new math in orderbook-v1

* Replace checked multiplication with new math

* Use correct rounding in neo-swaps

* Add docs

* Update licenses

* Remove `fixed` module from `primitives`

* Fix formatting

* .

* Rewrite math functions

* Remove training wheels

* Fix docs.pdf

* Fix quotes

* Add tests for buying

* Add tests for selling and improve error names

* Update docs

* Check adjusted amount in for numerical bounds

* Remove unused implementations

* Adjust docs

* Add stress test exploring various scenarios

* Add swap fees to stress test

* Add underscore separators

* Clean up

* Benchmark `buy` as function of `asset_count`

* Update benchmarks

* Clippy fix

* Fix benchmark tests

* Update benchmarks of zrml-prediction-markets

* Fix broken comment

* Add comment explaining benchmark spot prices

* Use clearer constants for `amount_in` in tests

* Update zrml/neo-swaps/src/traits/pool_operations.rs

Co-authored-by: Chralt <[email protected]>

* Fix botched merge

* Fix merge

* Update benchmarks

* Update zrml/neo-swaps/docs/docs.tex

Co-authored-by: Harald Heckmann <[email protected]>

* Apply suggestions from code review

Co-authored-by: Harald Heckmann <[email protected]>

* Rename `Fixed` and clean up

* Hotfix exponential function and extend tests

* Complete math test suite

* Fix broken sentence

* Remove unused imports

* Extend `ln` test cases

* Merge & fix formatting

---------

Co-authored-by: Chralt <[email protected]>
Co-authored-by: Harald Heckmann <[email protected]>

* Implement Liquidity Tree (#1178)

* Replace `bmul` and `bdiv` with traited versions

* Restructure directories

* Replace `saturating_*` from neo-swaps

* Fix formatting

* Restructure zrml-swaps math

* Implement and test `b*`

* Fix formatting

* Use new math in orderbook-v1

* Replace checked multiplication with new math

* Use correct rounding in neo-swaps

* Add docs

* Update licenses

* Remove `fixed` module from `primitives`

* Fix formatting

* Add liquidity tree draft

* Fix compiler error in draft

* Clean up `propagate_fees`

* Add docs

* Reorganize

* Clean up, add max iterations

* Remove migrations

* Prepare switch to bounded vector

* Use `BoundedVec`

* Use bounded `BTreeMap` and insert `LiquidityTree` into neo-swaps

* Resolve TODO

* Clean up tests

* Add migration and fix clippy errors

* Make tree depth a generic

* Make tree depth a config parameter

* Update runtime complexities

* Add benchmarking utilities

* Fix runtime complexity for `deploy_pool`

* Add missing lazy propagation

* Fix comment

* Fix error type

* Add `join` benchmarking and fix a bug in `LiquidityTree`

* Clean up benchmarks

* Fix clippy issues

* Remove unnecessary type hint

* Fix bugs in liquidity tree

* Fix comments

* Some fixes in benchmarks

* Implement `BenchmarkHelper`

* Update benchmarks to use the LT

* Clean up and format

* Add testing framework for liquidity trees

* Add first extensive test and fix a bug

* Add more tests

* Clean up test

* Add news tests and use better numerics for ratio calculations

* Make docs more explicit

* Add tests for `exit`

* Add tests for deposit fees

* Add tests for getters

* Clean up tests some more

* Finalize liquidity tree tests

* Clean up comments

* Introduce exit fees

* Rewrite `exit_works`

* Fix liquidity parameter calculation

* Make test a bit more complex

* Test liquidity shares

* Clean up tests

* Update test for destruction

* Enhance `exit_destroys_pool` test

* More cleanup

* Add test for full tree

* Add tests for `join`

* Improve test

* Test withdrawal

* Clean up the test

* Add test for noop

* Add minimum relative liquidity

* Verify that buys deduct the correct amount of fees

* Add last tests

* Add notes about the liquidity tree

* Fix benchmarks

* Fix clippy errors

* Fix benchmarks

* Do more work on benchmarks

* Fix benchmarks, deduce max tree depth

* Remove already solved TODO

* Document macros

* Remove TODO (not a good idea to edit LaTeX docs now)

* Fix `bmul_bdiv`

* Make `bmul_bdiv_*` not implemented

* Double-check that there's a non-zero check for `ratio`

* Fix formatting

* Fix taplo formatting

* Remove TODO

* Remove TODOs and fix documents

* Update primitives/src/math/fixed.rs

Co-authored-by: Chralt <[email protected]>

* Mark `SoloLp` as deprecated

* Update zrml/neo-swaps/README.md

Co-authored-by: Chralt <[email protected]>

* Make `bmul_bdiv` a little more idiomatic

* Update zrml/neo-swaps/README.md

Co-authored-by: Chralt <[email protected]>

* Update zrml/neo-swaps/README.md

Co-authored-by: Chralt <[email protected]>

* Update zrml/neo-swaps/README.md

Co-authored-by: Chralt <[email protected]>

* Update zrml/neo-swaps/README.md

Co-authored-by: Chralt <[email protected]>

* Update zrml/neo-swaps/README.md

Co-authored-by: Chralt <[email protected]>

* Update zrml/neo-swaps/README.md

Co-authored-by: Chralt <[email protected]>

* Update zrml/neo-swaps/README.md

Co-authored-by: Chralt <[email protected]>

* Rewrite and format `README.md`

* Fix comment about existential deposit

* Remove FIXME

* Add a check against misconfiguration of the pallet

* Fix field docstrings

* Add comment about `assert_ok_with_transaction`

* Update zrml/neo-swaps/src/mock.rs

Co-authored-by: Chralt <[email protected]>

* Format code

* Fix comment

* Prettify extrinsic calls in benchmarks

* Improve code quality of `assert_pool_state!`

* Extend comment about order of abandoned nodes

* Clarify the meaning of "leaf" in `is_leaf`

* Rename `index_maybe` to `opt_index`

* Add unexpected storage overflow error for bounded objects

* Rename `UnclaimedFees` to `UnwithdrawnFees`

* Fix documentation

* Use enum to signal update direction in `update_descendant_stake`

* Add verification to `join_*` benchmarks

* Improve documentation

* Use builtin log

* Remove illegal token from `README.md`

* Update zrml/neo-swaps/src/types/liquidity_tree.rs

Co-authored-by: Chralt <[email protected]>

* Fix unintentional doctest

* Improve `mutate_children`

* Add helpful comment

* Update zrml/neo-swaps/src/types/liquidity_tree.rs

Co-authored-by: Chralt <[email protected]>

* Fix migration

* Fix balances in parachain mock

* use PartialEqNoBound and CloneNoBound for tree

* Fix formatting

* Make `debug_assert!` more clear

* Redesign node assignment

* Clean up comments

* Add some storage overflow errors

* Introduce `LiquidityTreeChildIndices`

* Remove outdated docs

* Rename `update_descendant_stake`

* Remove `Default` usage

* Make liquidity tree types `pub(crate)` where possible

* Make all fields of `Node` only `pub(crate)`

* Make `Node<T>` an associated type of `LiquidityTreeHelper`

* Update zrml/neo-swaps/src/lib.rs

Co-authored-by: Harald Heckmann <[email protected]>

* Fix comment

* Update zrml/neo-swaps/src/types/liquidity_tree.rs

Co-authored-by: Harald Heckmann <[email protected]>

* Fix tests

* Prettify `path_to_node`

* Add max iterations to `path_to_node`

* Add test for complex liquidity tree interactions

* Improve documentation of `LiquidityTreeChildIndices`

* Reorganize crate structure

* Update weights and fix formatting

---------

Co-authored-by: Chralt <[email protected]>
Co-authored-by: Chralt98 <[email protected]>
Co-authored-by: Harald Heckmann <[email protected]>

* Improve XCM fee handling (#1225)

* Fix padding of foreign fees in Zeitgeist runtime

* Fix padding of foreign fees in Battery Station runtime

* Format

* Update copyright

* Use adjusted_balance function

* Remove court and global disputes from call filter for the main-net (#1226)

* remove from call filter

* update copyright

* Sunset old AMMs and their pools (#1197)

* Replace `bmul` and `bdiv` with traited versions

* Restructure directories

* Replace `saturating_*` from neo-swaps

* Fix formatting

* Restructure zrml-swaps math

* Implement and test `b*`

* Fix formatting

* Use new math in orderbook-v1

* Replace checked multiplication with new math

* Use correct rounding in neo-swaps

* Add docs

* Update licenses

* Remove `fixed` module from `primitives`

* Fix formatting

* .

* Rewrite math functions

* Remove training wheels

* Fix docs.pdf

* Fix quotes

* Add tests for buying

* Add tests for selling and improve error names

* Update docs

* Check adjusted amount in for numerical bounds

* Remove unused implementations

* Adjust docs

* Add stress test exploring various scenarios

* Add swap fees to stress test

* Add underscore separators

* Clean up

* Benchmark `buy` as function of `asset_count`

* Update benchmarks

* Clippy fix

* Fix benchmark tests

* Update benchmarks of zrml-prediction-markets

* Fix broken comment

* Add comment explaining benchmark spot prices

* Use clearer constants for `amount_in` in tests

* Update zrml/neo-swaps/src/traits/pool_operations.rs

Co-authored-by: Chralt <[email protected]>

* Fix botched merge

* Fix merge

* Update benchmarks

* Remove `pool_*_subsidy`

* Remove `distribute_pool_share_rewards`

* Remove `end_subsidy_phase`

* Remove `destroy_pool_in_subsidy_phase`

* Remove `MinSubsidy*`

* Remove `SubsidyProviders`

* Remove `start_subsidy`

* Rewrite `create_pool`

* Rewrite `swap_exact_amount_in`

* Rewrite `swap_exact_amount_out`

* Rewrite utility functions

* Remove Rikiddo from weight calculation

* Remove Rikiddo from zrml-swaps

* Remove unused errors

* Remove `ScoringRule::Rikiddo...`

* Remove `*SubsidyPeriod`

* Remove Rikiddo-related storage and events

* Remove automatic opening of pools

* Remove `open_pool` from prediction-markets

* Remove `Swaps::close_pool` from prediction-markets

* Remove `clean_up_pool` from prediction-markets

* Remove `clean_up_pool` from `Swaps` trait

* Remove CPMM deployment from prediction-markets

* Remove automatic arbitrage

* Move `market_account` back to prediction-markets

* Remove unused market states

* Fix fuzz tests

* Implement market migration

* Minor changes

* Fix migration behavior

* Remove creator fees from swaps

* Fix try-runtime

* Fix clippy issues

* Remove `LiquidityMining` from swaps

* Fix `get_spot_prices`

* Take first step to remove `MarketCommons` from swaps

* Remove `MarketCommons` from swaps

* Rewrite `PoolStatus`

* Move `Pool*` to swaps

* Use `Bounded*` types in `Pool`

* Finish swaps migration

* Add missing files

* Fix formatting and clippy errors

* Remove `pool_status.rs`

* Ignore doctests

* Fix fuzz tests

* Add prediciton-markets migration

* Test prediction-markets migration

* Finish tests of the market-commons migration

* Add migrations to runtime and fix various errors

* Clean up

* Clean up

* Format code

* Fix pool migration behavior

* Remove `MarketId` from swaps

* Fix formatting

* Fix formatting

* Remove `CPMM` and allow other scoring rules on Battery Station

* Update macros/Cargo.toml

Co-authored-by: Harald Heckmann <[email protected]>

* Update primitives/src/traits/zeitgeist_asset.rs

Co-authored-by: Harald Heckmann <[email protected]>

* Update zrml/market-commons/src/migrations.rs

Co-authored-by: Harald Heckmann <[email protected]>

* Update zrml/swaps/src/migrations.rs

Co-authored-by: Harald Heckmann <[email protected]>

* Update zrml/swaps/src/migrations.rs

Co-authored-by: Harald Heckmann <[email protected]>

* Update zrml/prediction-markets/src/migrations.rs

Co-authored-by: Harald Heckmann <[email protected]>

* Update zrml/market-commons/src/migrations.rs

Co-authored-by: Harald Heckmann <[email protected]>

* Clean up TODOs/FIXMEs

* Update changelog

* Make more changes to changelog

* Clear zrml-swaps storage

* Remove cfg-if dependency

* Fix formatting

* Trigger CI

* Update copyright notices

* Update docs/changelog_for_devs.md

Co-authored-by: Chralt <[email protected]>

* Make benchmark helper only available if feature flags are set

* Remove `ZeitgeistAsset` trait

* Remove preliminary benchmarks with more steps

* Format code

* Fix copyright notice

---------

Co-authored-by: Chralt <[email protected]>
Co-authored-by: Harald Heckmann <[email protected]>

* Merge release v0.4.3 (#1211)

* Use hotfixed `exp`

* Reorganize tests

* Fix formatting

* Bump versions to v0.4.3

* Update spec versions

* Add missing version bumps

* Format

* Update licenses

---------

Co-authored-by: Malte Kliemann <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Reduce `market_status_manager` aka `on_initialize` iterations (#1160)

* remove dangerous loop

* limit iterations of dangerous loop

* reintegrate last time frame storage item

* wip

* benchmark manual close and open

* fix stall test

* emit event and log for recovery time frame

* add tests

* add trailing comma

* Update zrml/prediction-markets/src/benchmarks.rs

Co-authored-by: Malte Kliemann <[email protected]>

* change should_be_closed condition

* Apply suggestions from code review

Co-authored-by: Malte Kliemann <[email protected]>

* change recursion limit line

* regard period not started yet

* add error tests

* correct benchmarks

* fix after merge and clippy

* use turbofish, add test checks

* remove manually open broken market

* correct errors and call index

* correct wrong error name

* correct position of call index

* correct error position

* update copyrights

* fix after merge

* Update zrml/prediction-markets/src/benchmarks.rs

Co-authored-by: Malte Kliemann <[email protected]>

* set market end for manual close

---------

Co-authored-by: Malte Kliemann <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Update style guide to streamline reviews (#1228)

* Reduce benchmark runs of Zeitgeist pallets (#1233)

Reduce bencharm runs of Zeitgeist pallets

Running benchmarks of Zeitgeist pallets on the Zeitgeist reference machine currently takes four days.

* Set inflation to more than zero for a full benchmark of handle_inflation (#1234)

Update benchmarks.rs

* Implement `force_pool_exit` and disable other zrml-swaps functions (#1235)

* Abstract `pool_exit` business logic into `do_*` function

* Add `force_pool_exit` and test

* Install call filters for zrml-swaps

* Implement and test `bmul_bdiv_*`; use in zrml-orderbook and zrml-parimutuel  (#1223)

* Implement and test `bmul_bdiv_*`

* Use `bmul_bdiv_*` in pallets

* Update copyright

* Utilize Merigify's Merge Queue (#1243)

ci(Mergify): configuration update

Signed-off-by: Harald Heckmann <[email protected]>

* Set in-progress when needed and rerun CI in merge queue (#1244)

* Set in-progress when need and rerun CI in merge queue

---------

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Avoid mergify dequeue (#1245)

* Avoid mergify deque

* Set review needed only shortly after Mergify commit

* Extend neo-swaps tests and clean up `math.rs` (#1238)

* Add tests to neo-swaps that check large buy/sell amounts at high liquidity

* Use new implementation of HydraDX's `exp`

* Add failure tests to neo-swaps's `math.rs`

* Fix formatting

* Update copyright notices

---------

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Remove migrations and dead code (#1241)

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Reorganize prediction-market tests (#1242)

* Rename `tests.rs` to `old_tests.rs` to avoid naming conflicts

* Move `buy_complete_set` tests to new tests

* Clean up `buy_complete_set` tests

* Extract `sell_complete_set_tests`

* Clean up `sell_complete_set` tests

* Extract `admin_move_market_to_closed` tests

* Extract `create_market` tests

* Extract `admin_move_market_to_resolved` tests

* Remove superfluous test

* Extract more `create_market` tests

* Extract `approve_market` tests

* Extract `edit_market` tests

* Extract `edit_market` tests

* Add `on_market_close` tests

* Extract `manually_close_market` tests

* Extract `on_initialize` tests

* Extract `report` tests

* Extract `dispute` tests

* Extract `schedule_early_close` tests

* Extract `dispute_early_close` tests

* Extract `reject_early_close` tests

* Extract more `dispute` tests

* Extract `close_trusted_market` tests

* Extract `start_global_dispute` tests

* Extract `redeem_shares` tests and add missing tests

* Extract `on_resolution` and additional `redeem_shares` tests

* Move integration tests into new test module

* Automatically set block to `1` at the start of test

* Replace `crate::Config` with `Config`

* Access constant through `Config`

* Add TODOs for missing execution paths

* Fix formatting

---------

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Improve fee payment management (#1246)

* Improve fee payment management

* Make code compileable

* Do not remit TX fees for redeem_shares

Co-authored-by: Malte Kliemann <[email protected]>

---------

Co-authored-by: Malte Kliemann <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Fix Rust and Discord badge (#1247)

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Fix neo-swaps doc strings (#1250)

* Improve `SellExecuted` documentation

* Clean up math in comments and doc strings

* Fix formatting

* Adjust style guide (loops) and add unreachable macro (#1252)

* Adjust style guide (loops) and add unreachable macro

* Add macros module to lib.rs

* Update docs/STYLE_GUIDE.md

Co-authored-by: Malte Kliemann <[email protected]>

* Move macro to zeitgeist-macros and add examples

---------

Co-authored-by: Malte Kliemann <[email protected]>

* Merge Old* and New* asset variants

* Partially integrate lazy migration routing

* Integrate lazy migration routing

* Fix ExistentialDeposit mapping & Satisfy Clippy

* Remove primitives/macros

* Filter certain asset destroy calls (they're managed)

* Integrate asset destruction into prediction markets

* Add BaseAssetClass

* Update prediction-markets & market-commons

* Update authorized

* Update liquidity-mining

* Update simple-disputes

* Update parimutuels (wip)

* Move functions into market struct and properly delete assets

* Add ParimutuelAssetClass

* Add parimutuel.rs

* Remove duplicate code

* Adjust asset type and managed destroy after refund in parimutuels

* Add MarketTransitionApi

This will allow prediction-markets to signal other pallets that state transitions happened

* Add MarketTransitionApi

* Implement MarketTransitionApi for Parimutuels

* Partially implement asset creation/destruction in parimutuels

* Add all asset creation / destruction tests to parimutuels

* Adjust Court

* Update global-disputes

* Update swaps

* Update neo-swaps

* Integrate OnStateTransition hooks into prediction-markets

* Use proper state transition weights

* Make cargo check succeed

* Partially update orderbook

* Update orderbook

* Update orderbook

* Finalize orderbook update

* Improve style

* Add XcmAssetClass

* Add sub asset classes, extend Market, provide market transition trait

* Update asset-router

* Integrate asset system into prediction-market, market-commons and parimutuel

- Market commons now uses the BaseAsset class for base assets
- Prediction markets now creates and destroys MarketAssets only if market.is_redeemable
- Prediction markets now calls OnStateTransition when transitioning it's state
- Parimutuel markets now implements StateTransitionApi
- Parimutuel markets now properly creates and destroys ParimutuelShares

* Implement support for non-reservable assets in orderbook

* Integrate new asset system into Battery Station XCM

* Integrate new asset system into Zeitgeist XCM

* Fix conditional import

* Format

* Fix unfillable / unremovable order bug

Co-authored-by: Chralt <[email protected]>

* Make compileable

* Resolve one merge conflict

* Format

* Satisfy Clippy

---------

Signed-off-by: Harald Heckmann <[email protected]>
Co-authored-by: Chralt <[email protected]>
Co-authored-by: Malte Kliemann <[email protected]>
Co-authored-by: Chralt98 <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* Merge release v0.4.2 (#1174)

* Update versions (#1168)

* Add updated weights from reference machine (#1169)

* Add license header

Co-authored-by: Chralt <[email protected]>

---------

Co-authored-by: Chralt <[email protected]>

* Remove migrations (#1180)

* Filter admin functions for main-net (#1190)

filter admin functions for main-net

* Add debug assertions for slashes and reserves (#1188)

* add debug assertions for missing slashes

* place debug_assert for unreserves

* Add some verify checks to court (#1187)

add some verify checks to court

* Bypass battery stations contracts call filter for court, parimutuel, order book markets (#1185)

update contracts call filter

* Fix failing court benchmark (#1191)

* fix court assertion for resolve_at

* remove unnecessary variable

* mirror mock and actual impl for DisputeResolution

* Implement trusted market close (#1184)

* implement trusted market close

* remove unnecessary benchmark helper function

* Update zrml/prediction-markets/src/lib.rs

Co-authored-by: Malte Kliemann <[email protected]>

* remove unnecessary function

* check market end

* check auto close

* add invalid market status test

---------

Co-authored-by: Malte Kliemann <[email protected]>

* Modify court events for indexer (#1182)

* modify events for indexer

* gracefully handle panicers

* handle binary search by key error

* improve style

* Ensure MinBetSize after fee (#1193)

* handle own existential deposit errors

* use require_transactional

* correct benchmark and test min bet size amounts

* Replace fixed math operations with traited versions (#1149)

* Replace `bmul` and `bdiv` with traited versions

* Restructure directories

* Replace `saturating_*` from neo-swaps

* Fix formatting

* Restructure zrml-swaps math

* Implement and test `b*`

* Fix formatting

* Use new math in orderbook-v1

* Replace checked multiplication with new math

* Use correct rounding in neo-swaps

* Add docs

* Update licenses

* Remove `fixed` module from `primitives`

* Fix formatting

* Update primitives/src/math/fixed.rs

Co-authored-by: Harald Heckmann <[email protected]>

---------

Co-authored-by: Harald Heckmann <[email protected]>

* Add env_logger and add force-debug feature (#1205)

* add env_logger and add force-debug feature

* taplo fmt, fix copyrights

* Update zrml/styx/src/mock.rs

Co-authored-by: Malte Kliemann <[email protected]>

* Update zrml/rikiddo/src/mock.rs

Co-authored-by: Malte Kliemann <[email protected]>

* update comment to clarify logging

---------

Co-authored-by: Malte Kliemann <[email protected]>

* Inflate defensively (#1195)

* inflate defensively

* add tests

* Update zrml/court/src/tests.rs

Co-authored-by: Malte Kliemann <[email protected]>

* fix test

* fix test name

---------

Co-authored-by: Malte Kliemann <[email protected]>

* Maintain order book (#1183)

* integrate market creator fees into orderbook

* edit tests

* update tests

* modify tests

* avoid order side

* Update primitives/src/traits/distribute_fees.rs

Co-authored-by: Malte Kliemann <[email protected]>

* remove asset and account from get_fee api call

* take base asset fees from fill_order

* adjust orderbook for taking fees in fill_order

* adjust without order side for fill_order

* adapt to avoid concept of order side

* adapt benchmarks, tests and weights, restructure

* use DispatchResult

* remove unused import

* do not adjust maker amount for place_order

* correct fuzz of orderbook

* check if maker_amount is zero

* fix order book name in benchmarks

* use remove instead of cancel order book

* correct order book test names

* update READMEs

* fmt

* add tests

* use minimum balance as min order size

* Update zrml/orderbook/README.md

Co-authored-by: Malte Kliemann <[email protected]>

* Update zrml/orderbook/README.md

Co-authored-by: Malte Kliemann <[email protected]>

* Apply suggestions from code review

Co-authored-by: Malte Kliemann <[email protected]>

* prettier orderbook md

* remove comments from benchmarks

* fix tests and benchmarks readibility

* use order book instead of orderbook

* clarify error message

* clarify comments

* rename is to ensure

* error for repatriate

* fix unnecessary clone

* correct mocks behaviour

* improve test

* improve test of near full fill error

* use turbofish syntax

* add filled_maker_amount to event

* split tests

* combine two functions, add docs

* abandon get_fees

* fix order book tests and mock

* remove check for impossible behaviour

* fix toml and benchs

* prepare migration

* add migration for order structure

* return zero fees if transfer fails

* delete unnecessary assert

* fix naming

* fix naming the second

* fix maker fill description

* add scoring rule check to remove order

* fix post_upgrade

* fix terminology

* Update zrml/orderbook/src/migrations.rs

Co-authored-by: Malte Kliemann <[email protected]>

* use storage root check in migration test

* Update zrml/orderbook/src/lib.rs

Co-authored-by: Harald Heckmann <[email protected]>

* Update zrml/orderbook/src/lib.rs

Co-authored-by: Harald Heckmann <[email protected]>

* Update zrml/orderbook/src/lib.rs

Co-authored-by: Harald Heckmann <[email protected]>

* delete debug_assert

---------

Co-authored-by: Malte Kliemann <[email protected]>
Co-authored-by: Harald Heckmann <[email protected]>

* Implement AMM 2.0 (#1173)

* Replace `bmul` and `bdiv` with traited versions

* Restructure directories

* Replace `saturating_*` from neo-swaps

* Fix formatting

* Restructure zrml-swaps math

* Implement and test `b*`

* Fix formatting

* Use new math in orderbook-v1

* Replace checked multiplication with new math

* Use correct rounding in neo-swaps

* Add docs

* Update licenses

* Remove `fixed` module from `primitives`

* Fix formatting

* .

* Rewrite math functions

* Remove training wheels

* Fix docs.pdf

* Fix quotes

* Add tests for buying

* Add tests for selling and improve error names

* Update docs

* Check adjusted amount in for numerical bounds

* Remove unused implementations

* Adjust docs

* Add stress test exploring various scenarios

* Add swap fees to stress test

* Add underscore separators

* Clean up

* Benchmark `buy` as function of `asset_count`

* Update benchmarks

* Clippy fix

* Fix benchmark tests

* Update benchmarks of zrml-prediction-markets

* Fix broken comment

* Add comment explaining benchmark spot prices

* Use clearer constants for `amount_in` in tests

* Update zrml/neo-swaps/src/traits/pool_operations.rs

Co-authored-by: Chralt <[email protected]>

* Fix botched merge

* Fix merge

* Update benchmarks

* Update zrml/neo-swaps/docs/docs.tex

Co-authored-by: Harald Heckmann <[email protected]>

* Apply suggestions from code review

Co-authored-by: Harald Heckmann <[email protected]>

* Rename `Fixed` and clean up

* Hotfix exponential function and extend tests

* Complete math test suite

* Fix broken sentence

* Remove unused imports

* Extend `ln` test cases

* Merge & fix formatting

---------

Co-authored-by: Chralt <[email protected]>
Co-authored-by: Harald Heckmann <[email protected]>

* Implement Liquidity Tree (#1178)

* Replace `bmul` and `bdiv` with traited versions

* Restructure directories

* Replace `saturating_*` from neo-swaps

* Fix formatting

* Restructure zrml-swaps math

* Implement and test `b*`

* Fix formatting

* Use new math in orderbook-v1

* Replace checked multiplication with new math

* Use correct rounding in neo-swaps

* Add docs

* Update licenses

* Remove `fixed` module from `primitives`

* Fix formatting

* Add liquidity tree draft

* Fix compiler error in draft

* Clean up `propagate_fees`

* Add docs

* Reorganize

* Clean up, add max iterations

* Remove migrations

* Prepare switch to bounded vector

* Use `BoundedVec`

* Use bounded `BTreeMap` and insert `LiquidityTree` into neo-swaps

* Resolve TODO

* Clean up tests

* Add migration and fix clippy errors

* Make tree depth a generic

* Make tree depth a config parameter

* Update runtime complexities

* Add benchmarking utilities

* Fix runtime complexity for `deploy_pool`

* Add missing lazy propagation

* Fix comment

* Fix error type

* Add `join` benchmarking and fix a bug in `LiquidityTree`

* Clean up benchmarks

* Fix clippy issues

* Remove unnecessary type hint

* Fix bugs in liquidity tree

* Fix comments

* Some fixes in benchmarks

* Implement `BenchmarkHelper`

* Update benchmarks to use the LT

* Clean up and format

* Add testing framework for liquidity trees

* Add first extensive test and fix a bug

* Add more tests

* Clean up test

* Add news tests and use better numerics for ratio calculations

* Make docs more explicit

* Add tests for `exit`

* Add tests for deposit fees

* Add tests for getters

* Clean up tests some more

* Finalize liquidity tree tests

* Clean up comments

* Introduce exit fees

* Rewrite `exit_works`

* Fix liquidity parameter calculation

* Make test a bit more complex

* Test liquidity shares

* Clean up tests

* Update test for destruction

* Enhance `exit_destroys_pool` test

* More cleanup

* Add test for full tree

* Add tests for `join`

* Improve test

* Test withdrawal

* Clean up the test

* Add test for noop

* Add minimum relative liquidity

* Verify that buys deduct the correct amount of fees

* Add last tests

* Add notes about the liquidity tree

* Fix benchmarks

* Fix clippy errors

* Fix benchmarks

* Do more work on benchmarks

* Fix benchmarks, deduce max tree depth

* Remove already solved TODO

* Document macros

* Remove TODO (not a good idea to edit LaTeX docs now)

* Fix `bmul_bdiv`

* Make `bmul_bdiv_*` not implemented

* Double-check that there's a non-zero check for `ratio`

* Fix formatting

* Fix taplo formatting

* Remove TODO

* Remove TODOs and fix documents

* Update primitives/src/math/fixed.rs

Co-authored-by: Chralt <[email protected]>

* Mark `SoloLp` as deprecated

* Update zrml/neo-swaps/README.md

Co-authored-by: Chralt <[email protected]>

* Make `bmul_bdiv` a little more idiomatic

* Update zrml/neo-swaps/README.md

Co-authored-by: Chralt <[email protected]>

* Update zrml/neo-swaps/README.md

Co-authored-by: Chralt <[email protected]>

* Update zrml/neo-swaps/README.md

Co-authored-by: Chralt <[email protected]>

* Update zrml/neo-swaps/README.md

Co-authored-by: Chralt <[email protected]>

* Update zrml/neo-swaps/README.md

Co-authored-by: Chralt <[email protected]>

* Update zrml/neo-swaps/README.md

Co-authored-by: Chralt <[email protected]>

* Update zrml/neo-swaps/README.md

Co-authored-by: Chralt <[email protected]>

* Rewrite and format `README.md`

* Fix comment about existential deposit

* Remove FIXME

* Add a check against misconfiguration of the pallet

* Fix field docstrings

* Add comment about `assert_ok_with_transaction`

* Update zrml/neo-swaps/src/mock.rs

Co-authored-by: Chralt <[email protected]>

* Format code

* Fix comment

* Prettify extrinsic calls in benchmarks

* Improve code quality of `assert_pool_state!`

* Extend comment about order of abandoned nodes

* Clarify the meaning of "leaf" in `is_leaf`

* Rename `index_maybe` to `opt_index`

* Add unexpected storage overflow error for bounded objects

* Rename `UnclaimedFees` to `UnwithdrawnFees`

* Fix documentation

* Use enum to signal update direction in `update_descendant_stake`

* Add verification to `join_*` benchmarks

* Improve documentation

* Use builtin log

* Remove illegal token from `README.md`

* Update zrml/neo-swaps/src/types/liquidity_tree.rs

Co-authored-by: Chralt <[email protected]>

* Fix unintentional doctest

* Improve `mutate_children`

* Add helpful comment

* Update zrml/neo-swaps/src/types/liquidity_tree.rs

Co-authored-by: Chralt <[email protected]>

* Fix migration

* Fix balances in parachain mock

* use PartialEqNoBound and CloneNoBound for tree

* Fix formatting

* Make `debug_assert!` more clear

* Redesign node assignment

* Clean up comments

* Add some storage overflow errors

* Introduce `LiquidityTreeChildIndices`

* Remove outdated docs

* Rename `update_descendant_stake`

* Remove `Default` usage

* Make liquidity tree types `pub(crate)` where possible

* Make all fields of `Node` only `pub(crate)`

* Make `Node<T>` an associated type of `LiquidityTreeHelper`

* Update zrml/neo-swaps/src/lib.rs

Co-authored-by: Harald Heckmann <[email protected]>

* Fix comment

* Update zrml/neo-swaps/src/types/liquidity_tree.rs

Co-authored-by: Harald Heckmann <[email protected]>

* Fix tests

* Prettify `path_to_node`

* Add max iterations to `path_to_node`

* Add test for complex liquidity tree interactions

* Improve documentation of `LiquidityTreeChildIndices`

* Reorganize crate structure

* Update weights and fix formatting

---------

Co-authored-by: Chralt <[email protected]>
Co-authored-by: Chralt98 <[email protected]>
Co-authored-by: Harald Heckmann <[email protected]>

* Improve XCM fee handling (#1225)

* Fix padding of foreign fees in Zeitgeist runtime

* Fix padding of foreign fees in Battery Station runtime

* Format

* Update copyright

* Use adjusted_balance function

* Remove court and global disputes from call filter for the main-net (#1226)

* remove from call filter

* update copyright

* Sunset old AMMs and their pools (#1197)

* Replace `bmul` and `bdiv` with traited versions

* Restructure directories

* Replace `saturating_*` from neo-swaps

* Fix formatting

* Restructure zrml-swaps math

* Implement and test `b*`

* Fix formatting

* Use new math in orderbook-v1

* Replace checked multiplication with new math

* Use correct rounding in neo-swaps

* Add docs

* Update licenses

* Remove `fixed` module from `primitives`

* Fix formatting

* .

* Rewrite math functions

* Remove training wheels

* Fix docs.pdf

* Fix quotes

* Add tests for buying

* Add tests for selling and improve error names

* Update docs

* Check adjusted amount in for numerical bounds

* Remove unused implementations

* Adjust docs

* Add stress test exploring various scenarios

* Add swap fees to stress test

* Add underscore separators

* Clean up

* Benchmark `buy` as function of `asset_count`

* Update benchmarks

* Clippy fix

* Fix benchmark tests

* Update benchmarks of zrml-prediction-markets

* Fix broken comment

* Add comment explaining benchmark spot prices

* Use clearer constants for `amount_in` in tests

* Update zrml/neo-swaps/src/traits/pool_operations.rs

Co-authored-by: Chralt <[email protected]>

* Fix botched merge

* Fix merge

* Update benchmarks

* Remove `pool_*_subsidy`

* Remove `distribute_pool_share_rewards`

* Remove `end_subsidy_phase`

* Remove `destroy_pool_in_subsidy_phase`

* Remove `MinSubsidy*`

* Remove `SubsidyProviders`

* Remove `start_subsidy`

* Rewrite `create_pool`

* Rewrite `swap_exact_amount_in`

* Rewrite `swap_exact_amount_out`

* Rewrite utility functions

* Remove Rikiddo from weight calculation

* Remove Rikiddo from zrml-swaps

* Remove unused errors

* Remove `ScoringRule::Rikiddo...`

* Remove `*SubsidyPeriod`

* Remove Rikiddo-related storage and events

* Remove automatic opening of pools

* Remove `open_pool` from prediction-markets

* Remove `Swaps::close_pool` from prediction-markets

* Remove `clean_up_pool` from prediction-markets

* Remove `clean_up_pool` from `Swaps` trait

* Remove CPMM deployment from prediction-markets

* Remove automatic arbitrage

* Move `market_account` back to prediction-markets

* Remove unused market states

* Fix fuzz tests

* Implement market migration

* Minor changes

* Fix migration behavior

* Remove creator fees from swaps

* Fix try-runtime

* Fix clippy issues

* Remove `LiquidityMining` from swaps

* Fix `get_spot_prices`

* Take first step to remove `MarketCommons` from swaps

* Remove `MarketCommons` from swaps

* Rewrite `PoolStatus`

* Move `Pool*` to swaps

* Use `Bounded*` types in `Pool`

* Finish swaps migration

* Add missing files

* Fix formatting and clippy errors

* Remove `pool_status.rs`

* Ignore doctests

* Fix fuzz tests

* Add prediciton-markets migration

* Test prediction-markets migration

* Finish tests of the market-commons migration

* Add migrations to runtime and fix various errors

* Clean up

* Clean up

* Format code

* Fix pool migration behavior

* Remove `MarketId` from swaps

* Fix formatting

* Fix formatting

* Remove `CPMM` and allow other scoring rules on Battery Station

* Update macros/Cargo.toml

Co-authored-by: Harald Heckmann <[email protected]>

* Update primitives/src/traits/zeitgeist_asset.rs

Co-authored-by: Harald Heckmann <[email protected]>

* Update zrml/market-commons/src/migrations.rs

Co-authored-by: Harald Heckmann <[email protected]>

* Update zrml/swaps/src/migrations.rs

Co-authored-by: Harald Heckmann <[email protected]>

* Update zrml/swaps/src/migrations.rs

Co-authored-by: Harald Heckmann <[email protected]>

* Update zrml/prediction-markets/src/migrations.rs

Co-authored-by: Harald Heckmann <[email protected]>

* Update zrml/market-commons/src/migrations.rs

Co-authored-by: Harald Heckmann <[email protected]>

* Clean up TODOs/FIXMEs

* Update changelog

* Make more changes to changelog

* Clear zrml-swaps storage

* Remove cfg-if dependency

* Fix formatting

* Trigger CI

* Update copyright notices

* Update docs/changelog_for_devs.md

Co-authored-by: Chralt <[email protected]>

* Make benchmark helper only available if feature flags are set

* Remove `ZeitgeistAsset` trait

* Remove preliminary benchmarks with more steps

* Format code

* Fix copyright notice

---------

Co-authored-by: Chralt <[email protected]>
Co-authored-by: Harald Heckmann <[email protected]>

* Merge release v0.4.3 (#1211)

* Use hotfixed `exp`

* Reorganize tests

* Fix formatting

* Bump versions to v0.4.3

* Update spec versions

* Add missing version bumps

* Format

* Update licenses

---------

Co-authored-by: Malte Kliemann <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Reduce `market_status_manager` aka `on_initialize` iterations (#1160)

* remove dangerous loop

* limit iterations of dangerous loop

* reintegrate last time frame storage item

* wip

* benchmark manual close and open

* fix stall test

* emit event and log for recovery time frame

* add tests

* add trailing comma

* Update zrml/prediction-markets/src/benchmarks.rs

Co-authored-by: Malte Kliemann <[email protected]>

* change should_be_closed condition

* Apply suggestions from code review

Co-authored-by: Malte Kliemann <[email protected]>

* change recursion limit line

* regard period not started yet

* add error tests

* correct benchmarks

* fix after merge and clippy

* use turbofish, add test checks

* remove manually open broken market

* correct errors and call index

* correct wrong error name

* correct position of call index

* correct error position

* update copyrights

* fix after merge

* Update zrml/prediction-markets/src/benchmarks.rs

Co-authored-by: Malte Kliemann <[email protected]>

* set market end for manual close

---------

Co-authored-by: Malte Kliemann <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Update style guide to streamline reviews (#1228)

* Reduce benchmark runs of Zeitgeist pallets (#1233)

Reduce bencharm runs of Zeitgeist pallets

Running benchmarks of Zeitgeist pallets on the Zeitgeist reference machine currently takes four days.

* Set inflation to more than zero for a full benchmark of handle_inflation (#1234)

Update benchmarks.rs

* Implement `force_pool_exit` and disable other zrml-swaps functions (#1235)

* Abstract `pool_exit` business logic into `do_*` function

* Add `force_pool_exit` and test

* Install call filters for zrml-swaps

* Implement and test `bmul_bdiv_*`; use in zrml-orderbook and zrml-parimutuel  (#1223)

* Implement and test `bmul_bdiv_*`

* Use `bmul_bdiv_*` in pallets

* Update copyright

* Utilize Merigify's Merge Queue (#1243)

ci(Mergify): configuration update

Signed-off-by: Harald Heckmann <[email protected]>

* Set in-progress when needed and rerun CI in merge queue (#1244)

* Set in-progress when need and rerun CI in merge queue

---------

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Avoid mergify dequeue (#1245)

* Avoid mergify deque

* Set review needed only shortly after Mergify commit

* Extend neo-swaps tests and clean up `math.rs` (#1238)

* Add tests to neo-swaps that check large buy/sell amounts at high liquidity

* Use new implementation of HydraDX's `exp`

* Add failure tests to neo-swaps's `math.rs`

* Fix formatting

* Update copyright notices

---------

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Remove migrations and dead code (#1241)

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Reorganize prediction-market tests (#1242)

* Rename `tests.rs` to `old_tests.rs` to avoid naming conflicts

* Move `buy_complete_set` tests to new tests

* Clean up `buy_complete_set` tests

* Extract `sell_complete_set_tests`

* Clean up `sell_complete_set` tests

* Extract `admin_move_market_to_closed` tests

* Extract `create_market` tests

* Extract `admin_move_market_to_resolved` tests

* Remove superfluous test

* Extract more `create_market` tests

* Extract `approve_market` tests

* Extract `edit_market` tests

* Extract `edit_market` tests

* Add `on_market_close` tests

* Extract `manually_close_market` tests

* Extract `on_initialize` tests

* Extract `report` tests

* Extract `dispute` tests

* Extract `schedule_early_close` tests

* Extract `dispute_early_close` tests

* Extract `reject_early_close` tests

* Extract more `dispute` tests

* Extract `close_trusted_market` tests

* Extract `start_global_dispute` tests

* Extract `redeem_shares` tests and add missing tests

* Extract `on_resolution` and additional `redeem_shares` tests

* Move integration tests into new test module

* Automatically set block to `1` at the start of test

* Replace `crate::Config` with `Config`

* Access constant through `Config`

* Add TODOs for missing execution paths

* Fix formatting

---------

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Improve fee payment management (#1246)

* Improve fee payment management

* Make code compileable

* Do not remit TX fees for redeem_shares

Co-authored-by: Malte Kliemann <[email protected]>

---------

Co-authored-by: Malte Kliemann <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Fix Rust and Discord badge (#1247)

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Fix neo-swaps doc strings (#1250)

* Improve `SellExecuted` documentation

* Clean up math in comments and doc strings

* Fix formatting

* Adjust style guide (loops) and add unreachable macro (#1252)

* Adjust style guide (loops) and add unreachable macro

* Add macros module to lib.rs

* Update docs/STYLE_GUIDE.md

Co-authored-by: Malte Kliemann <[email protected]>

* Move macro to zeitgeist-macros and add examples

---------

Co-authored-by: Malte Kliemann <[email protected]>

* Merge Old* and New* asset variants

* Partially integrate lazy migration routing

* Integrate lazy migration routing

* Fix ExistentialDeposit mapping & Satisfy Clippy

* Remove primitives/macros

* Filter certain asset destroy calls (they're managed)

* Integrate asset destruction into prediction markets

* Add BaseAssetClass

* Update prediction-markets & market-commons

* Update authorized

* Update liquidity-mining

* Update simple-disputes

* Update parimutuels (wip)

* Move functions into market struct and properly delete assets

* Add ParimutuelAssetClass

* Add parimutuel.rs

* Remove duplicate code

* Adjust asset type and managed destroy after refund in parimutuels

* Add MarketTransitionApi

This will allow prediction-markets to signal other pallets that state transitions happened

* Add MarketTransitionApi

* Implement MarketTransitionApi for Parimutuels

* Partially implement asset creation/destruction in parimutuels

* Add all asset creation / destruction tests to parimutuels

* Adjust Court

* Update global-disputes

* Update swaps

* Update neo-swaps

* Integrate OnStateTransition hooks into prediction-markets

* Use proper state transition weights

* Make cargo check succeed

* Partially update orderbook

* Update orderbook

* Update orderbook

* Finalize orderbook update

* Improve style

* Add XcmAssetClass

* Add sub asset classes, extend Market, provide market transition trait

* Update asset-router

* Integrate asset system into prediction-market, market-commons and parimutuel

- Market commons now uses the BaseAsset class for base assets
- Prediction markets now creates and destroys MarketAssets only if market.is_redeemable
- Prediction markets now calls OnStateTransition when transitioning it's state
- Parimutuel markets now implements StateTransitionApi
- Parimutuel markets now properly creates and destroys ParimutuelShares

* Implement support for non-reservable assets in orderbook

* Integrate new asset system into Battery Station XCM

* Integrate new asset system into Zeitgeist XCM

* Implement Unbalanced for asset-router

* Enable fee payment for campaign assets

* Fix conditional import

* Format

* Fix unfillable / unremovable order bug

Co-authored-by: Chralt <[email protected]>

* Add tests for Unbalanced impl

* Implement fee charging tests

* Undo unnecessray change

* Undo last commit

* Better case-distinction and explicitly drop campaign asset fee

Co-authored-by: Chralt <[email protected]>

* Use is_foreign_asset()

* Avoid panic

* Format

* Fix CI

---------

Signed-off-by: Harald Heckmann <[email protected]>
Co-authored-by: Chralt <[email protected]>
Co-authored-by: Malte Kliemann <[email protected]>
Co-authored-by: Chralt98 <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* Merge release v0.4.2 (#1174)

* Update versions (#1168)

* Add updated weights from reference machine (#1169)

* Add license header

Co-authored-by: Chralt <[email protected]>

---------

Co-authored-by: Chralt <[email protected]>

* Remove migrations (#1180)

* Filter admin functions for main-net (#1190)

filter admin functions for main-net

* Add debug assertions for slashes and reserves (#1188)

* add debug assertions for missing slashes

* place debug_assert for unreserves

* Add some verify checks to court (#1187)

add some verify checks to court

* Bypass battery stations contracts call filter for court, parimutuel, order book markets (#1185)

update contracts call filter

* Fix failing court benchmark (#1191)

* fix court assertion for resolve_at

* remove unnecessary variable

* mirror mock and actual impl for DisputeResolution

* Implement trusted market close (#1184)

* implement trusted market close

* remove unnecessary benchmark helper function

* Update zrml/prediction-markets/src/lib.rs

Co-authored-by: Malte Kliemann <[email protected]>

* remove unnecessary function

* check market end

* check auto close

* add invalid market status test

---------

Co-authored-by: Malte Kliemann <[email protected]>

* Modify court events for indexer (#1182)

* modify events for indexer

* gracefully handle panicers

* handle binary search by key error

* improve style

* Ensure MinBetSize after fee (#1193)

* handle own existential deposit errors

* use require_transactional

* correct benchmark and test min bet size amounts

* Replace fixed math operations with traited versions (#1149)

* Replace `bmul` and `bdiv` with traited versions

* Restructure directories

* Replace `saturating_*` from neo-swaps

* Fix formatting

* Restructure zrml-swaps math

* Implement and test `b*`

* Fix formatting

* Use new math in orderbook-v1

* Replace checked multiplication with new math

* Use correct rounding in neo-swaps

* Add docs

* Update licenses

* Remove `fixed` module from `primitives`

* Fix formatting

* Update primitives/src/math/fixed.rs

Co-authored-by: Harald Heckmann <[email protected]>

---------

Co-authored-by: Harald Heckmann <[email protected]>

* Add env_logger and add force-debug feature (#1205)

* add env_logger and add force-debug feature

* taplo fmt, fix copyrights

* Update zrml/styx/src/mock.rs

Co-authored-by: Malte Kliemann <[email protected]>

* Update zrml/rikiddo/src/mock.rs

Co-authored-by: Malte Kliemann <[email protected]>

* update comment to clarify logging

---------

Co-authored-by: Malte Kliemann <[email protected]>

* Inflate defensively (#1195)

* inflate defensively

* add tests

* Update zrml/court/src/tests.rs

Co-authored-by: Malte Kliemann <[email protected]>

* fix test

* fix test name

---------

Co-authored-by: Malte Kliemann <[email protected]>

* Maintain order book (#1183)

* integrate market creator fees into orderbook

* edit tests

* update tests

* modify tests

* avoid order side

* Update primitives/src/traits/distribute_fees.rs

Co-authored-by: Malte Kliemann <[email protected]>

* remove asset and account from get_fee api call

* take base asset fees from fill_order

* adjust orderbook for taking fees in fill_order

* adjust without order side for fill_order

* adapt to avoid concept of order side

* adapt benchmarks, tests and weights, restructure

* use DispatchResult

* remove unused import

* do not adjust maker amount for place_order

* correct fuzz of orderbook

* check if maker_amount is zero

* fix order book name in benchmarks

* use remove instead of cancel order book

* correct order book test names

* update READMEs

* fmt

* add tests

* use minimum balance as min order size

* Update zrml/orderbook/README.md

Co-authored-by: Malte Kliemann <[email protected]>

* Update zrml/orderbook/README.md

Co-authored-by: Malte Kliemann <[email protected]>

* Apply suggestions from code review

Co-authored-by: Malte Kliemann <[email protected]>

* prettier orderbook md

* remove comments from benchmarks

* fix tests and benchmarks readibility

* use order book instead of orderbook

* clarify error message

* clarify comments

* rename is to ensure

* error for repatriate

* fix unnecessary clone

* correct mocks behaviour

* improve test

* improve test of near full fill error

* use turbofish syntax

* add filled_maker_amount to event

* split tests

* combine two functions, add docs

* abandon get_fees

* fix order book tests and mock

* remove check for impossible behaviour

* fix toml and benchs

* prepare migration

* add migration for order structure

* return zero fees if transfer fails

* delete unnecessary assert

* fix naming

* fix naming the second

* fix maker fill description

* add scoring rule check to remove order

* fix post_upgrade

* fix terminology

* Update zrml/orderbook/src/migrations.rs

Co-authored-by: Malte Kliemann <[email protected]>

* use storage root check in migration test

* Update zrml/orderbook/src/lib.rs

Co-authored-by: Harald Heckmann <[email protected]>

* Update zrml/orderbook/src/lib.rs

Co-authored-by: Harald Heckmann <[email protected]>

* Update zrml/orderbook/src/lib.rs

Co-authored-by: Harald Heckmann <[email protected]>

* delete debug_assert

---------

Co-authored-by: Malte Kliemann <[email protected]>
Co-authored-by: Harald Heckmann <[email protected]>

* Implement AMM 2.0 (#1173)

* Replace `bmul` and `bdiv` with traited versions

* Restructure directories

* Replace `saturating_*` from neo-swaps

* Fix formatting

* Restructure zrml-swaps math

* Implement and test `b*`

* Fix formatting

* Use new math in orderbook-v1

* Replace checked multiplication with new math

* Use correct rounding in neo-swaps

* Add docs

* Update licenses

* Remove `fixed` module from `primitives`

* Fix formatting

* .

* Rewrite math functions

* Remove training wheels

* Fix docs.pdf

* Fix quotes

* Add tests for buying

* Add tests for selling and improve error names

* Update docs

* Check adjusted amount in for numerical bounds

* Remove unused implementations

* Adjust docs

* Add stress test exploring various scenarios

* Add swap fees to stress test

* Add underscore separators

* Clean up

* Benchmark `buy` as function of `asset_count`

* Update benchmarks

* Clippy fix

* Fix benchmark tests

* Update benchmarks of zrml-prediction-markets

* Fix broken comment

* Add comment explaining benchmark spot prices

* Use clearer constants for `amount_in` in tests

* Update zrml/neo-swaps/src/traits/pool_operations.rs

Co-authored-by: Chralt <[email protected]>

* Fix botched merge

* Fix merge

* Update benchmarks

* Update zrml/neo-swaps/docs/docs.tex

Co-authored-by: Harald Heckmann <[email protected]>

* Apply suggestions from code review

Co-authored-by: Harald Heckmann <[email protected]>

* Rename `Fixed` and clean up

* Hotfix exponential function and extend tests

* Complete math test suite

* Fix broken sentence

* Remove unused imports

* Extend `ln` test cases

* Merge & fix formatting

---------

Co-authored-by: Chralt <[email protected]>
Co-authored-by: Harald Heckmann <[email protected]>

* Implement Liquidity Tree (#1178)

* Replace `bmul` and `bdiv` with traited versions

* Restructure directories

* Replace `saturating_*` from neo-swaps

* Fix formatting

* Restructure zrml-swaps math

* Implement and test `b*`

* Fix formatting

* Use new math in orderbook-v1

* Replace checked multiplication with new math

* Use correct rounding in neo-swaps

* Add docs

* Update licenses

* Remove `fixed` module from `primitives`

* Fix formatting

* Add liquidity tree draft

* Fix compiler error in draft

* Clean up `propagate_fees`

* Add docs

* Reorganize

* Clean up, add max iterations

* Remove migrations

* Prepare switch to bounded vector

* Use `BoundedVec`

* Use bounded `BTreeMap` and insert `LiquidityTree` into neo-swaps

* Resolve TODO

* Clean up tests

* Add migration and fix clippy errors

* Make tree depth a generic

* Make tree depth a config parameter

* Update runtime complexities

* Add benchmarking utilities

* Fix runtime complexity for `deploy_pool`

* Add missing lazy propagation

* Fix comment

* Fix error type

* Add `join` benchmarking and fix a bug in `LiquidityTree`

* Clean up benchmarks

* Fix clippy issues

* Remove unnecessary type hint

* Fix bugs in liquidity tree

* Fix comments

* Some fixes in benchmarks

* Implement `BenchmarkHelper`

* Update benchmarks to use the LT

* Clean up and format

* Add testing framework for liquidity trees

* Add first extensive test and fix a bug

* Add more tests

* Clean up test

* Add news tests and use better numerics for ratio calculations

* Make docs more explicit

* Add tests for `exit`

* Add tests for deposit fees

* Add tests for getters

* Clean up tests some more

* Finalize liquidity tree tests

* Clean up comments

* Introduce exit fees

* Rewrite `exit_works`

* Fix liquidity parameter calculation

* Make test a bit more complex

* Test liquidity shares

* Clean up tests

* Update test for destruction

* Enhance `exit_destroys_pool` test

* More cleanup

* Add test for full tree

* Add tests for `join`

* Improve test

* Test withdrawal

* Clean up the test

* Add test for noop

* Add minimum relative liquidity

* Verify that buys deduct the correct amount of fees

* Add last tests

* Add notes about the liquidity tree

* Fix benchmarks

* Fix clippy errors

* Fix benchmarks

* Do more work on benchmarks

* Fix benchmarks, deduce max tree depth

* Remove already solved TODO

* Document macros

* Remove TODO (not a good idea to edit LaTeX docs now)

* Fix `bmul_bdiv`

* Make `bmul_bdiv_*` not implemented

* Double-check that there's a non-zero check for `ratio`

* Fix formatting

* Fix taplo formatting

* Remove TODO

* Remove TODOs and fix documents

* Update primitives/src/math/fixed.rs

Co-authored-by: Chralt <[email protected]>

* Mark `SoloLp` as deprecated

* Update zrml/neo-swaps/README.md

Co-authored-by: Chralt <[email protected]>

* Make `bmul_bdiv` a little more idiomatic

* Update zrml/neo-swaps/README.md

Co-authored-by: Chralt <[email protected]>

* Update zrml/neo-swaps/README.md

Co-authored-by: Chralt <[email protected]>

* Update zrml/neo-swaps/README.md

Co-authored-by: Chralt <[email protected]>

* Update zrml/neo-swaps/README.md

Co-authored-by: Chralt <[email protected]>

* Update zrml/neo-swaps/README.md

Co-authored-by: Chralt <[email protected]>

* Update zrml/neo-swaps/README.md

Co-authored-by: Chralt <[email protected]>

* Update zrml/neo-swaps/README.md

Co-authored-by: Chralt <[email protected]>

* Rewrite and format `README.md`

* Fix comment about existential deposit

* Remove FIXME

* Add a check against misconfiguration of the pallet

* Fix field docstrings

* Add comment about `assert_ok_with_transaction`

* Update zrml/neo-swaps/src/mock.rs

Co-authored-by: Chralt <[email protected]>

* Format code

* Fix comment

* Prettify extrinsic calls in benchmarks

* Improve code quality of `assert_pool_state!`

* Extend comment about order of abandoned nodes

* Clarify the meaning of "leaf" in `is_leaf`

* Rename `index_maybe` to `opt_index`

* Add unexpected storage overflow error for bounded objects

* Rename `UnclaimedFees` to `UnwithdrawnFees`

* Fix documentation

* Use enum to signal update direction in `update_descendant_stake`

* Add verification to `join_*` benchmarks

* Improve documentation

* Use builtin log

* Remove illegal token from `README.md`

* Update zrml/neo-swaps/src/types/liquidity_tree.rs

Co-authored-by: Chralt <[email protected]>

* Fix unintentional doctest

* Improve `mutate_children`

* Add helpful comment

* Update zrml/neo-swaps/src/types/liquidity_tree.rs

Co-authored-by: Chralt <[email protected]>

* Fix migration

* Fix balances in parachain mock

* use PartialEqNoBound and CloneNoBound for tree

* Fix formatting

* Make `debug_assert!` more clear

* Redesign node assignment

* Clean up comments

* Add some storage overflow errors

* Introduce `LiquidityTreeChildIndices`

* Remove outdated docs

* Rename `update_descendant_stake`

* Remove `Default` usage

* Make liquidity tree types `pub(crate)` where possible

* Make all fields of `Node` only `pub(crate)`

* Make `Node<T>` an associated type of `LiquidityTreeHelper`

* Update zrml/neo-swaps/src/lib.rs

Co-authored-by: Harald Heckmann <[email protected]>

* Fix comment

* Update zrml/neo-swaps/src/types/liquidity_tree.rs

Co-authored-by: Harald Heckmann <[email protected]>

* Fix tests

* Prettify `path_to_node`

* Add max iterations to `path_to_node`

* Add test for complex liquidity tree interactions

* Improve documentation of `LiquidityTreeChildIndices`

* Reorganize crate structure

* Update weights and fix formatting

---------

Co-authored-by: Chralt <[email protected]>
Co-authored-by: Chralt98 <[email protected]>
Co-authored-by: Harald Heckmann <[email protected]>

* Improve XCM fee handling (#1225)

* Fix padding of foreign fees in Zeitgeist runtime

* Fix padding of foreign fees in Battery Station runtime

* Format

* Update copyright

* Use adjusted_balance function

* Remove court and global disputes from call filter for the main-net (#1226)

* remove from call filter

* update copyright

* Sunset old AMMs and their pools (#1197)

* Replace `bmul` and `bdiv` with traited versions

* Restructure directories

* Replace `saturating_*` from neo-swaps

* Fix formatting

* Restructure zrml-swaps math

* Implement and test `b*`

* Fix formatting

* Use new math in orderbook-v1

* Replace checked multiplication with new math

* Use correct rounding in neo-swaps

* Add docs

* Update licenses

* Remove `fixed` module from `primitives`

* Fix formatting

* .

* Rewrite math functions

* Remove training wheels

* Fix docs.pdf

* Fix quotes

* Add tests for buying

* Add tests for selling and improve error names

* Update docs

* Check adjusted amount in for numerical bounds

* Remove unused implementations

* Adjust docs

* Add stress test exploring various scenarios

* Add swap fees to stress test

* Add underscore separators

* Clean up

* Benchmark `buy` as function of `asset_count`

* Update benchmarks

* Clippy fix

* Fix benchmark tests

* Update benchmarks of zrml-prediction-markets

* Fix broken comment

* Add comment explaining benchmark spot prices

* Use clearer constants for `amount_in` in tests

* Update zrml/neo-swaps/src/traits/pool_operations.rs

Co-authored-by: Chralt <[email protected]>

* Fix botched merge

* Fix merge

* Update benchmarks

* Remove `pool_*_subsidy`

* Remove `distribute_pool_share_rewards`

* Remove `end_subsidy_phase`

* Remove `destroy_pool_in_subsidy_phase`

* Remove `MinSubsidy*`

* Remove `SubsidyProviders`

* Remove `start_subsidy`

* Rewrite `create_pool`

* Rewrite `swap_exact_amount_in`

* Rewrite `swap_exact_amount_out`

* Rewrite utility functions

* Remove Rikiddo from weight calculation

* Remove Rikiddo from zrml-swaps

* Remove unused errors

* Remove `ScoringRule::Rikiddo...`

* Remove `*SubsidyPeriod`

* Remove Rikiddo-related storage and events

* Remove automatic opening of pools

* Remove `open_pool` from prediction-markets

* Remove `Swaps::close_pool` from prediction-markets

* Remove `clean_up_pool` from prediction-markets

* Remove `clean_up_pool` from `Swaps` trait

* Remove CPMM deployment from prediction-markets

* Remove automatic arbitrage

* Move `market_account` back to prediction-markets

* Remove unused market states

* Fix fuzz tests

* Implement market migration

* Minor changes

* Fix migration behavior

* Remove creator fees from swaps

* Fix try-runtime

* Fix clippy issues

* Remove `LiquidityMining` from swaps

* Fix `get_spot_prices`

* Take first step to remove `MarketCommons` from swaps

* Remove `MarketCommons` from swaps

* Rewrite `PoolStatus`

* Move `Pool*` to swaps

* Use `Bounded*` types in `Pool`

* Finish swaps migration

* Add missing files

* Fix formatting and clippy errors

* Remove `pool_status.rs`

* Ignore doctests

* Fix fuzz tests

* Add prediciton-markets migration

* Test prediction-markets migration

* Finish tests of the market-commons migration

* Add migrations to runtime and fix various errors

* Clean up

* Clean up

* Format code

* Fix pool migration behavior

* Remove `MarketId` from swaps

* Fix formatting

* Fix formatting

* Remove `CPMM` and allow other scoring rules on Battery Station

* Update macros/Cargo.toml

Co-authored-by: Harald Heckmann <[email protected]>

* Update primitives/src/traits/zeitgeist_asset.rs

Co-authored-by: Harald Heckmann <[email protected]>

* Update zrml/market-commons/src/migrations.rs

Co-authored-by: Harald Heckmann <[email protected]>

* Update zrml/swaps/src/migrations.rs

Co-authored-by: Harald Heckmann <[email protected]>

* Update zrml/swaps/src/migrations.rs

Co-authored-by: Harald Heckmann <[email protected]>

* Update zrml/prediction-markets/src/migrations.rs

Co-authored-by: Harald Heckmann <[email protected]>

* Update zrml/market-commons/src/migrations.rs

Co-authored-by: Harald Heckmann <[email protected]>

* Clean up TODOs/FIXMEs

* Update changelog

* Make more changes to changelog

* Clear zrml-swaps storage

* Remove cfg-if dependency

* Fix formatting

* Trigger CI

* Update copyright notices

* Update docs/changelog_for_devs.md

Co-authored-by: Chralt <[email protected]>

* Make benchmark helper only available if feature flags are set

* Remove `ZeitgeistAsset` trait

* Remove preliminary benchmarks with more steps

* Format code

* Fix copyright notice

---------

Co-authored-by: Chralt <[email protected]>
Co-authored-by: Harald Heckmann <[email protected]>

* Merge release v0.4.3 (#1211)

* Use hotfixed `exp`

* Reorganize tests

* Fix formatting

* Bump versions to v0.4.3

* Update spec versions

* Add missing version bumps

* Format

* Update licenses

---------

Co-authored-by: Malte Kliemann <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Reduce `market_status_manager` aka `on_initialize` iterations (#1160)

* remove dangerous loop

* limit iterations of dangerous loop

* reintegrate last time frame storage item

* wip

* benchmark manual close and open

* fix stall test

* emit event and log for recovery time frame

* add tests

* add trailing comma

* Update zrml/prediction-markets/src/benchmarks.rs

Co-authored-by: Malte Kliemann <[email protected]>

* change should_be_closed condition

* Apply suggestions from code review

Co-authored-by: Malte Kliemann <[email protected]>

* change recursion limit line

* regard period not started yet

* add error tests

* correct benchmarks

* fix after merge and clippy

* use turbofish, add test checks

* remove manually open broken market

* correct errors and call index

* correct wrong error name

* correct position of call index

* correct error position

* update copyrights

* fix after merge

* Update zrml/prediction-markets/src/benchmarks.rs

Co-authored-by: Malte Kliemann <[email protected]>

* set market end for manual close

---------

Co-authored-by: Malte Kliemann <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Update style guide to streamline reviews (#1228)

* Reduce benchmark runs of Zeitgeist pallets (#1233)

Reduce bencharm runs of Zeitgeist pallets

Running benchmarks of Zeitgeist pallets on the Zeitgeist reference machine currently takes four days.

* Set inflation to more than zero for a full benchmark of handle_inflation (#1234)

Update benchmarks.rs

* Implement `force_pool_exit` and disable other zrml-swaps functions (#1235)

* Abstract `pool_exit` business logic into `do_*` function

* Add `force_pool_exit` and test

* Install call filters for zrml-swaps

* Implement and test `bmul_bdiv_*`; use in zrml-orderbook and zrml-parimutuel  (#1223)

* Implement and test `bmul_bdiv_*`

* Use `bmul_bdiv_*` in pallets

* Update copyright

* Utilize Merigify's Merge Queue (#1243)

ci(Mergify): configuration update

Signed-off-by: Harald Heckmann <[email protected]>

* Set in-progress when needed and rerun CI in merge queue (#1244)

* Set in-progress when need and rerun CI in merge queue

---------

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Avoid mergify dequeue (#1245)

* Avoid mergify deque

* Set review needed only shortly after Mergify commit

* Extend neo-swaps tests and clean up `math.rs` (#1238)

* Add tests to neo-swaps that check large buy/sell amounts at high liquidity

* Use new implementation of HydraDX's `exp`

* Add failure tests to neo-swaps's `math.rs`

* Fix formatting

* Update copyright notices

---------

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Remove migrations and dead code (#1241)

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Reorganize prediction-market tests (#1242)

* Rename `tests.rs` to `old_tests.rs` to avoid naming conflicts

* Move `buy_complete_set` tests to new tests

* Clean up `buy_complete_set` tests

* Extract `sell_complete_set_tests`

* Clean up `sell_complete_set` tests

* Extract `admin_move_market_to_closed` tests

* Extract `create_market` tests

* Extract `admin_move_market_to_resolved` tests

* Remove superfluous test

* Extract more `create_market` tests

* Extract `approve_market` tests

* Extract `edit_market` tests

* Extract `edit_market` tests

* Add `on_market_close` tests

* Extract `manually_close_market` tests

* Extract `on_initialize` tests

* Extract `report` tests

* Extract `dispute` tests

* Extract `schedule_early_close` tests

* Extract `dispute_early_close` tests

* Extract `reject_early_close` tests

* Extract more `dispute` tests

* Extract `close_trusted_market` tests

* Extract `start_global_dispute` tests

* Extract `redeem_shares` tests and add missing tests

* Extract `on_resolution` and additional `redeem_shares` tests

* Move integration tests into new test module

* Automatically set block to `1` at the start of test

* Replace `crate::Config` with `Config`

* Access constant through `Config`

* Add TODOs for missing execution paths

* Fix formatting

---------

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Improve fee payment management (#1246)

* Improve fee payment management

* Make code compileable

* Do not remit TX fees for redeem_shares

Co-authored-by: Malte Kliemann <[email protected]>

---------

Co-authored-by: Malte Kliemann <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Fix Rust and Discord badge (#1247)

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Fix neo-swaps doc strings (#1250)

* Improve `SellExecuted` documentation

* Clean up math in comments and doc strings

* Fix formatting

* Adjust style guide (loops) and add unreachable macro (#1252)

* Adjust style guide (loops) and add unreachable macro

* Add macros module to lib.rs

* Update docs/STYLE_GUIDE.md

Co-authored-by: Malte Kliemann <[email protected]>

* Move macro to zeitgeist-macros and add examples

---------

Co-authored-by: Malte Kliemann <[email protected]>

* Merge Old* and New* asset variants

* Partially integrate lazy migration routing

* Integrate lazy migration routing

* Fix ExistentialDeposit mapping & Satisfy Clippy

* Integrate Moonwall (#1192)

* modify integration tests

* wip

* correct typescript to be utilized by zndsl

* integrate moonwall

* use faster pnpm package manager

* get moonwall network running

* add scripts folder

* add moonwall readme

* update readme

* add runtime upgrade integration tests

* update readme

* wip chopticks runtime upgrade test

* prepare chopsticks battery station upgrade test

* add chopsticks and sqlite3

* chopsticks runs locally after python installation

* battery station rt-upgrade works, but not main-net

* fix zeitgeist chopsticks upgrade test

* add zndsl test to workflow

* update integration test workflow

* wip

* update download polkadot

* wip

* wip

* wip

* wip

* wip

* wip

* use artifact storage in github actions

* use release instead of debug

* update ci

* update ci

* update ci

* correct CI

* avoid creating zeitgeist folder

* download to target/release

* add executive permission

* dump chopsticks

* log chopsticks

* increase timeouts for CI workflows

* resolve ws port conflict, add xcm transfer test

* add xcm tests to ci

* fix log print for chopsticks

* use polkadot v1.1.0 for it-tests

* add xcm test to post rt upgrade suite

* correct ci

* manually increase blocks for hydradx

* divide main and test-net it tests

* avoid port conflict for parallel chopsticks jobs

* fix CI and typescript errors

* update ci

* exit cat command in ci

* update CI to stop immediately

* restructure jobs

* update CI to only show logs for failure

* update readme

* update readme

* delete outdated test instruction

* delete unused files

* add license to integration tests

* add copyright

* add copyrights

* add copyrights

* mkdir integration-tests/tmp

* update integration test readme

* Update integration-tests/scripts/download-polkadot.sh

Co-authored-by: Harald Heckmann <[email protected]>

* update gitignore

* update download polkadot comment

* build node for deploy-zombienet script

* remove mkdir

* Update integration-tests/scripts/download-polkadot.sh

Co-authored-by: Harald Heckmann <[email protected]>

* Update integration-tests/scripts/download-polkadot.sh

Co-authored-by: Harald Heckmann <[email protected]>

* Update .github/workflows/integration-tests.yml

Co-authored-by: Harald Heckmann <[email protected]>

* build node in non CI environments

* change integration test execution directory

* remove CI run for this branch

---------

Co-authored-by: Harald Heckmann <[email protected]>

* Use `Balance` instead of `u128` as type for Balancer weights (#1251)

* Replace hard-coded `u128` fo weights with balance types

* Replace modulo operator with `checked_rem_res`

* Update copyright notices

* Revert changes to modulo operations

* Remove primitives/macros

* Filter certain asset destroy calls (they're managed)

* Remove unchecked modulo operations from production (#1254)

* Remove unchecked modulo operations from production

* Update copyright

* Refactor swaps (#1255)

* First pass fixing docs, comments and code style

* Fix typos

* Use `do_*` pattern, fix docs, remove unnecessary clippy exceptions

* Replace `slash` with `withdraw`

* Replace `slash` with `withdraw`

* Remove reference to CPMM from weight function names

* Hard-code `Max*Ratio`

* Clean up, fix formatting

* Fix `pool_exit` behavior

* Remove unnecessary clones

* Clean up events

* Fix `pool_exit` behavior on odd pools and add a test

* Fix test

* Update copyright notices

* Update docs

* Update primitives/src/traits/swaps.rs

Co-authored-by: Harald Heckmann <[email protected]>

* Update primitives/src/traits/swaps.rs

Co-authored-by: Harald Heckmann <[email protected]>

* Remove fixed TODO

* Fix merge

---------

Co-authored-by: Harald Heckmann <[email protected]>

* Integrate asset destruction into prediction markets

* Add BaseAssetClass

* Update prediction-markets & market-commons

* Update authorized

* Update liquidity-mining

* Update simple-disputes

* Update parimutuels (wip)

* Merge release v0.5.0 into main (#1262)

* Update versions (#1227)

* Update weights (#1232)

* Update copyright years

* Revert Court handle_inflation() weight

* Move functions into market struct and properly delete assets

* Add ParimutuelAssetClass

* Add parimutuel.rs

* Remove duplicate code

* Adjust asset type and managed destroy after refund in parimutuels

* Add MarketTransitionApi

This will allow prediction-markets to signal other pallets that state transitions happened

* Add MarketTransitionApi

* Implement MarketTransitionApi for Parimutuels

* Only run copyright CI when merging into `main` (#1263)

* Bring README up to date (#1264)

* Update proxy types (#1259)

* Replace `Swaps` with `NeoSwaps` proxy types

* Add `withdraw_fees` to liquidity-related proxies

* Update toolchain to fix codecov and fuzz errors (#1269)

* Update toolchain

* Fix formatting and linter errors

* Update copyright notices

* Fix copyright notice

* Use GitHub action to free up space (#1271)

* Use GitHub action to freee up space

* Try deleting tool-cache as well

* Add missing free disk calls; don't remove tool-cache

* Remove unused dependencies (#1270)

* License checker: Replace incorrect `push` with `append` (#1268)

Replace incorrect `push` with `append`

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Partially implement asset creation/destruction in parimutuels

* Add all asset creation / destruction tests to parimutuels

* Adjust Court

* Update global-disputes

* Update swaps

* Update neo-swaps

* Integrate OnStateTransition hooks into prediction-markets

* Use proper state transition weights

* Make cargo check succeed

* Partially update orderbook

* Update orderbook

* Update orderbook

* Finalize orderbook update

* Improve style

* Add XcmAssetClass

* Add sub asset classes, extend Market, provide market transition trait

* Update asset-router

* Integrate asset system into prediction-market, market-commons and parimutuel

- Market commons now uses the BaseAsset class for base assets
- Prediction markets now creates and destroys MarketAssets only if market.is_redeemable
- Prediction markets now calls OnStateTransition when transitioning it's state
- Parimutuel markets now implements StateTransitionApi
- Parimutuel markets now properly creates and destroys ParimutuelShares

* Implement support for non-reservable assets in orderbook

* Update Codeowners (#1286)

* Integrate new asset system into Battery Station XCM

* Integrate new asset system into Zeitgeist XCM

* Implement Unbalanced for asset-router

* Enable fee payment for campaign assets

* Fix conditional import

* Format

* Fix unfillable / unremovable order bug

Co-authored-by: Chralt <[email protected]>

* Add tests for Unbalanced impl

* Implement fee charging tests

* Undo unnecessray change

* Undo last commit

* Add previous stake information after rejoin (#1285)

* update joined_at after rejoin

* Add additional fields to CourtPoolItem struct, refactor

* complete tests

* add migration

* revert benchmark verify check

* remove migration comment

* satisfy clippy

* implement different approach

* adopt uneligble stake and index info

* update benchmark

* apply review comments

* correct current period index calculation

* apply review suggestions

* Update zrml/court/src/tests.rs

Co-authored-by: Harald Heckmann <[email protected]>

* shorten test

* add try-runtime checks

---------

Co-authored-by: Harald Heckmann <[email protected]>

* Update asset-router readme

* Extended changelog for devs

* Remove deprecated ExistentialDeposits type

---------

Signed-off-by: Harald Heckmann <[email protected]>
Co-authored-by: Chralt <[email protected]>
Co-authored-by: Malte Kliemann <[email protected]>
Co-authored-by: Chralt98 <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
@sea212 sea212 added the s:review-needed The pull request requires reviews label Apr 2, 2024
@sea212 sea212 added this to the v0.5.1 milestone Apr 2, 2024
@sea212 sea212 self-assigned this Apr 2, 2024
@mergify
Copy link
Contributor

mergify bot commented Apr 2, 2024

This pull request is now in conflicts. Could you fix it @sea212? 🙏

@mergify mergify bot added s:revision-needed The pull requests must be revised and removed s:review-needed The pull request requires reviews labels Apr 2, 2024
@sea212 sea212 added s:review-needed The pull request requires reviews and removed s:revision-needed The pull requests must be revised labels Apr 2, 2024
@mergify mergify bot added s:in-progress The pull requests is currently being worked on and removed s:review-needed The pull request requires reviews labels Apr 2, 2024
@sea212 sea212 added s:review-needed The pull request requires reviews and removed s:in-progress The pull requests is currently being worked on labels Apr 2, 2024
@sea212 sea212 removed the request for review from yornaath April 2, 2024 11:52
@sea212 sea212 merged commit a956877 into main Apr 2, 2024
@sea212 sea212 deleted the sea212-new-asset-system branch April 2, 2024 20:38
@sea212 sea212 added s:accepted This pull request is ready for merge i:spec-changed ⚠️ Implies change in spec version i:transactions-changed ⚠️ Implies change in transaction version and removed s:review-needed The pull request requires reviews labels Apr 2, 2024
maltekliemann added a commit that referenced this pull request Jun 6, 2024
mergify bot pushed a commit that referenced this pull request Jun 24, 2024
* Revert "New Asset System (#1295)"

This reverts commit a956877.

* Fix formatting

* Update copyright

* Remove pallet-assets dependency

* Fix fuzz tests
mergify bot added a commit that referenced this pull request Aug 11, 2024
* Revert "New Asset System (#1295)" (#1338)

* Revert "New Asset System (#1295)"

This reverts commit a956877.

* Fix formatting

* Update copyright

* Remove pallet-assets dependency

* Fix fuzz tests

* Merge `main` into `develop` (#1345)

* Update dependencies to Polkadot v1.1.0 (#1331)

* Update dependencies (#1319)

* Update dependencies to polkadot-v1.1.0

* Format code

* Remove duplicate dependencies

* Update zrml-asset-router (#1321)

* Update zrml-primitives

* Partially update asset-router

* Finalize logic adjustments in asset-router

* Make asset-router tests compilable

* Correct Inspect routing for market assets in Currencies

* Directly invoke Inspect API for Currencies

* Add tests for remaining Unbalances functions

* Update remaining Zeitgeist pallets (#1322)

* Update zrml-asset-router (#1321)

* Upgrade zrml-market-commons

* Upgrade zrml-authorized && use MockBlock instead of MockBlockU32

* Upgrade zrml-court

* Upgrade zrml-global-disputes

* Upgrade liquidity mining

* Upgrade zrml-rikiddo

* Upgrade zrml-simple-disputes

* Upgrade zrml-styx

* Upgrade zrml-orderbook

* Upgrade zrml-parimutuel

* Upgrade zrml-swaps

* Upgrade zrml-prediction-markets

* Upgrade zrml-neo-swaps

* Upgrade zrml-hybrid-router

* Update license headers

* Update runtime (#1323)

* Update weight files & Runtime enum

* Use workspace metadata

* Always use serde serialization for asset types

* Make battery station standalone runtime compilable

* Make benchmark and try-runtime feature compilable

* Make BS build with all features

* Make parachain tests compile

* Partially fix xcm tests

* Use safe xcm version 2

* Update Zeitgeist runtime (except xcm tests)

* Format code

* Remove deprecated comment

* Integrate new xcm-emulator (#1324)

* Integrate new xcm-emulator environment

* Utilize new xcm-emulator interfaces

* Spawn relay-para network using patched xcm-emulator

* Use proper collator genesis config

* Fix Rococo tests

* Finalize Battery Station XCM tests

* Finalize Zeitgeist XCM tests

* Update client (#1327)

* Fix rpc and work on client update

* Finalize standalone client

* Update parachain client

* Use same try-runtime subcommand in every case

* Update node/src/cli.rs

Co-authored-by: Malte Kliemann <[email protected]>

* Update try-runtime* Makefile targets

---------

Co-authored-by: Malte Kliemann <[email protected]>

* Make CI succeed and add migrations (#1329)

* Fix rpc and work on client update

* Finalize standalone client

* Update parachain client

* Use same try-runtime subcommand in every case

* Satisfy Clippy

* Fix benchmarks

* Add migrations

* Satisfy Clippy

* Update moonkit depedencies

* Free disk space more aggressively

---------

Co-authored-by: Malte Kliemann <[email protected]>

* Update spec version, try-runtime Makefile

* Fix copyright notices

* Fix broken chain state (#1336)

* Add `StorageVersion` fix and contrats fix migrations

* Don't set pallet-balances' storage version

* Remove migrations from pallet-contracts config

* Clear storage tries of contracts

* Fix migration and info logs in try-runtime

* Fix licenses and comments

* Fix formatting

---------

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

---------

Co-authored-by: Harald Heckmann <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Merge

* Fix benchmark

* Fix compiler error

* Fix tests and imports

* Fix imports (again...)

* Fix orderbook benchmarks

* Fix fuzz tests

* Fix formatting

* Fix orderbook fuzz

---------

Co-authored-by: Harald Heckmann <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Update versions to v0.5.3

* Fix Makefile

* Change endpoint of integration tests

* Fix copyright notices

* Run benchmarks

---------

Co-authored-by: Harald Heckmann <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Your Name <[email protected]>
mergify bot added a commit that referenced this pull request Aug 12, 2024
* Remove structs mentioned under TODO(#986) (#1342)

* Remove structs under TODO(#968)

* Remove OldOutcomeInfo and related structs

* Satisfy check-license

* Include buy/sell hybrid-router calls in proxy filters (#1343)

* Include buy/sell calls in proxy filters

* Add hybrid-router calls to HandleAssets

---------

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Remove zrml-liquidity-mining (#1341)

* Remove zrml-liquidity-mining

* Fix formatting

* Fix copyright notices

* Remove zrml-liquidity-mining from benchmarks script

---------

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Update style guide (#1339)

* Be more strict with feature branch size

* Clarify our workflow

* Fix formatting

---------

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Revert "New Asset System (#1295)" (#1338)

* Revert "New Asset System (#1295)"

This reverts commit a956877.

* Fix formatting

* Update copyright

* Remove pallet-assets dependency

* Fix fuzz tests

* Remove zrml-rikiddo (#1340)

* Remove zrml-rikiddo

* Remove zrml-rikiddo from README

* Remove remnants of zrml-rikiddo

* Add note to changelog

* Remove Rikiddo constants from fuzz script

* Remove code owners

---------

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Remove zrml-simple-disputes and migrate markets (#1344)

* Remove zrml-simple-disputes and migrate markets

* Fix formatting

* Minor improvement

* Fix redundant match guard

* Remove unused pallet constant

* Fix formatting

* Merge `main` into `develop` (#1345)

* Update dependencies to Polkadot v1.1.0 (#1331)

* Update dependencies (#1319)

* Update dependencies to polkadot-v1.1.0

* Format code

* Remove duplicate dependencies

* Update zrml-asset-router (#1321)

* Update zrml-primitives

* Partially update asset-router

* Finalize logic adjustments in asset-router

* Make asset-router tests compilable

* Correct Inspect routing for market assets in Currencies

* Directly invoke Inspect API for Currencies

* Add tests for remaining Unbalances functions

* Update remaining Zeitgeist pallets (#1322)

* Update zrml-asset-router (#1321)

* Upgrade zrml-market-commons

* Upgrade zrml-authorized && use MockBlock instead of MockBlockU32

* Upgrade zrml-court

* Upgrade zrml-global-disputes

* Upgrade liquidity mining

* Upgrade zrml-rikiddo

* Upgrade zrml-simple-disputes

* Upgrade zrml-styx

* Upgrade zrml-orderbook

* Upgrade zrml-parimutuel

* Upgrade zrml-swaps

* Upgrade zrml-prediction-markets

* Upgrade zrml-neo-swaps

* Upgrade zrml-hybrid-router

* Update license headers

* Update runtime (#1323)

* Update weight files & Runtime enum

* Use workspace metadata

* Always use serde serialization for asset types

* Make battery station standalone runtime compilable

* Make benchmark and try-runtime feature compilable

* Make BS build with all features

* Make parachain tests compile

* Partially fix xcm tests

* Use safe xcm version 2

* Update Zeitgeist runtime (except xcm tests)

* Format code

* Remove deprecated comment

* Integrate new xcm-emulator (#1324)

* Integrate new xcm-emulator environment

* Utilize new xcm-emulator interfaces

* Spawn relay-para network using patched xcm-emulator

* Use proper collator genesis config

* Fix Rococo tests

* Finalize Battery Station XCM tests

* Finalize Zeitgeist XCM tests

* Update client (#1327)

* Fix rpc and work on client update

* Finalize standalone client

* Update parachain client

* Use same try-runtime subcommand in every case

* Update node/src/cli.rs

Co-authored-by: Malte Kliemann <[email protected]>

* Update try-runtime* Makefile targets

---------

Co-authored-by: Malte Kliemann <[email protected]>

* Make CI succeed and add migrations (#1329)

* Fix rpc and work on client update

* Finalize standalone client

* Update parachain client

* Use same try-runtime subcommand in every case

* Satisfy Clippy

* Fix benchmarks

* Add migrations

* Satisfy Clippy

* Update moonkit depedencies

* Free disk space more aggressively

---------

Co-authored-by: Malte Kliemann <[email protected]>

* Update spec version, try-runtime Makefile

* Fix copyright notices

* Fix broken chain state (#1336)

* Add `StorageVersion` fix and contrats fix migrations

* Don't set pallet-balances' storage version

* Remove migrations from pallet-contracts config

* Clear storage tries of contracts

* Fix migration and info logs in try-runtime

* Fix licenses and comments

* Fix formatting

---------

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

---------

Co-authored-by: Harald Heckmann <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Merge

* Fix benchmark

* Fix compiler error

* Fix tests and imports

* Fix imports (again...)

* Fix orderbook benchmarks

* Fix fuzz tests

* Fix formatting

* Fix orderbook fuzz

---------

Co-authored-by: Harald Heckmann <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Merge develop into develop-v0.5.4

* Update versions to v0.5.3

---------

Co-authored-by: Nikhil Saboo <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Harald Heckmann <[email protected]>
maltekliemann added a commit that referenced this pull request Sep 13, 2024
* Revert "New Asset System (#1295)" (#1338)

* Revert "New Asset System (#1295)"

This reverts commit a956877.

* Fix formatting

* Update copyright

* Remove pallet-assets dependency

* Fix fuzz tests

* Merge `main` into `develop` (#1345)

* Update dependencies to Polkadot v1.1.0 (#1331)

* Update dependencies (#1319)

* Update dependencies to polkadot-v1.1.0

* Format code

* Remove duplicate dependencies

* Update zrml-asset-router (#1321)

* Update zrml-primitives

* Partially update asset-router

* Finalize logic adjustments in asset-router

* Make asset-router tests compilable

* Correct Inspect routing for market assets in Currencies

* Directly invoke Inspect API for Currencies

* Add tests for remaining Unbalances functions

* Update remaining Zeitgeist pallets (#1322)

* Update zrml-asset-router (#1321)

* Upgrade zrml-market-commons

* Upgrade zrml-authorized && use MockBlock instead of MockBlockU32

* Upgrade zrml-court

* Upgrade zrml-global-disputes

* Upgrade liquidity mining

* Upgrade zrml-rikiddo

* Upgrade zrml-simple-disputes

* Upgrade zrml-styx

* Upgrade zrml-orderbook

* Upgrade zrml-parimutuel

* Upgrade zrml-swaps

* Upgrade zrml-prediction-markets

* Upgrade zrml-neo-swaps

* Upgrade zrml-hybrid-router

* Update license headers

* Update runtime (#1323)

* Update weight files & Runtime enum

* Use workspace metadata

* Always use serde serialization for asset types

* Make battery station standalone runtime compilable

* Make benchmark and try-runtime feature compilable

* Make BS build with all features

* Make parachain tests compile

* Partially fix xcm tests

* Use safe xcm version 2

* Update Zeitgeist runtime (except xcm tests)

* Format code

* Remove deprecated comment

* Integrate new xcm-emulator (#1324)

* Integrate new xcm-emulator environment

* Utilize new xcm-emulator interfaces

* Spawn relay-para network using patched xcm-emulator

* Use proper collator genesis config

* Fix Rococo tests

* Finalize Battery Station XCM tests

* Finalize Zeitgeist XCM tests

* Update client (#1327)

* Fix rpc and work on client update

* Finalize standalone client

* Update parachain client

* Use same try-runtime subcommand in every case

* Update node/src/cli.rs

Co-authored-by: Malte Kliemann <[email protected]>

* Update try-runtime* Makefile targets

---------

Co-authored-by: Malte Kliemann <[email protected]>

* Make CI succeed and add migrations (#1329)

* Fix rpc and work on client update

* Finalize standalone client

* Update parachain client

* Use same try-runtime subcommand in every case

* Satisfy Clippy

* Fix benchmarks

* Add migrations

* Satisfy Clippy

* Update moonkit depedencies

* Free disk space more aggressively

---------

Co-authored-by: Malte Kliemann <[email protected]>

* Update spec version, try-runtime Makefile

* Fix copyright notices

* Fix broken chain state (#1336)

* Add `StorageVersion` fix and contrats fix migrations

* Don't set pallet-balances' storage version

* Remove migrations from pallet-contracts config

* Clear storage tries of contracts

* Fix migration and info logs in try-runtime

* Fix licenses and comments

* Fix formatting

---------

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

---------

Co-authored-by: Harald Heckmann <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Merge

* Fix benchmark

* Fix compiler error

* Fix tests and imports

* Fix imports (again...)

* Fix orderbook benchmarks

* Fix fuzz tests

* Fix formatting

* Fix orderbook fuzz

---------

Co-authored-by: Harald Heckmann <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Update versions to v0.5.3

* Restructure math module

* More scaffolding

* Implement combinatorial buy math

* Implement price calculation for combo

* Remove `println!`

* Implement equalization

* Implement selling

* Add tests for combinatorial buying

* Add more tests for combinatorial buying

* Add tests for equalization

* Add more tests/corner cases

* Implement full testing, fix critical bug

---------

Co-authored-by: Harald Heckmann <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Chralt98 added a commit that referenced this pull request Feb 25, 2025
* Implement Combinatorial Betting (#1354)

* Revert "New Asset System (#1295)" (#1338)

* Revert "New Asset System (#1295)"

This reverts commit a956877.

* Fix formatting

* Update copyright

* Remove pallet-assets dependency

* Fix fuzz tests

* Merge `main` into `develop` (#1345)

* Update dependencies to Polkadot v1.1.0 (#1331)

* Update dependencies (#1319)

* Update dependencies to polkadot-v1.1.0

* Format code

* Remove duplicate dependencies

* Update zrml-asset-router (#1321)

* Update zrml-primitives

* Partially update asset-router

* Finalize logic adjustments in asset-router

* Make asset-router tests compilable

* Correct Inspect routing for market assets in Currencies

* Directly invoke Inspect API for Currencies

* Add tests for remaining Unbalances functions

* Update remaining Zeitgeist pallets (#1322)

* Update zrml-asset-router (#1321)

* Upgrade zrml-market-commons

* Upgrade zrml-authorized && use MockBlock instead of MockBlockU32

* Upgrade zrml-court

* Upgrade zrml-global-disputes

* Upgrade liquidity mining

* Upgrade zrml-rikiddo

* Upgrade zrml-simple-disputes

* Upgrade zrml-styx

* Upgrade zrml-orderbook

* Upgrade zrml-parimutuel

* Upgrade zrml-swaps

* Upgrade zrml-prediction-markets

* Upgrade zrml-neo-swaps

* Upgrade zrml-hybrid-router

* Update license headers

* Update runtime (#1323)

* Update weight files & Runtime enum

* Use workspace metadata

* Always use serde serialization for asset types

* Make battery station standalone runtime compilable

* Make benchmark and try-runtime feature compilable

* Make BS build with all features

* Make parachain tests compile

* Partially fix xcm tests

* Use safe xcm version 2

* Update Zeitgeist runtime (except xcm tests)

* Format code

* Remove deprecated comment

* Integrate new xcm-emulator (#1324)

* Integrate new xcm-emulator environment

* Utilize new xcm-emulator interfaces

* Spawn relay-para network using patched xcm-emulator

* Use proper collator genesis config

* Fix Rococo tests

* Finalize Battery Station XCM tests

* Finalize Zeitgeist XCM tests

* Update client (#1327)

* Fix rpc and work on client update

* Finalize standalone client

* Update parachain client

* Use same try-runtime subcommand in every case

* Update node/src/cli.rs

Co-authored-by: Malte Kliemann <[email protected]>

* Update try-runtime* Makefile targets

---------

Co-authored-by: Malte Kliemann <[email protected]>

* Make CI succeed and add migrations (#1329)

* Fix rpc and work on client update

* Finalize standalone client

* Update parachain client

* Use same try-runtime subcommand in every case

* Satisfy Clippy

* Fix benchmarks

* Add migrations

* Satisfy Clippy

* Update moonkit depedencies

* Free disk space more aggressively

---------

Co-authored-by: Malte Kliemann <[email protected]>

* Update spec version, try-runtime Makefile

* Fix copyright notices

* Fix broken chain state (#1336)

* Add `StorageVersion` fix and contrats fix migrations

* Don't set pallet-balances' storage version

* Remove migrations from pallet-contracts config

* Clear storage tries of contracts

* Fix migration and info logs in try-runtime

* Fix licenses and comments

* Fix formatting

---------

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

---------

Co-authored-by: Harald Heckmann <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Merge

* Fix benchmark

* Fix compiler error

* Fix tests and imports

* Fix imports (again...)

* Fix orderbook benchmarks

* Fix fuzz tests

* Fix formatting

* Fix orderbook fuzz

---------

Co-authored-by: Harald Heckmann <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Update versions to v0.5.3

* Restructure math module

* More scaffolding

* Implement combinatorial buy math

* Implement price calculation for combo

* Remove `println!`

* Implement equalization

* Implement selling

* Add tests for combinatorial buying

* Add more tests for combinatorial buying

* Add tests for equalization

* Add more tests/corner cases

* Implement full testing, fix critical bug

---------

Co-authored-by: Harald Heckmann <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

* Implement combinatorial betting extrinsics (#1365)

* Implement classical buying using combinatorial buys

* Calculate classical sells with combinatorial math

* Implement `combo_buy`

* Implement `combo_sell`

* Fix compiler and clippy issues (#1366)

* Fix compiler and clippy issues

* Fix formatting

* Fix tests

* Scaffold combo pallet (#1367)

* Scaffold combo pallet

* Fix dependencies/features

* Implement combinatorial tokens (#1368)

* More scaffolding

* Add `IdManager` trait

* Scaffold ID manager

* Use generics

* WIP

* Rough outline of `CryptographicIdManager` implementation

* Improve `MaybeToBytes` implementation for `bool`

* Implement pseudo-root

* Add more tests

* Implement `quadratic_residue` and add tests

* Partial implementation of decompression algorithm

* Loads of cleaning up

* Refactor

* Clean up `hash_pair`

* Simplify interface

* Simplify serialization

* More cleanup

* Clean up and tests

* Better `ToBytes` implementation

* Abstract `decompressor` tests

* Reorganize tests

* Minor clean up

* More clean up

* Test `get_collection_id`, fix bugs

* Clean up

* Expose `force_max_work` parameter and test it properly

* Properly forget dummies

* Add more tests

* Fix some error handling, docs, and add missing tests

* Prettify

* Implement zrml-combo extrinsics (#1369)

* Extend `Config`

* wip

* Some refactors

* Implement splitting tokens

* Implement merging tokens

* Replace `halo2curves` and `ethnum` dependency and fix clippy issues (#1370)

* .

* Use `core::hint`

* Replace `halo2curves` dependency with `ark-*` dependency

* Fix clippy issues

* Fix formatting

* Add tests for `combinatorial-tokens` (#1371)

* Add mock for zrml-combinatorial-tokens

* Add test framework

* Add negative tests for `split_token`

* Add more tests, fix some bugs, extend `Event` object

* Add more tests

* Add more integration tests

* Add more integration tests

* Add more integration tests

* More tests

* Add merge tests

* final tests

* fixes

* Refine combinatorial betting (#1372)

* Add numerical thresholds to combinatorial betting

* Add protected `exp` for normal bets

* Ensure correctness of partitions

* Check partitions

* Update copyright notices (#1373)

* Add licenses

* Add remark about LGPL-3.0 licensing by Gnosis

* Fix compiler errors (#1374)

* Fix formatting

* Fix mess with copyright notices

* Format `Cargo.toml` files (#1375)

* Implement and test numerical limits for combinatorial betting (#1376)

* Add numerical limits and tests

* Add missing license

* Implement multi-market combinatorial betting tests (#1377)

* .

* Add more tests

* .

* Detailed testing

* .

* Add tests for `InvalidAmountKeep`

* Clippy fixes

* Scaffold futarchy pallet (#1378)

* Scaffold futarchy pallet

* Scaffold test suite

* .

* .

* .

* Implement Scheduler mock

* .

* wip

* Implement and test futarchy

* Implement Events

* Fix futarchy errors (#1380)

* Fix clippy errors

* Move `FutarchyOracle` to primitives

* Implement `FutarchyOracle` for neo-swaps

* Add missing licenses

* Fix formatting

* Fix toml formatting

* Implement benchmarking

* Fix clippy errors

* .

* .

* .

* benchmarks work

* .

* .

* Update copyright notices

* Implement and run Decision Market Oracle Benchmarks (#1381)

* Add benchmark for the decision market oracle

* Add benchmarks to `DecisionMarketOracle` calls

* Fix clippy errors

* Remove old migrations (#1379) (#1382)

* Remove old migrations

* Update licenses

* Implement integration test for zrml-futarchy (#1383)

* Implement integration test for zrml-futarchy

* Fix test

* Introduce `PoolId` (#1384)

* Implement `redeem_position` (#1385)

* Add `PayoutApi` and the corresponding mock

* Implement redeeming tokens

* Add tests for `redeem_position`

* Test `redeem_position` and dummy implement `Payout`

* Implement `Payout` for `PredictionMarkets` (#1386)

* Fix copyright and formatting

* Implement `payout_vector` and test

* Fix copyright

* Benchmark combinatorial-tokens (#1387)

* Expose benchmarking parameter

* Add security notes to code

* Update and test `TokenMerged` event

* Implement `TokenRedeemed` event

* Test `TokenRedeemed` event

* Add `CombinatorialTokensBenchmarkHelper`

* Implement `redeem_position` benchmark

* Implement first benchmarks, prediction markets benchmark helper

* Clear up errors

* Include benchmarks

* Extend tests

* Implement more benchmarks

* .

* .

* Use weight in `redeem_position`

* .

* .

* .

* First split bench

* Horizontal splits benchmarked

* .

* .

* .

* Fix formatting and license notes (#1388)

* Fix formatting

* Fix copyright

* Implement Combinatorial Pools (#1389)

* Define and implement `CombinatorialTokensApi`

* Abstract position calculation

* Implement `CombinatorialTokensUnsafeApi::combinatorial_position`

* Add `CombinatorialTokens*Api` to `neo-swaps`

* Fix formatting

* Add copyright notices

* .

* .

* Implement `deploy_combinatorial_pool`

* Replace `market_id` with `pool_id` where appropriate

* pool storage

* .

* Implement `PoolType`

* Use `PoolOperations::is_active`

* Use market ID for complete set operations

* Use PoolId more

* Rewrite `distribute_fees` to make use of all markets

* .

* Fix duplicate pool problem / adapter

* .

* Fix sell tests

* Fix really annoying problem

* clean up tests

* .

* .

* Update copyright

* Fix tests

* Fix formatting

* Fix coverage

* Mkl neo swaps benchmarks (#1390)

* clean up TODO

* First benchmark

* .

* .

* .

* Sceond bench

* Use weights

* Use asset_count in deploy_combinatorial_pool

* .

* .

* Use weights

* Add weights of new modules

* Add storage migrations for Combinatorial Tokens Upgrade (#1401)

* add todos for storage migrations

* remove todo for asset storage migration

* add storage migration and try-runtime tests

* correct migration and tests

* update todos

* update migration tests

* add migration to runtime, fix clippy

* bump storage version

* remove corrupted pools

* correct clippy

* correct CI

* Audit fixes (#1395)

* (Issue No 1)

- Clarify `ComboMath` documentation
- Make test `combo_buy_fails_on_amount_out_below_min` more precise

* Fix `log_ceil` and add extensive tests

* (Issue No 7) Enable overflow checks

* (Issue No 9) Fix incorrect test

* (Issue No 10) Resolve FIXMEs

- Won't fix FIXME asking for better error messages
- Solve FIXME in neo-swaps by adding `try_mutate_exists` to
  `PoolStorage`

* Fix formatting

* (Issue No 13) Remove TODO by avoiding a migration

* (Issue No 13) Remove TODO by keeping low-level types

* (Issue No 13) Remove TODO by keeping low-level types

* (Issue No 13) Remove already fixed TODO

* (Issue No 13) Remove won't fix TODOs

* (Issue No 13) Remove more TODOs, some by implementing `CheckedIncRes`

* (Issue No 13) Remove code quality TODO

* (Issue No 14) Define `SCHEDULE_PRIORITY`

* (Issue No 14) Increase readability

* (Issue No 14) Reuse `r_over_b`

* (Issue No 14) Add clarifying comments

* (Issue No 14) Abstract common math code away

* Add missing file

* (Issue No 2) Replace `force_max_work` with `fuel` parameter

* (Issue 6) Replace `SubmitOrigin` with root

* (Issue Nos. 5 & 6) Squashed commit of the following:

commit 4517504
Author: Malte Kliemann <[email protected]>
Date:   Tue Dec 10 18:51:24 2024 +0100

    Benchmark `DecisionMarketOracle`

commit 5832f0b
Author: Malte Kliemann <[email protected]>
Date:   Tue Dec 10 16:55:48 2024 +0100

    Implement `DecisionMarketOracle` using scoreboard

commit e684d47
Author: Malte Kliemann <[email protected]>
Date:   Mon Dec 9 21:24:47 2024 +0100

    Add `BlockNumber` parameter to `update`

commit 5f51378
Author: Malte Kliemann <[email protected]>
Date:   Mon Dec 9 21:17:20 2024 +0100

    Update oracles on each block

commit 2b831fb
Author: Malte Kliemann <[email protected]>
Date:   Mon Dec 9 20:40:26 2024 +0100

    Implement `try_mutate_all`

commit 59cb185
Author: Malte Kliemann <[email protected]>
Date:   Mon Dec 9 18:24:56 2024 +0100

    Use `ProposalStorage` and `MaxProposals`

commit 58afe87
Author: Malte Kliemann <[email protected]>
Date:   Mon Dec 9 17:56:53 2024 +0100

    Add `MaxProposals` value

commit 22068d8
Author: Malte Kliemann <[email protected]>
Date:   Mon Dec 9 14:15:33 2024 +0100

    Add `update` function to `FutarchyOracle` trait

* Fix audit decompressor security miscellaneous comments (#1402)

* Update arkworks-rs dependencies

* Extend get_collection_id comment

* Distinguish collection id generation error

* Use immutable transformations

* fmt

* Update copyrights

* Use retrieval instead of generation for collection id error

* Fix misprint

* fix clippy

* Merge oracles into audit fixes (#1399)

* Add `update` function to `FutarchyOracle` trait

* Add `MaxProposals` value

* Use `ProposalStorage` and `MaxProposals`

* Implement `try_mutate_all`

* Update oracles on each block

* Add `BlockNumber` parameter to `update`

* Implement `DecisionMarketOracle` using scoreboard

* Benchmark `DecisionMarketOracle`

---------

Co-authored-by: Chralt <[email protected]>

* Add docs (#1391)

* Add some docs and remove TODOs

* More documentation

* .

* update docs to use fuel parameter

* Update zrml/combinatorial-tokens/README.md

* Update zrml/combinatorial-tokens/README.md

* fix comment

* add decision market oracle scoreboard to futarchy module doc

* update decision market oracle doc to include scoreboard

* add fuel parameter doc to complexity of deploy combinatorial pool

* correct the futarchy module documentation to use root origin for proposal

---------

Co-authored-by: Chralt98 <[email protected]>
Co-authored-by: Chralt <[email protected]>

* Add fuzz tests for combinatorial tokens, pool and futarchy (#1392)

* Implement fuzz tests for futarchy

* Minor fixes

* add first fuzz test for combo tokens

* Add test to script

* Add fuzz test for merge position

* .

* Add redeem fuzz test

* Add combinatorial pool fuzz tests

* Add neo-swaps fuzz to script

* combo buy

* Minor fixes, add to script

* Add combo sell

* use fuel parameter for fuzz tests

---------

Co-authored-by: Chralt98 <[email protected]>

* update comments in neo-swaps

* remove duplicated numerical limits check

* correct comments in split_position.rs

* fix comments in merge_position

* correct redeem_position test function name

* use HARD_DEADLINE scheduler priority

* fix futarchy benchmarks and fmt

* add comments for combo buy

* correct combo buy test

* rename test function

* add test comment

* add test comment

* correct neo-swaps benchmark

* add reminder from the documentation

* update gnosis doc references

* update gnosis doc reference

* update copyrights

* fix copyrights

* taplo fmt

* fix neo-swaps benchmarks after existential deposit bump

* fix deploy combinatorial pool benchmark

* fix decision market oracle benchmarks

---------

Co-authored-by: Harald Heckmann <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Your Name <[email protected]>
Co-authored-by: Chralt <[email protected]>
Co-authored-by: Chralt98 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

i:spec-changed ⚠️ Implies change in spec version i:transactions-changed ⚠️ Implies change in transaction version s:accepted This pull request is ready for merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants