• Gavin Wood's avatar
    New slots/auctions architecture (#2294) · edd81bf6
    Gavin Wood authored
    
    
    * TODOs
    
    * Add auctions.rs, comment on changes needed.
    
    * Remove cruft from slots
    
    * Remove more from auctions.rs
    
    * More logic drafting in slots.
    
    * More logic in slots.rs
    
    * patch some errors
    
    * more fixes
    
    * last nit
    
    * Cleanups in slots.rs
    
    * Cleanups in slots.rs
    
    * patches
    
    * make build
    
    * crowdloan to new api
    
    * auction compile
    
    * Use ParaId instead of FundIndex in Crowdloan (#2303)
    
    * use paraid instead of fundindex
    
    * Update crowdloan.rs
    
    * check caller is manager
    
    * Auction tests and fix build warnings.
    
    * Configurable origin for initiating auctions
    
    * Remove on_finalize
    
    * #2303 (manual merge)
    
    * Tests for Slots
    
    * some registrar tests
    
    * Apply suggestions from code review
    
    Co-authored-by: default avatarGuillaume Thiolliere <[email protected]>
    
    * Update runtime/common/src/slots.rs
    
    Co-authored-by: default avatarGuillaume Thiolliere <[email protected]>
    
    * Slots uses Registrar for CurrentChains
    
    * swap works test
    
    * on swap impl
    
    * traitify parachain cleanup
    
    * explicit lifecycle tracking for paras
    
    * initial implementation of lifecycles and upgrades
    
    * clean up a bit
    
    * Update runtime/common/src/slots.rs
    
    Co-authored-by: default avatarGuillaume Thiolliere <[email protected]>
    
    * fix doc comment
    
    * more rigid lifecycle checks
    
    * include paras which are transitioning, and lifecycle query
    
    * format guide
    
    * update api
    
    * update guide
    
    * explicit outgoing state, fix genesis
    
    * handle outgoing with transitioning paras
    
    * Revert "explicit lifecycle tracking for paras"
    
    This reverts commit 4177af7ba473bbd9c26bccd861793f25265b6657.
    
    * remove lifecycle tracking from registrar
    
    * do not include transitioning paras in identifier
    
    * Update paras_registrar.rs
    
    * final patches to registrar
    
    * Fix test
    
    * use noop in test
    
    * clean up pending swap on deregistration
    
    * finish registrar tests
    
    * Update roadmap/implementers-guide/src/runtime/paras.md
    
    * Update roadmap/implementers-guide/src/runtime/paras.md
    
    * Update roadmap/implementers-guide/src/runtime/paras.md
    
    * Apply suggestions from code review
    
    * Use matches macro
    
    * Correct terms
    
    * Apply suggestions from code review
    
    * Remove direct need for Slots and Registrar from Crowdloan
    
    * Rejig things slightly
    
    * actions queue
    
    * Revert "actions queue"
    
    This reverts commit b2e9011ec8937d6c73e99292416c9692aeb30f73.
    
    * Traitify Auction interface.
    
    * Mockups and initial code for Crowdloan testing
    
    * One test...
    
    * collapse onboarding state
    
    * fix some crowdloan tests
    
    * one more
    
    * start benchmarks for auctions
    
    * benchmark bid
    
    * fix more crowdloan tests
    
    * onboard and begin retirement no longer exist
    
    * Revert "onboard and begin retirement no longer exist"
    
    This reverts commit 2e100fd94e3540bff5f172328b5d917896f1c6fc.
    
    * Simplify crowdloan and make it work.
    
    * Fixes
    
    * fix some
    
    * finish merge fixes
    
    * fix refund bug in auctions
    
    * Add traits to Registrar for tests and benchmarks
    
    * fix more auction benchmarks
    
    * Fix TestAuctioneer
    
    * finish crowdloan benchmarks
    
    * start setting up full integration tests
    
    * expand integration tests
    
    * finish basic integration test
    
    * add more integration tests
    
    * begin slots benchmarks
    
    * start paras registrar benchmarks
    
    * fix merge
    
    * fix tests
    
    * clean up paras registrar
    
    * remove println
    
    * remove outdated cleanup config
    
    * update benchmarks
    
    * Add WeightInfo
    
    * enable runtime-benchmarks feature flag
    
    * complete swap benchmark
    
    * add parachains and onboarding into westend
    
    * add benchmarks and genesis
    
    * cargo run --release --features=runtime-benchmarks -- benchmark --chain=westend-dev --steps=50 --repeat=20 --pallet=auctions --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/westend/src/weights/
    
    * cargo run --release --features=runtime-benchmarks -- benchmark --chain=westend-dev --steps=50 --repeat=20 --pallet=slots --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/westend/src/weights/
    
    * fix benchmark execution
    
    * cargo run --release --features=runtime-benchmarks -- benchmark --chain=westend-dev --steps=50 --repeat=20 --pallet=crowdloan --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/westend/src/weights/
    
    * cargo run --release --features=runtime-benchmarks -- benchmark --chain=westend-dev --steps=50 --repeat=20 --pallet=paras_registrar --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/westend/src/weights/
    
    * Use `new_raise_len` in crowdloan on_initialize
    
    * Update paras_registrar.rs
    
    * fix westend merge
    
    * impl on_swap for crowdloan
    
    * Check fund exists before create
    
    * update for crowdloan sig
    
    * cargo run --release --features=runtime-benchmarks -- benchmark --chain=westend-dev --steps=50 --repeat=20 --pallet=crowdloan --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/westend/src/weights/
    
    * slots on_initialize
    
    * use integration tests environment for benchmarks
    
    * fix hrmp event
    
    * auction on_initialize
    
    * cargo run --release --features=runtime-benchmarks -- benchmark --chain=westend-dev --steps=50 --repeat=20 --pallet=auctions --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/westend/src/weights/
    
    * fix storage name in auctions
    
    * add auction_index to winning data
    
    * winning data takes into account current auction index
    
    * remove println
    
    * cargo run --release --features=runtime-benchmarks -- benchmark --chain=westend-dev --steps=50 --repeat=20 --pallet=auctions --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/westend/src/weights/
    
    * cargo run --release --features=runtime-benchmarks -- benchmark --chain=westend-dev --steps=50 --repeat=20 --pallet=slots --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/westend/src/weights/
    
    * Revert "add auction_index to winning data"
    
    * PastRandomness.
    
    * Fixes
    
    * Use new randomness
    
    * fix use of randomness in auctions and runtime config
    
    * expose consts
    
    * fix auction test
    
    * add deposit per byte for para registration
    
    * basic swap integration test
    
    * make swap test more comprehensive
    
    * Add WinningVec for easier retrieval in the front-end.
    
    * clean up `WinningVec` at the end
    
    * Add event for when a new best bid comes in
    
    * Fix propagation of winners in ending period
    
    * fix benchmarks, refund weight in dissolve
    
    * fix unused
    
    * remove some TODOs
    
    * setup opaque keys for paras in westend
    
    * cargo run --release --features=runtime-benchmarks -- benchmark --chain=westend-dev --steps=50 --repeat=20 --pallet=crowdloan --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/westend/src/weights/
    
    * remove unused
    
    * cargo run --release --features=runtime-benchmarks -- benchmark --chain=westend-dev --steps=50 --repeat=20 --pallet=auctions --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/westend/src/weights/
    
    * back to regular runtime config
    
    * use saturating math where user input can be
    
    * better first slot check
    
    * Update runtime/common/src/claims.rs
    
    * update westend onswap impl
    
    Co-authored-by: default avatarShawn Tabrizi <[email protected]>
    Co-authored-by: default avatarGuillaume Thiolliere <[email protected]>
    Co-authored-by: default avatarParity Benchmarking Bot <[email protected]>
    edd81bf6