Skip to content
  1. May 28, 2021
    • Shawn Tabrizi's avatar
      Simple `MaxBoundedLen` Implementations (#8793) · 444d4e20
      Shawn Tabrizi authored
      
      
      * implement max_values + storages info
      
      * some formatting + doc
      
      * sudo sanity check
      
      * timestamp
      
      * assets (not working)
      
      * fix assets
      
      * impl for proxy
      
      * update balances
      
      * rename StoragesInfo -> PalletStorageInfo
      
      * merge both StorageInfoTrait and PalletStorageInfo
      
      I think it is more future proof. In the future some storage could make
      use of multiple prefix. Like one to store how much value has been
      inserted, etc...
      
      * Update frame/support/procedural/src/storage/parse.rs
      
      Co-authored-by: default avatarPeter Goodspeed-Niklaus <[email protected]>
      
      * Update frame/support/procedural/src/storage/storage_struct.rs
      
      Co-authored-by: default avatarPeter Goodspeed-Niklaus <[email protected]>
      
      * Fix max_size using hasher information
      
      hasher now expose `max_len` which allows to computes their maximum len.
      For hasher without concatenation, it is the size of the hash part,
      for hasher with concatenation, it is the size of the hash part + max
      encoded len of the key.
      
      * fix tests
      
      * fix ui tests
      
      * Move `MaxBoundedLen` into its own crate (#8814)
      
      * move MaxEncodedLen into its own crate
      
      * remove MaxEncodedLen impl from frame-support
      
      * add to assets and balances
      
      * try more fixes
      
      * fix compile
      
      Co-authored-by: default avatarShawn Tabrizi <[email protected]>
      
      * nits
      
      * fix compile
      
      * line width
      
      * fix max-values-macro merge
      
      * Add some derive, needed for test and other purpose
      
      * use weak bounded vec in some cases
      
      * Update lib.rs
      
      * move max-encoded-len crate
      
      * fix
      
      * remove app crypto for now
      
      * width
      
      * Revert "remove app crypto for now"
      
      This reverts commit 73623e9933d50648e0e7fe90b6171a8e45d7f5a2.
      
      * unused variable
      
      * more unused variables
      
      * more fixes
      
      * Add #[max_encoded_len_crate(...)] helper attribute
      
      The purpose of this attribute is to reduce the surface area of
      max_encoded_len changes. Crates deriving `MaxEncodedLen` do not
      need to add it to `Cargo.toml`; they can instead just do
      
      ```rust
      \#[derive(Encode, MaxEncodedLen)]
      \#[max_encoded_len_crate(frame_support::max_encoded_len)]
      struct Example;
      ```
      
      * fix a ui test
      
      * use #[max_encoded_len_crate(...)] helper in app_crypto
      
      * remove max_encoded_len import where not necessary
      
      * update lockfile
      
      * fix ui test
      
      * ui
      
      * newline
      
      * fix merge
      
      * try fix ui again
      
      * Update max-encoded-len/derive/src/lib.rs
      
      Co-authored-by: default avatarPeter Goodspeed-Niklaus <[email protected]>
      
      * extract generate_crate_access_2018
      
      * Update lib.rs
      
      * compiler isnt smart enough
      
      Co-authored-by: default avatarthiolliere <[email protected]>
      Co-authored-by: default avatarPeter Goodspeed-Niklaus <[email protected]>
      Co-authored-by: default avatarPeter Goodspeed-Niklaus <[email protected]>
      444d4e20
  2. May 27, 2021
  3. May 26, 2021
  4. May 21, 2021
  5. May 20, 2021
    • Keith Yeung's avatar
      Make hooks and call attributes optional in pallet macro (#8853) · e5954cf8
      Keith Yeung authored
      * Make #[pallet::hooks] optional
      
      * Make #[pallet::call] optional
      
      * Remove unused imports
      
      * Update UI test expectations
      
      * Update UI test expectations
      
      * Remove unnecessary HooksDef::empty method
      
      * Remove unnecessary CallDef::empty method
      
      * Clarify what would happen when no call or hooks are specified in a pallet
      e5954cf8
  6. May 19, 2021
  7. May 17, 2021
  8. May 14, 2021
    • Keith Yeung's avatar
      Implement StorageNMap (#8635) · 033d8289
      Keith Yeung authored
      
      
      * Implement StorageNMap
      
      * Change copyright date to 2021
      
      * Rewrite keys to use impl_for_tuples instead of recursion
      
      * Implement prefix iteration on StorageNMap
      
      * Implement EncodeLike for key arguments
      
      * Rename KeyGenerator::Arg to KeyGenerator::KArg
      
      * Support StorageNMap in decl_storage and #[pallet::storage] macros
      
      * Use StorageNMap in assets pallet
      
      * Support migrate_keys in StorageNMap
      
      * Reduce line characters on select files
      
      * Refactor crate imports in decl_storage macros
      
      * Some more line char reductions and doc comment update
      
      * Update UI test expectations
      
      * Revert whitespace changes to untouched files
      
      * Generate Key struct instead of a 1-tuple when only 1 pair of key and hasher is provided
      
      * Revert formatting changes to unrelated files
      
      * Introduce KeyGeneratorInner
      
      * Add tests for StorageNMap in FRAMEv2 pallet macro
      
      * Small fixes to unit tests for StorageNMap
      
      * Bump runtime metadata version
      
      * Remove unused import
      
      * Update tests to use runtime metadata v13
      
      * Introduce and use EncodeLikeTuple as a trait bound for KArg
      
      * Add some rustdocs
      
      * Revert usage of StorageNMap in assets pallet
      
      * Make use of ext::PunctuatedTrailing
      
      * Add rustdoc for final_hash
      
      * Fix StorageNMap proc macro expansions for single key cases
      
      * Create associated const in KeyGenerator for hasher metadata
      
      * Refactor code according to comments from Basti
      
      * Add module docs for generator/nmap.rs
      
      * Re-export storage::Key as NMapKey in pallet prelude
      
      * Seal the EncodeLikeTuple trait
      
      * Extract sealing code out of key.rs
      
      Co-authored-by: default avatarShawn Tabrizi <[email protected]>
      033d8289
  9. May 10, 2021
  10. May 07, 2021
    • Peter Goodspeed-Niklaus's avatar
      Relax `BoundedVec` trait restrictions (#8749) · b6897901
      Peter Goodspeed-Niklaus authored
      * requiring users to maintain an unchecked invariant is unsafe
      
      * relax trait restrictions on BoundedVec<T, S>
      
      A normal `Vec<T>` can do many things without any particular trait
      bounds on `T`. This commit relaxes the bounds on `BoundedVec<T, S>`
      to give it similar capabilities.
      b6897901
    • Peter Goodspeed-Niklaus's avatar
      `#[derive(MaxEncodedLen)]` (#8737) · 17a1997d
      Peter Goodspeed-Niklaus authored
      * impl #[derive(MaxEncodedLen)] for structs
      
      * impl #[derive(MaxEncodedLen)] for enums, unions
      
      * break long comments onto multiple lines
      
      * add doc for public item
      
      * add examples to macro documentation
      
      * move MaxEncodedLen macro docs, un-ignore doc-tests
      17a1997d
  11. May 06, 2021
  12. May 04, 2021
  13. May 03, 2021
    • Bastian Köcher's avatar
      Rework inherent data client side (#8526) · 2675741a
      Bastian Köcher authored
      
      
      * Lol
      
      * Yeah
      
      * Moare
      
      * adaasda
      
      * Convert AURA to new pallet macro
      
      * AURA: Switch to `CurrentSlot` instead of `LastTimestamp`
      
      This switches AURA to use `CurrentSlot` instead of `LastTimestamp`.
      
      * Add missing file
      
      * Update frame/aura/src/migrations.rs
      
      Co-authored-by: default avatarAndré Silva <[email protected]>
      
      * Remove the runtime side provide inherent code
      
      * Use correct weight
      
      * Add TODO
      
      * Remove the Inherent from AURA
      
      * 🤦
      
      
      
      * Remove unused stuff
      
      * Update primitives authorship
      
      * Fix babe inherent data provider
      
      * Fix consensus-uncles
      
      * Fix BABE
      
      * Do some further changes to authorship primitives... :D
      
      * More work
      
      * Make it compile the happy path
      
      * Make it async!
      
      * Take hash
      
      * More stuff
      
      * Hacks
      
      * Revert "Hacks"
      
      This reverts commit cfffad88668cfdebf632a59c4fbfada001ef8251.
      
      * Fix
      
      * Make `execute_block` return the final block header
      
      * Move Aura digest stuff
      
      * Make it possible to disable equivocation checking
      
      * Fix fix fix
      
      * Some refactorings
      
      * Comment
      
      * Fixes fixes fixes
      
      * More cleanups
      
      * Some love
      
      * Better love
      
      * Make slot duration being exposed as `Duration` to the outside
      
      * Some slot info love
      
      * Add `build_aura_worker` utility function
      
      * Copy copy copy
      
      * Some stuff
      
      * Start fixing pow
      
      * Fix pow
      
      * Remove some bounds
      
      * More work
      
      * Make grandpa work
      
      * Make slots use `async_trait`
      
      * Introduce `SharedData`
      
      * Add test and fix bugs
      
      * Switch to `SharedData`
      
      * Make grandpa tests working
      
      * More Babe work
      
      * Make grandpa work
      
      * Introduce `SharedData`
      
      * Add test and fix bugs
      
      * Switch to `SharedData`
      
      * Make grandpa tests working
      
      * More Babe work
      
      * Make it async
      
      * Fix fix
      
      * Use `async_trait` in sc-consensus-slots
      
      This makes the code a little bit easier to read and also expresses that
      there can always only be one call at a time to `on_slot`.
      
      * Make grandpa tests compile
      
      * More Babe tests work
      
      * Fix network test
      
      * Start fixing service test
      
      * Finish service-test
      
      * Fix sc-consensus-aura
      
      * Fix fix fix
      
      * More fixes
      
      * Make everything compile *yeah*
      
      * Make manual-seal compile
      
      * More fixes
      
      * Start fixing Aura
      
      * Fix Aura tests
      
      * Fix Babe tests
      
      * Make everything compile
      
      * Move code around and switch to async_trait
      
      * Fix Babe
      
      * Docs docs docs
      
      * Move to FRAME
      
      * Fix fix fix
      
      * Make everything compile
      
      * Last cleanups
      
      * Fix integration test
      
      * Change slot usage of the timestamp
      
      * We really need to switch to `impl-trait-for-tuples`
      
      * Update primitives/inherents/src/lib.rs
      
      Co-authored-by: default avatarAndré Silva <[email protected]>
      
      * Update primitives/inherents/src/lib.rs
      
      Co-authored-by: default avatarAndré Silva <[email protected]>
      
      * Update primitives/inherents/src/lib.rs
      
      Co-authored-by: default avatarAndré Silva <[email protected]>
      
      * Some extra logging
      
      * Remove dbg!
      
      * Update primitives/consensus/common/src/import_queue/basic_queue.rs
      
      Co-authored-by: default avatarAndré Silva <[email protected]>
      
      Co-authored-by: default avatarAndré Silva <[email protected]>
      2675741a
  14. May 02, 2021
  15. Apr 28, 2021
  16. Apr 27, 2021
  17. Apr 23, 2021
  18. Apr 19, 2021
  19. Apr 17, 2021
  20. Apr 16, 2021
  21. Apr 13, 2021
  22. Apr 12, 2021
  23. Apr 10, 2021
  24. Apr 09, 2021
  25. Apr 08, 2021
  26. Apr 07, 2021
  27. Apr 01, 2021
    • Keith Yeung's avatar
      Add ChildTriePrefixIterator and methods (#8478) · 1fdc8fa1
      Keith Yeung authored
      
      
      * Make use of PrefixIterator underneath Storage[Key]Iterator
      
      * Add ChildTriePrefixIterator and methods
      
      * Add documentation on ChilTriePrefixIterator fields
      
      * Deprecate Storage[Key]Iterator API instead of removing them
      
      * Allow fetching for the prefix as an option for ChildTriePrefixIterator
      
      * Rename prefix_fetch to fetch_previous_key
      
      * fix implementation + test
      
      * make gitdiff better
      
      * Add test for storage_iter and storage_key_iter
      
      Co-authored-by: default avatarthiolliere <[email protected]>
      1fdc8fa1
  28. Mar 30, 2021
  29. Mar 28, 2021
    • Gavin Wood's avatar
      Implement `fungible::*` for Balances (#8454) · d0eee4f1
      Gavin Wood authored
      
      
      * Reservable, Transferrable Fungible(s), plus adapters.
      
      * Repot into new dir
      
      * Imbalances for Fungibles
      
      * Repot and balanced fungible.
      
      * Clean up names and bridge-over Imbalanced.
      
      * Repot frame_support::trait. Finally.
      
      * Make build.
      
      * Docs
      
      * Good errors
      
      * Fix tests. Implement fungible::Inspect for Balances.
      
      * Implement additional traits for Balances.
      
      * Revert UI test "fixes"
      
      * Fix UI error
      
      * Fix UI test
      
      * More work on fungibles
      
      * Fixes
      
      * More work.
      
      * Update lock
      
      * Make fungible::reserved work for Balances
      
      * Introduce Freezer to Assets, ready for a reserve & locks pallet. Some renaming/refactoring.
      
      * Cleanup errors
      
      * Imbalances working with Assets
      
      * Test for freezer.
      
      * Grumbles
      
      * Grumbles
      
      * Fixes
      
      * Extra "side-car" data for a user's asset balance.
      
      * Fix
      
      * Fix test
      
      * Fixes
      
      * Line lengths
      
      * Comments
      
      * Update frame/assets/src/tests.rs
      
      Co-authored-by: default avatarShawn Tabrizi <[email protected]>
      
      * Update frame/support/src/traits/tokens/fungibles.rs
      
      Co-authored-by: default avatarShawn Tabrizi <[email protected]>
      
      * Update frame/assets/src/lib.rs
      
      Co-authored-by: default avatarShawn Tabrizi <[email protected]>
      
      * Update frame/support/src/traits/tokens/fungible.rs
      
      Co-authored-by: default avatarShawn Tabrizi <[email protected]>
      
      * Introduce `transfer_reserved`
      
      * Rename fungible Reserve -> Hold, add flag structs
      
      * Avoid the `melted` API - its too complex and gives little help
      
      * Repot Assets pallet
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      Co-authored-by: default avatarShawn Tabrizi <[email protected]>
      d0eee4f1