- 20 Jul, 2020 1 commit
-
-
Michael Müller authored
* [core] Add Entry API for storage2::HashMap * [core] Replace unwrap's with expect's * [core] Shorten code * [core] Improve tests * [core] Improve tests * [core] Add benches for storage2::HashMap Entry API * [core] Update comments * [core] Add + update benches * [core] Improve benches code, add more benches * [core] Improve expect messages * [core] Simplify test structure * [core] Implement review comments * [core] Shorten bench code * [core] Fix bench iterations * [core] Minimze black_box'es * [core] Remove code dups * [core] Shorten code
-
- 15 Jul, 2020 2 commits
-
-
Andrew Jones authored
* WIP * WIP * Iterating on InkProject types * Extract InkProject to its own file * More iteration on contract metadata * Compiles...ship it * Fmt * Add optional fields and doc test * Add custom serializer impls for compiler/lang * Fmt * Clippy * Update to scale-info 0.3 * Use &'static str instead of compact string (scale-info 0.3) * Reexport Url and Version * Fix missing semicolon * Fix up metadata exports and codegen * Serialize hash as byte string * Remove spec nesting * Remove name from contract spec * Add name to storage struct * Flatten SourceCompiler * Implement ToTokens for Extension metadata Allows converting an instance into code that can construct that instance. For use from `cargo-contract`. * User and Version * Fix up builder ToTokens and other errs/warns * Fmt * Url wrapper * Comment and Version/Url intos * Fmt * Fix U * Promote extension to module dir * Moved InkProjectExtension to cargo-contract * Fix doc gen * Fix json tests * Use pretty assertions and fix layout json tests * Remove storage name from layout (ink specific) * StorageLayout -> Layout * Remove redundant contract_ident_lit * Remove redundant dependencies * Use Self instead of InkProject
-
Andrew Jones authored
* Export EmittedEvent * Assert transfer event in all tests * Fmt
-
- 10 Jul, 2020 2 commits
-
-
Michael Müller authored
-
Michael Müller authored
* [core] Fix typos * [core] Add BitStash::is_completely_full() * [core] Split logic and get rid of loop * [core] Add benchmarks for storage2::BitStash * [core] Shorten code * [core] Remove outcommented code * [core] Get rid of warnings * [core] Apply cargo fmt * [core] Remove unnecessary mutable * [core] Remove unnecessary check * [core] Add more storage2::BitStash benchmarks * [core] Fix benches (panics for empty_cache::one_put) * [core] Fix empty_cache::one_put bench * Revert "[core] Remove outcommented code" This reverts commit 98a74324. * [core] Improve benchmark labels * [core] Use iter_batched_ref consistently * [core] Remove unnecessary black_box * Revert "Revert "[core] Remove outcommented code"" This reverts commit aaf24713. * [core] Satisfy clippy
-
- 07 Jul, 2020 1 commit
-
-
Michael Müller authored
* [core] Fix typo * [core] Add Lazy::set(…) * [core] Add benchmarks for Lazy::set(…) * [core] Improve comments * [core] Set must not write to contract storage * [core] Benchmark set vs deref_mut (not set vs get_mut + assign) * [core] Bench with Lazy instead of LazyCell * Update core/src/storage2/lazy/lazy_cell.rs Co-authored-by:
Hero Bird <robin.freyler@gmail.com> * [core] Rename file * [core] Push actual Lazy<i32> when returning Lazy<i32> * [core] Add elaborate set() test with push/pull * [core] Shorten code * [core] Fix 0 ps issue with criterion * [core] Remove unnecessary comment * [core] Add #[inline] attribute Co-authored-by:
Hero Bird <robin.freyler@gmail.com>
-
- 02 Jul, 2020 1 commit
-
-
Andrew Jones authored
* add gas argument * Add gas parameter to ext_gas_price * Fix up gas_price offchain api * Fix up env_access api * Emulate gas price calculation * Make clippy happy * Use Saturating impl for emulating gas price calculation offchain * Fmt * Add offchain gas_price test * Make clippy happy
-
- 30 Jun, 2020 3 commits
-
-
Michael Müller authored
* Support quickcheck tests Quickcheck runs multiple tests in one thread, whereas the testing environment expects one test per thread, since the offchain env is `thread_local!`. This commit adds the possibility to have each test run with an explicitly uninitialized env. * Introduce ink-fuzz feature Computationally expensive fuzzing tests should have to be run explicitly with `--features ink-fuzz`. These tests must be marked `#[cfg(feature = "ink-fuzz")]`. * Add quickcheck property testing for HashMap * Make ink-fuzz imply std feature * Support quickcheck tests By adding the ability to reset the offchain environment explicitly. * Apply rustfmt * [core] Remove unnecessary code due changes in master in the meantime * [core] More removals of no longer necessary code * [core] Apply cargo fmt * [core] Rename ink-fuzz to ink-fuzz-tests * [core] Split fuzz tests into separate file * [core] Improve naming * Apply suggestions from code review Co-authored-by:
Hero Bird <robin.freyler@gmail.com> * [core] Replace for_each with for loop * [core] Replace for_each with for loop Co-authored-by:
Hero Bird <robin.freyler@gmail.com>
-
Andrew Jones authored
* git mv abi metadata * mm * Rename codegen abi to metadata * Fmt
-
Andrew Jones authored
* extract arithmetic types * Add basic saturating tests * Fmt * Add comment about EnvTypes bounds
-
- 22 Jun, 2020 1 commit
-
-
Michael Müller authored
* [core] Add stash::remove() * [core] Add benchmarks: take() vs remove() * [core] Add benchmark for worst case of take() * [core] Make worst case test even worse * [core] Add assertions * [core] Rename stash.remove() to stash.remove_occupied() and make it unsafe * [core] Add code for linking list entries when removing one * [core] Add test for remove with multiple push/pulls * [core] Improve code * [core] Do not actually read value in remove_occupied() * [core] Make clippy happy * [core] Upgrade criterion * [core] Remove unnecessary code branches * [core] Refactor logic * [core] Rename file * [core] Remove criterion temporarily * Add new ops for storage2/vec (#453) * Fix typo * [core] Add vec.set() * [core] Add vec.clear() * [core] Add benchmarks for vec.put() and vec.clear() * [core] Minor improvements * [core] Add user comment * [core] Improve style * [core] Add worst case benches * [core] Include comments from review * [core] Apply cargo fmt * [core] Remove unnecessary variable * [core] Include put worst case bench * [core] Rename benches to lazy vs. cached * [core] Reduce benchmark overhead by preventing cache writes * [core] Add black boxes to prevent over optimization * [core] improve benchmarks for new storage vector operations (#457) * [core] optimize LazyIndexMap::put * [core] put some forgotten black_box instances * [core] further minor improvements to the benchmarks * [core] Add criterion dependency workaround * [core] Change vec.set() to return Result<(), IndexOutOfBounds> * [core] Remove outdated comment * [core] Minor fixes * [core] Minor test fixes * Apply suggestions from code review Co-authored-by:
Hero Bird <robin.freyler@gmail.com> Co-authored-by:
Hero Bird <robin.freyler@gmail.com> * [core] Structure and update benches * [core] Address 'unused Result that must be used' * [core] Clean up code * [core] Remove outdated files * [core] Apply cargo fmt * Apply suggestions from code review Co-authored-by:
Hero Bird <robin.freyler@gmail.com> * [core] Wrap comment * [core] Constrain mutability Co-authored-by:
Hero Bird <robin.freyler@gmail.com>
-
- 19 Jun, 2020 1 commit
-
-
Michael Müller authored
* Fix typo * [core] Add vec.set() * [core] Add vec.clear() * [core] Add benchmarks for vec.put() and vec.clear() * [core] Minor improvements * [core] Add user comment * [core] Improve style * [core] Add worst case benches * [core] Include comments from review * [core] Apply cargo fmt * [core] Remove unnecessary variable * [core] Include put worst case bench * [core] Rename benches to lazy vs. cached * [core] Reduce benchmark overhead by preventing cache writes * [core] Add black boxes to prevent over optimization * [core] improve benchmarks for new storage vector operations (#457) * [core] optimize LazyIndexMap::put * [core] put some forgotten black_box instances * [core] further minor improvements to the benchmarks * [core] Add criterion dependency workaround * [core] Change vec.set() to return Result<(), IndexOutOfBounds> * [core] Remove outdated comment * [core] Minor fixes * [core] Minor test fixes * Apply suggestions from code review Co-authored-by:
Hero Bird <robin.freyler@gmail.com> Co-authored-by:
Hero Bird <robin.freyler@gmail.com>
-
- 17 Jun, 2020 3 commits
-
-
Hero Bird authored
* [core] add Env::decode_input * [lang/macro] remove unneeded crate dependencies # Conflicts: # lang/macro/Cargo.toml * [lang, lang/macro] add message dispatcher type code generation * [lang/macro] add constructor dispatch enum code generation * [lang] add executor functions and Execute trait * [core] add decode_input to public env API * [lang] fix incorrect trait bound in execute_message * [lang/macro] add code generation for ink_lang::Execute * [lang/macro] integrate Execute trait impls into contract dispatch * [lang/macro] fix bug with constructors and messages with multiple inputs * [lang] apply rustfmt * [lang/macro] apply rustfmt + fix clippy warnings * [lang] remove testable module * [lang] clean-up lang module after implementing new dispatch codegen # Conflicts: # lang/src/dispatcher.rs * [lang] re-enable alloc init and finalize * [lang] apply rustfmt * [core] remove Env::input function It has been deprecated. Users should use Env::decode_input function instead. # Conflicts: # core/src/env/engine/off_chain/mod.rs * [core, examples] fix move of CallData to env::test API * [core] apply rustfmt * [examples] fix examples Selector::from_str -> new * [examples] fix multisig_plain doc-test import * [examples] apply rustfmt to multisig_plain example * [lang/macro] resolve some code dupes
-
Andrew Jones authored
* Update to latest scale-info * scale-info 0.2 * Merge branch 'master' into aj-update-scale-info # Conflicts: # primitives/src/key.rs * Fmt
-
Hero Bird authored
* [primitives] add scale::{Encode, Decode} impls for Key * [primitives] add #[inline] annotations to scale::{Encode, Decode} impls for Key * [primitives] remove old Key and old KeyPtr abstractions # Conflicts: # primitives/src/key.rs * [abi] adjust codebase to new Key and KeyPtr abstractions * [core] first step towards new Key and KeyPtr abstractions * [primitives] add core::ops::Add impl to Key for testing * [primitives] add Add impls for ref and value Key * [primitives] add Key::as_bytes for little-endian architectures * [primitives] add HasType{Id, Def} for Key * [core] adjust ink_core::env for Key and KeyPtr changes * [core] adjust ink_core::storage2 for Key and KeyPtr changes * [lang] adjust ink_lang for Key and KeyPtr changes * [lang/macro] adjust for Key and KeyPtr changes * [core] fix lazy_cell Debug unit test * [primitives] remove type_metadata impls, add scale_info impl * [abi, core] update unit tests for Key changes * [primitives] rename key2 -> key and key_ptr2 -> key_ptr module * [primitives] rename bench functions key2 -> key * [primitives] use Fields::unnamed
-
- 16 Jun, 2020 1 commit
-
-
Hero Bird authored
* [primitives, lang/macro] remove ink_primitives::hash module # Conflicts: # primitives/src/lib.rs * [core] remove ink_core's Selector::{from_str, from<&[u8]>} constructors * [examples] fix DNS contract * [examples] fix ers20 * [examples] fix other example smart contracts * [examples] apply rustfmt
-
- 13 Jun, 2020 4 commits
-
-
Hero Bird authored
* [core] remove old storage module # Conflicts: # core/src/storage/alloc/bump_alloc.rs # core/src/storage/alloc/dyn_alloc.rs # core/src/storage/cell/sync_cell.rs # core/src/storage/chunk/sync_chunk/chunk.rs # core/src/storage/collections/binary_heap/duplex_sync_chunk.rs # core/src/storage/collections/binary_heap/impls.rs # core/src/storage/collections/bitvec/block.rs # core/src/storage/collections/bitvec/pack.rs # core/src/storage/collections/bitvec/vec.rs # core/src/storage/collections/btree_map/impls.rs # core/src/storage/collections/btree_map/node.rs # core/src/storage/collections/hash_map/impls.rs # core/src/storage/collections/stash/impls.rs # core/src/storage/collections/vec/impls.rs # core/src/storage/value.rs * [abi] remove old layout module # Conflicts: # abi/src/layout.rs # abi/src/lib.rs * [abi] remove abi_derive sub crate # Conflicts: # abi/derive/src/has_layout.rs # abi/derive/src/impl_wrapper.rs # abi/src/lib.rs * [core/derive] remove Flush and AllocateUsing derives + tests * [abi] remove unused function * [abi] remove unused tests and simplify imports
-
Hero Bird authored
* [core] add ExecutionInput abstraction * [core, lang] adjust env and lang abstractions for call builder changes * [lang/macro] adjust cross-call codegen to use new call infrastructure * [core] add #[inline] to many call infrastructure functions * [core, lang] apply rustfmt * [core, lang, lang/macro] avoid heap mem alloc for instantiations as well * [core] add inline annotations to some instantation infrastructure * [core] fix clippy warning * [core] apply rustfmt * [examples] fix multisig_plain example contract * [examples] apply rustfmt
-
Hero Bird authored
* [abi] create new layout trait and structures * [abi] remove unused import * [abi] add missing license header * [abi] fix clippy warning * [primitives] add KeyPtr to ink_primitives * [core] use KeyPtr through ink_primitives and add ExtKeyPtr trait * [abi] use KeyPtr of ink_primitives * [abi] make EnumLayout use StructLayout * [abi] implement custom serde::Serialize for LayoutKey * [abi] implement IntoCompact for layout2 module types * [abi] add doc comment * [abi] apply rustfmt * [abi] add unit test for LayoutKey serialization * [abi] rename ArrayLayout::array -> new * [abi] add dispatch_key field to enum layout * [abi] derive From for all Layout variants * [abi] add unit tests for the new layout traits and data structures * [abi] add experimental CellLayout * [abi] make tests work again for layout2 * [abi] use specialized serializer function for LayoutKey * [abi] refactor UnboundedLayout * [abi] add unit test for UnboundedLayout * [abi] apply rustfmt * [core/derive] slightly refactor code * [abi] simplify enum test * [primitives] derive Debug, Copy and Clone for KeyPtr * [abi] simplify CellLayout::new * [abi] fix calling incorrect constructor for LayoutKey * [abi] move layout2 module file into directory * [core] add StorageLayout trait to storage2 module * [abi_derive, core_derive] remove unnecessary extern crate proc_macro * [core] imply ink-generate-abi feature by std feature * [core] derive Metadata for env types for std feature * [core] add Key, Hash, AccountId and String StorageLayout impls * [core/derive] add initial structure for StorageLayout derive * [core] add StorageLayout impls for some more prelude types * [core] fix Box<T> impl for StorageLayout trait * [core] implement StorageLayout for storage2::{Memory, Pack, LazyArray} * [core] fix StorageLayout impl for LazyArray * [core] implement StorageLayout for LazyIndexMap * [abi] add HashLayout * [abi] rewrite UnboundedLayout test to HashLayout test * [abi] remove unbounded layout * [abi, core] apply rustfmt * [core] add initial skeleton for StorageLayout tests * [core] add StorageLayout impls for Lazy, LazyCell and LazyHashMap * [core] add StorageLayout impls for Option and Result * [core] add LayoutCryptoHasher trait * [core] fix StorageLayout impl for LazyHashMap * [core] apply rustfmt * [core] add StorageLayout impl for storage2::Vec * [core] add StorageLayout for storage2::SmallVec * [core] implement StorageLayout for storage2::Stash * [core] implement StorageLayout for storage BitStash, Bitvec and HashMap * [core] improve StorageLayout impl for storage2::Vec * [core] apply rustfmt * [abi] fix clippy warning * [core] add StorageLayout impl for storage2::alloc::Box * [core] add StorageLayout impl for DynamicAllocator * [core/derive] impl StorageLayout derive for struct items * [core/derive] make StorageLayout derive work for enum items * [core/derive] fix expansion for nested enums * [core/derive] fix a bug with nested enums * [core/derive] add unit test for MixedEnum * [core/derive] apply rustfmt * [lang] add revision 2 module * [core] remove generic T: EnvTypes param from Dispatch trait * [lang] remove unnecessary import * [lang] remove unnecessary generic parameter * [lang/macro] generate codegen for the new v2 traits * [core] re-export SpreadLayout and PackedLayout macros from within ink_core * [lang] further adjustments to make ink_lang_macro work with storage2 * [lang, core] apply rustfmt * [lang] fix clippy warning * [lang] fix some bugs with constructors without inputs * [examples] adjust the Flipper example contract for the changes * [lang] remove codegen for testing ink! contracts No longer needed. * [lang] remove test-env crate feature * [lang] minor improvements to EnvAccess utility type * [examples] remove unused import for Flipper * [examples] remove test-env crate feature for Flipper * [lang] remove unused IdentType::span method * [examples] Flipper: adjust contract for ink_lang changes * [examples] adjust Erc20 for the ink_lang changes * [examples] fix some indentation in Cargo.toml * [examples] adjust DNS contract for ink_lang changes * [examples] adjust ERC721 for ink_lang changes There is still a bug that we need to fix in ink_core. * [example] adjust lib.rs of ERC721 to ink_lang changes * [examples] adjust Delegator example contract for ink_lang changes * [lang_macro] generate SpreadLayout and PackedLayout impls for cross-calling wrappers * [core] release storage2::Stash::entries() iterator for non-testing API * [core] add SpreadLayout and PackedLayout impls for () type * [examples] convert multisig contract example to new ink_lang * [examples] fix incrementer Cargo.toml indentations * [examples] adjust runtime-storage example contract for ink_lang changes * [core] apply rustfmt * [lang] generate correct attributes for messages * [examples] make use of derive(Default) for DNS example * [lang_macro] improve some ink! error messages * [lang_macro] update all compile tests * [examples] multisig: ignore doc test This needs serious fixing later! @athei * [lang] remove old ink_lang abstractions * [lang] remove no longer needed ink_lang modules * [lang_macro] add compile test for derive on storage struct * [examples] ignore failing doc test * [examples] actually ignore the failing doc-test for multi-sig * [lang] move v2 module back to origin * [lang_macro] adjust codegen for new dispatch module structure of ink_lang * [lang_macro] no longer impl ink_core::{Flush, AllocateUsing} for ink! dependencies * [lang_macro] use root namespaces in codegen everywhere * [lang] apply rustfmt * [lang_macro] use only root namespaces in codegen (forgot some) * [lang] remove nightly Rust feature usage * [core] re-export StorageLayout from ink_core::storage2::traits * [lang,abi] adjust ink! metadata generation codegen to new layout * [lang] use root namespaces in codegen * [examples] apply rustfmt * [lang] update cross-calling codegen for new storage layout * [examples] update Delegator example contract * [examples] apply rustfmt * [abi] remove StorageLayout trait from ink_abi crate * [examples] apply rustfmt * [examples] fix clippy warning * [examples] fix multisig_plain contract * [examples] apply rustfmt * [examples] fix clippy warning * [examples] remove commented out code from multisig_plain example * [lang] refactor codegen for contract storage struct * [lang] fix unused import warning * [lang] eliminate CrossCallingConflictCfg * [lang] do not generate normal storage struct as dependency * [lang] re-introduce cross calling conflict cfg codegen * [lang/macro] refactor codegen for cross-calling * [lang] add new traits for Event connectors * [lang/macro] use connectors API for event codegen * [lang/macro] apply rustfmt * [lang/macro] remove out-of-ink-module export * [abi] fix selector encoding * [lang/macro] fix unused warning * [examples] adjust example smart contracts for recents ink_lang_macro changes * [abi] fix unit test for selector * [chores] update README ink! example * [alloc] silence warnings of unused unsafe for core::intrinsics::abort * [examples] apply rustfmt * [lang/macro] fix codegen for `cargo test` * [*] replace ink-generate-abi crate feature everywhere with std * [examples] fix Cargo.toml for generating metadata * [examples] move flipper/src/lib.rs one up * [examples] move lib.rs to root folder * [examples] fix Cargo.toml of ERC721 * [examples] apply rustfmt to ERC20 * [examples] apply rustfmt to ERC721 * [examples] apply rustfmt to all examples * [abi] remove unused serialize_selector function * [examples] fix bug that DNS example still used type-metadata crate * [example] fix bug in multisig_plain example
-
Andrew Jones authored
* Move spec tests to separate file * Add contract spec serialization test * Camel case field names * Encode selector as hex string * Move specs module back to top level * Move layout test to tests.rs * Layout externally tagged enums & camelCase * Format code * Rename TypeSpec::ty -> TypeSpec::id * TEMPORARY: Use my type-metadata branch * Derive TypeInfo for Key * Switch from type_metadata to scale_info * Convert layout to using scale-info * Fix scale-info optional dependencies * Fmt * Fix up straggling type-metadata dependency * scake-info master * Use scale-info from crates.io * oops * Fix compilation errors * Fmt * Fix examples manifests * Remove redundant into()
-
- 11 Jun, 2020 1 commit
-
-
Hero Bird authored
-
- 09 Jun, 2020 1 commit
-
-
Hero Bird authored
-
- 26 May, 2020 1 commit
-
-
Hero Bird authored
-
- 25 May, 2020 2 commits
-
-
Hero Bird authored
* [core] move collections/boxed module to alloc module * [core] move main docs from boxed module to Box struct * [core] properly relink moved module * [core] remove unnecessary #Safety docs (not related to PR) * [core] apply rustfmt
-
Hero Bird authored
* [core] implement alloc::finalize for the dynamic storage allocator * [core] adjust tests for the changes * [core] apply rustfmt * [core] fix clippy warning * [core] add SAFETY comments to dynamic storage allocator for Wasm * [core] add a Note to the docs of alloc::{initialize, finalize}
-
- 23 May, 2020 1 commit
-
-
Hero Bird authored
* [core] apply rustfmt * [core] add CacheCell abstraction * [core] re-export CacheCell for other lazy abstractions * [core] make use of CacheCell in LazyIndexMap * [core] make use of CacheCell in LazyHashMap * [core] make use of CacheCell in LazyCell * [core] make use of CacheCell in LazyArray * [core] apply rustfmt
-
- 22 May, 2020 1 commit
-
-
Hero Bird authored
* [core] improve code around assert_index_within_bounds * [core] further simplify assert_index_within_bounds
-
- 21 May, 2020 1 commit
-
-
Hero Bird authored
* [core/derive] implement SpreadLayout and PackedLayout derives * [core/derive] no longer is no_std (not useful) Also simplified its dependencies a bit. * [core/derive] apply rustfmt * [core/derive] fix clippy warning
-
- 20 May, 2020 1 commit
-
-
Hero Bird authored
* [core] apply rustfmt * [core] fix warnings related to Wasm compilation * [core] add SpreadLayout impl for DynamicAllocator * [core] remove unused method on Bits256RefMut * [core] apply rustfmt * [core] remove some unneded ToDo comments The ToDo comments have been moved to the associated PR description. * [core] transit to new traits for LazyIndexMap * [core] transit to new traits for storage::Vec * [core] transit to new traits for storage::Stash * [core] transit to new traits for storage::Bitvec * [core] transit to new traits for dynamic storage allocator * [core] transit to new traits for LazyHashMap * [core] transit to new traits for storage::HashMap * [core] apply rustfmt * [core] remove old storage traits for storage::Pack * [core] transit to new storage traits for LazyArray * [core] transit to new storage traits for storage::SmallVec * [core] transit to new storage traits for the rest of the lazy abstractions * [core] transit to new storage traits for storage::Box * [core] fix compile error in Drop impl for storage::Box * [core] remove old storage trait impls for Bits256 * [core] remove old storage trait impls for dynamic storage allocator * [core] apply rustfmt * [core] remove old traits module * [core] replace KeyPtr2 usage with KeyPtr * [core] rename traits2 module to traits * [core] apply rustfmt * [core] add Drop impl to storage::Vec * [core] don't clear storage if key is none for storage::Vec * [core] impl Drop for storage::Stash * [core] simplify trait bounds for LazyHashMap * [core] impl Drop for storage::HashMap * [core] add Drop impl for storage::SmallVec * [core] add are_trait_objects lint as deny * [core] fix minor formatting issue * [core] add storage2::Memory utility * [core] remove usage of storage::Pack from internals of storage::Bitvec * [core] remove usage of storage::Pack from internals of storage::Stash * [core] remove usage of storage::Pack from internals of storage::HashMap * [core] add better Debug impl for LazyIndexMap The improved impl shows the cached entries which were hidden in the old impl behind the UnsafeCell. * [core] apply rustfmt * [core] improve Debug impl for LazyHashMap It now displays its internal cached entries. * [core] improve Debug impl for lazy::Entry * [core] improve Debug impl for LazyCell * [core] improve Debug impl for LazyArray * [core] apply rustfmt * [core] add REQUIRES_DEEP_CLEAN_UP to SpreadLayout With this we have a way for types to perform an optimized storage clean-up without having to load them in case they do not require a deep clean-up of their state. * [core] implement REQUIRES_DEEP_CLEAN_UP for all built-in types * [core] add non-storage trait impls for storage::HashMap * [core] simplify traits bounds of SpreadLayout impl for storage::HashMap * [core] fix bug in Wasm compilation * [core] add initial unit tests for storage::HashMap * [core] allow loading without key from LazyHashMap * [core] merge storage::HashMap insert and insert_get and fix bugs with it * [core] add new unit test for storage::HashMap * [core] generally allow lazy loading without keys for lazy abstractions * [core] apply rustfmt * [core] remove outdated docs of storage::HashMap::insert * [core] add unit test for storage::HashMap::contains_key * [core] apply rustfmt to storage::HashMap unit tests * [core] add unit test for storage::HashMap::{get, get_mut} * [core] fix the doc comment of storage::HashMap::remove * [core] add unit test for storage::HashMap::take * [core] add unit test for storage::HashMap::insert * [core] remove storage::HashMap::remove The API cannot be implemented properly at this point. * [core] implement Iterator::count efficiently for storage::HashMap iterators * [core] add prelude trait impls for crypto hashers * [core] add unit test for storage::HashMap::iter * [core] remove outdated doc comment line * [core] add doc comments to fowarding-to-packed utility functions * [core] add some high-level documentation for some root storage2 modules * [core] add some more high-level docs * [core] add return value to storage::Stash::defrag The returned value tells the caller how many storage cells have actually been freed by the routine. * [core] add return value to storage::HashMap::defrag * [core] add unit test for storage::HashMap::{values, values_mut} Also add tests for Iterator::size_hint impls. * [core] add tests for Iterator::size_hint impls of storage::Vec * [core] add unit test for storage::HashMap::keys * [core] add unit test for storage::HashMap::defrag * [core] add unit tests for LazyIndexMap * [core] remove lazy::Entry::take_value * [core] remove LazyIndexMap::take * [core] remove Entry::set_state Uses have been replaced with Entry::replace_state. * [core] remove Lazy{Array, HashMap}::take method Replace uses with Lazy{Array, HashMap}::put_get(.., None) * [core] add unit test for LazyIndexMap::put * [core] add unit test for LazyIndexMap::swap * [core] apply rustfmt * [core] cover Default impl of LazyIndexMap with unit test * [core] move imports to top for LazyIndexMap .rs file * [core] refactor lazy::Entry internals a bit * [core] add unit tests for Index impl of storage::Vec * [core] add unit tests for Index impl of storage::SmallVec * [core] add tests for Index impl of StorageStash * [core] improve panic message for Index{Mut} impl of storage::Stash * [core] add unit tests for Index{Mut} impl of storage::Stash * [core] extend unit test for storage::Stash::get * [core] disable certain tests in --release mode testing * [core] add unit test for LazyIndexMap::{get, get_mut} * [core] add some unit tests for LazyArray * [core] add some more unit tests for LazyArray * [core] add some more unit tests to LaryArray * [core] apply rustfmt * [core] add unit tests for LazyCell * [core] add unit test for SpreadLayout impl of LazyCell * [core] extend SpreadLayout test for LazyCell * [core] extend SpreadLayout test to also cover the clear_spread impl * [core] rename unit test for LazyCell * [core] fix clippy warning * [core] fix some LazyCell cache entry in lazy form * [core] add new unit test for Debug impl of lazy initialized LazyCell * [core] add more unit tests for lazily initialized LazyCell * [core] implement shallow clean-up of storage via LazyCell * [core] test that a lazily loaded LazyCell preserves its cached value * [core] apply rustfmt * [core] add additional check for LazyCell cache preservation * [core] fix bug in LazyIndexMap::clear_packed_at * [core] add unit test for SpreadLayout impl of LazyIndexMap * [core] fix bug in LazyArray::clear_packed_at * [core] add unit test for SpreadLayout impl of LazyArray * [core] make LazyArray::capacity and SmallVec::capcity more user friendly * [core] remove unnecessary trait bounds * [core] remove more unnecessary trait bounds * [core] add initial unit test for LazyHashMap * [core] add unit test for LazyHashMap::key_at * [core] apply rustfmt * [core] indent a block in test * [core] add unit test for LazyHashMap::put_get * [core] add unit test for LazyHashMap::{get, get_mut} * [core] add unit test for LazyHashMap::put * [core] add unit test for LazyHashMap::swap * [core] make hash builders reset their accumulator upon finalization * [core] add unit test for SpreadLayout impl of LazyHashMap * [core] fix unit test for LazyHashMap::key_at Also add prefix to hash-key calculation. * [core] add unit tests for SpreadLayout impl of storage::Vec * [core] add unit tests for SpreadLayout impl of storage::SmallVec * [core] add unit tests for SpreadLayout impl of storage::Stash * [core] apply rustfmt * [core] add unit tests for SpreadLayout impl of storage::HashMap * [core] add unit test for DynamicAllocation::key * [core] add unit tests for SpreadLayout impl of storage::Bitvec * [core] fix LazyCell::get unit test * [core] remove unused dependencies from Cargo.toml * [core] add missing docs for storage::{Stash, HashMap} * [core] deny missing docs of public items * [core] add Debug impl to storage::Box * [core] add unit tests for storage::Box * [core] remove internal Pack::{get, get_mut} methods * [core] fix bug in storage::Memory::{get, get_mut} API * [core] add unit tests for storage::Pack * [core] improve storage::Pack unit tests * [core] experimental inline(never) for debug_assertions compilation * [core] apply rustfmt * [core] remove experimental #[inline(never)] * [core] add unit test for Default impl of storage::Pack * [core] add unit tests for storage::Memory * [core] fix a unit test for storage::Box The storage::Box tests did not reset the dynamic storage allocator instance in between their runs which caued them to have side effects on to each other if run single threaded. * [core] fix minor bug in BitRefMut utility of storage::Bitvec * [core] cover storage::Bitvec::get_mut in get_works unit test * [core] add unit tests for BitRefMut utility of storage::Bitvec * [core] apply rustfmt * [core] improve panic message when encountering a double free * [core] adjust double free unit test for storage::Box * [core] improve double free of dynamic storage panic message * [core] apply rustfmt * [core] merge Bits256Ref and Bits256RefMut into ChunkRef<T> * [core] split access.rs into bitref.rs and bitsref.rs * [core] apply rustfmt * [core] replace transmute with pointer cast Thanks clippy! * [core] add comment to explain repr(C) * [core] add PartialEq and Eq impls to BitRefMut * [core] add unit tests for ChunkRef * [core] add failure unit tests for dynamic storage allocator * [core] fix bug in SpreadLayout impl of Option<T> * [core] add unit test for dynamic storage allocator SpreadLayout impl * [core] fix SpreadLayout impl for Result<T, E> * [core] fix yet another bug in SpreadLayout impl of Result<T, E> * [core] move forward_supported_array_lens macro to usage site * [core] refactor some code duplication with clear_spread_root_opt * [core] fix doc comment in storage::Pack * [core] remove some unused unsafe blocks They are going to be re-introduced once the unsafe_op_in_unsafe_fn lint has been implemented in the Rust compiler. * fix typo Co-authored-by:
Andrew Jones <ascjones@gmail.com> * fix typo Co-authored-by:
Andrew Jones <ascjones@gmail.com> * fix typo Co-authored-by:
Andrew Jones <ascjones@gmail.com> * fix typo Co-authored-by:
Andrew Jones <ascjones@gmail.com> * fix typo Co-authored-by:
Andrew Jones <ascjones@gmail.com> * [core] remove usage of storage::Pack in dynamic storage allocator * [core] improve panic message in Lazy::{get, get_mut} * [core] add test for SpreadLayout::clear_spread impl of dynamic storage alloc * [core] remove code dupe * [core] refactor clear_spread_root_opt utility function * [core] implement SpreadLayout::REQUIRES_DEEP_CLEAN_UP for some types * [core] move from bool to u8 for Option and Result SpreadLayout impls * [core] fix bug in SpreadLayout impl for Option * fix typo Co-authored-by:
Andrew Jones <ascjones@gmail.com> * [core] update LazyCell SAFETY comment * [core] update Entry docs * [core] remove unneeded code in lazy::Entry::pull_packed_root * fix typo Co-authored-by:
Andrew Jones <ascjones@gmail.com> * fix typo Co-authored-by:
Andrew Jones <ascjones@gmail.com> * fix typo Co-authored-by:
Andrew Jones <ascjones@gmail.com> * fix typo Co-authored-by:
Andrew Jones <ascjones@gmail.com> * [core] remove commented out code * [core] add new unit test for dynamic storage allocator * [core] refactor global storage allocator initialization routines * [core] fix Wasm compilation errors * [core] apply rustfmt * [core] surpress bad clippy lint * [core] remove dead code * [core] improve call_setup_works test * [core] fix bug in initialize_for for off-chain env * [core] initial steps to factor out BitStash from DynamicAllocator * [core] apply rustfmt * [core] add Derive impl for BitStash * [core] make use of storage::BitStash from dynamic storage allocator * [core] add unit tests for storage::BitStash * [core] apply rustfmt * [core] remove invalid TODO comment * [core] fix some out of bounds panic messages * [core] remove deliberate memory leak in test suite * [core] fix build failure for Wasm target * [core] add unit tests for SpreadLayout & PackedLayout impls of primitives * [core] add unit tests for packed layout explicitely * Fix some typos * Add simple double ended iter test * typos * comment typos * split hashmap to hash map in comments * fix typo Co-authored-by:
Andrew Jones <ascjones@gmail.com> * fix typo in unreachable! message Co-authored-by:
Andrew Jones <ascjones@gmail.com> * fix typo in expects message Co-authored-by:
Andrew Jones <ascjones@gmail.com> * fix typo Co-authored-by:
Andrew Jones <ascjones@gmail.com> * fix typo Co-authored-by:
Andrew Jones <ascjones@gmail.com> * [core] add more comments to storage2::HashMap::defrag * [core] make early return for storage2::HashMap::defrag for limit = 0 * [core] improve storage2::HashMap::contains_key implementation * [core] rename new_vec_works test to new_works * [core] apply Andrew's suggestions (and more) * [core] fix typo: increase -> decrease * [core] add panic to Bitvec::push in case it reached its maximum capacity * [core] update comments for storage bit stash * [core] add more explanation comments * [core] some more renamings of test internals * improve reasoning Co-authored-by:
Andrew Jones <ascjones@gmail.com> * fix typo Co-authored-by:
Andrew Jones <ascjones@gmail.com> Co-authored-by:
Andrew Jones <ascjones@gmail.com>
-
- 27 Apr, 2020 1 commit
-
-
Hero Bird authored
-
- 24 Apr, 2020 1 commit
-
-
Hero Bird authored
* [core] fix single threaded tests Tests that have been run using: cargo test -- --test-threads=1 * [lang] fix off-chain testing for contracts
-
- 23 Apr, 2020 1 commit
-
-
Hero Bird authored
* [core] add scale::Output to Wrap (no_std) + minor improvements * [core] turn asserts into debug_asserts * [core] remove unused is_empty method
-
- 06 Apr, 2020 1 commit
-
-
Hero Bird authored
* [core] add Debug impls to hash abstractions * [core] add Write impl for std builds of hash::Wrap
-
- 30 Mar, 2020 1 commit
-
-
Hero Bird authored
* [core] refactor and improve hash module * [core] rename hash_raw[_using] -> hash_bytes[_using] * [examples] fix runtime-storage contract example
-
- 25 Mar, 2020 2 commits
-
-
Hero Bird authored
* [core] fix unused warning * [*] bump version 2.0.0 -> 2.1.0
-
Hero Bird authored
* [core] initial implementation of high-level hashing infrastructure * [core] apply rustfmt * [core] add doc-comment to state some potential optimization * [core] add Wrap as another built-in way of creating an InputBuffer instance * [core] make &mut T implement InputBuffer if T: InputBuffer * [core] publicly export Wrap * [core] remove the two simple forms of all hash functions * [core] add extensive docs with examples to all hash functions * [core] fix doc tests * [core] fix bug in InputBuffer impl of Wrap * [core] add asserts to hash doc tests * [core] apply rustfmt * [core] simplify doc tests * [core] adjust doc comments for raw hashes * [core] improve docs * [core] add missing internal docs * [core] rename InputBuffer -> Accumulator * [core] apply rustfmt * [core] make Accumulator impl more explicit Co-Authored-By:
Nikolay Volf <nikvolf@gmail.com> * [core] make Accumulator impl less explicit Co-Authored-By:
Nikolay Volf <nikvolf@gmail.com> * [core] make Accumulator impl less explicit Co-Authored-By:
Nikolay Volf <nikvolf@gmail.com> * [core] make Accumulator impl less explicit Co-Authored-By:
Nikolay Volf <nikvolf@gmail.com> * [core] remove minor code dupe * [core] completely refactor hash module * [core] remove XX hash from low-level and high-level API * [core] fix typo in docs * [core] fix macro generated docs Co-authored-by:
Nikolay Volf <nikvolf@gmail.com>
-
- 21 Mar, 2020 1 commit
-
-
Hero Bird authored
* [core] implement crypto hash functions supported by contracts pallet * [core] fix clippy warnings * [core] add unit tests for new crypto hashes * [core] refactor unit tests for crypto hashes * [core] make hash functions return their hash through output buffer * [core] update docs of hash APIs * [core] put hash API in its own sub-module of env * [core] fix on-chain hash implementations * [core] apply rustfmt
-
- 18 Mar, 2020 1 commit
-
-
Hero Bird authored
* [*] initial swipe over codebase to tag 2.0.0 release * [*] fix a number of issues with the previous version setup
-
- 17 Mar, 2020 2 commits
-
-
Hero Bird authored
* [core, lang] add support for ext_terminate * [lang] apply rustfmt
-
Hero Bird authored
* [core, lang] add support for ext_transfer * [core] apply rustfmt * fix typo Co-Authored-By:
Andrew Jones <ascjones@gmail.com> * [core] fix remaining bugs in the on-chain engine implementation Co-authored-by:
Andrew Jones <ascjones@gmail.com>
-