- 10 Sep, 2020 1 commit
-
-
Michael Müller authored
* [core] Rename Entry to Internal Entry * [core] Add Entry API for storage2::LazyHashMap * [core] Add storage2::LazyHashMap::len() * [core] Migrate tests to use storage2::LazyHashMap::len() * [core] Implement FromIterator and Extend for storage2::LazyHashMap * [core] Implement macro to generate LazyHashMap + HashMap Entry API tests * [core] Remove redundant storage2::HashMap Entry API tests * [core] Make storage2::HashMap Entry API use storage2::LazyHashMap's Entry API * [core] Move parameterized Entry API tests into separate file * [core] Rename InternalEntry to StorageEntry * [core] Make lazy_hmap module public * [core] Generate Entry API benches for LazyHashMap and HashMap from macro * [core] Minor streamlining * [core] Display hashmap variant in benchmark description * [core] Fix comment * [core] Fix typos * [core] Make more use of BTreeMap Entry API * [core] Replace unwrap with expect * [core] Improve comment * [core] Handle loading from storage * [core] Restrict unsafe * [core] Less ops for case "entry not in cache, but in storage" * [core] Rename len() * [core] Fix typo * [core] Fix visibility * [core] Address comments * [core] Add test to verify that cache is marked as 'Mutated' * [core] Shorten code with utility function * [core] Improve naming
-
- 25 Aug, 2020 1 commit
-
-
Hero Bird authored
* [core] remove get_runtime_storage and invoke_runtime * [core] invalidate all implementations and usages of ext functions * [core] adjust ext_ functions in ext.rs * [core] add ReturnFlags to public API * [core] remove off-chain impls for get_runtime_storage and invoke_runtime * [core] rename ext::ext_input -> ext::input * [core] change return type of get_contract_storage Previously returned Option<Result<R>> and now returns Result<Option<R>>. This change is more pragmatic. * [core] add conversion from ext::Error to EnvError * [core] on-chain: add new utilities for static buffer modifications - EncodeScope: for efficiently appending encoded values - ScopedBuffer: for efficiently chunking buffers * [core] add impls for on-chain property getters * [core] remove no longer needed utiltiy function * [core] on-chain: new impl for invoke_contract and eval_contract * [core] on-chain: new impl for get_contract_storage * [core] on-chain: new impl for decode_input We should also rename this to simply "input" later. * [core] on-chain: new impl for output Now also uses the new ReturnFlags abstraction. * [core] on-chain: new impl for instantiate_contract * [core] on-chain: remove unused API * [core] on-chain: move EncodeScope and ScopedBuffer to buffer.rs * [core] on-chain: implement rest of the on-chain API * [core] add ScopedBuffer::take_bytes * [core] Add Env::call_chain_extension trait method * [core] remove unused helper methods * [core] on-chain: simplify static buffer - No more length - No more encodable - Only full range access * [core] add env::call_chain_extension public API * [core] rename Env::output -> return_value * [core] off-chain: adjust a bunch of off-chain methods to new interfaces * [core] off-chain: adjust get_contract_storage return type * [core] off-chain: remove RuntimeCallHandler and RuntimeStorage facilities * [core] off-chain: adjust some tests * [core] off-chain: remove OffCall utility type * [core] off-chain: implement chain extension handler * [core] adjust panic message * [core] apply rustfmt * [core] apply clippy suggestion * [core] off-chain: re-export ChainExtension and ChainSpec types from test API * [core] on-chain: retain panic messages * [core] rename ext_ to seal_ for all on-chain functions * [alloc] fix some warnings and add some minor comments * [core] add wasm_import_module = "seal0" * [core] introduce new Seal error codes * [core] directly return ReturnCode from C-FII * [core] make transfer return Result * [core] improve some doc comments * rename some old errors to their new names * [core] remove unused env errors and rename some off-chain errors * [core] fix bug in ReturnFlags::set_reverted (formerly known as set_trapped) * [core] avoid From impl for () for OffChainError * [lang] adjust lang layer for changes in core - Remove invoke_runtime - Remove get_runtime_storage - Rename gas_price -> weight_to_fee - Add ReturnFlags to return_value call * [core] turn redundant asserts into debug_assert * [core] be more strict when handling ext::get_storage error * [core] implement clippy suggestion * [examples] remove no longer useful runtime-storage contract We no longer support the get_runtime_storage host function. It will eventually be reintroduced at a later point through chain extensions. * [core] disable chain extensions by default Can be enabled by experimental crate feature: - unstable_chain_extensions * [lang] apply clippy suggestion to use matches! macro * [core] fix docs for ext_return Co-authored-by:
Alexander Theißen <alex.theissen@me.com> * [core] fix return type of api::return_value Not sure why the compiler didn't mention this return type failure ... Co-authored-by:
Alexander Theißen <alex.theissen@me.com> * [core] fix doc comment of Env::return_value * [core] introduce RawReturnCode as a layer between Seal error codes and ink! * [alloc] make #[alloc_error_handler] private * [alloc, core] move alloc_handler from ink_alloc to ink_core * [core] replace useless intermediate ReturnCode type * [core] rename RawReturnCode -> ReturnCode * [core] apply rustfmt * [core] apply rustfmt * [core] off-chain: rename invoke -> eval for chain extension calling * [core] use Ptr32 and Ptr32Mut to encapsulate pointer -> u32 conversions * [core] make new Ptr32 and Ptr32Mut abstractions more type safe Co-authored-by:
Alexander Theißen <alex.theissen@me.com>
-
- 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 2 commits
-
-
Hero Bird authored
* [lang/macro] move some items around * [lang/macro] rename AttributeFlag -> AttributeArg This is in order to sync naming with the syn crate. * [lang/macro] implement ink! config parameter parsing * [lang/macro] add doc comment to into_nested_meta helper function * [lang/macro] add preliminary ast module * [lang/macro] replace usage of ink_primitives::hash module * [lang/macro] slightly refactor Selector * [lang/macro] fully implement AttributeArgs definitions + tests * [lang/macro] add IntoIterator for AttributeArgs * [lang/macro] base ir2::Config on the new ast::AttributeArgs definitions * [lang/macro] apply rustfmt * [lang/macro] add some ToTokens implementations * [lang/macro] add unit tests for ir2::Config * [lang/macro] introduce general Error type * [lang/macro] remove RustItem * [lang/macro] follow-up: remove RustItem * [lang/macro] add ir2::contains_ink_attributes helper function * [lang/macro] initial skeleton for TryFrom<syn::Item> for ir2::Item impl * [lang/macro] add first_ink_attribute helper function * [lang/macro] refactor initial skeleton for ir2::Item TryFrom impl * [lang/macro] re-export first_ink_attribute to ir2 module * [lang/macro] add unit tests for contains_ink_attributes and first_ink_attribute * [lang/macro] enhance initial TryFrom skeleton for ir2::Item * [lang/macro] simplify item_attrs * [lang/macro] further simplify item_attrs * [lang/macro] minor improvement * [lang/macro] add ExtError to extend syn::Error * [lang/macro] add Attrs trait to extract attributes from syn types * [lang/macro] re-base error infrastructure on to syn::Error * [lang/macro] adjust unit tests for new error infrastructure * [lang/macro] remove old error types * [lang/macro] use syn::Error in ir2::Config * [lang/macro] adjust Config unit tests for syn::Error usage * [lang/macro] rename ensure_no_duplicates -> ensure_no_duplicate_attrs * [lang/macro] add AttributeArg::kind method * [lang/macro] use full type path * [lang/macro] implement InkAttribute::from_expanded * [lang/macro] implement ir2::Storage TryFrom * [lang/macro] minor refactor * [lang/macro] add InkAttribute::ensure_no_conflicts * [lang/macro] add some failure paths to TryFrom<_> for ink! Storage struct * [lang/macro] add unit tests for ink! storage struct conversion * [lang/macro] apply rustfmt * [lang/macro] fix some clippy warnings * [lang/macro] rename Storage::item_struct field to ast * [lang/macro] rename Event::item_struct -> ast * [lang/macro] add some method and an iterator to ink! event struct * [lang/macro] add initial implementation of ink! event's TryFrom * [lang/macro] add derives for Debug, PartialEq and Eq for ink! event * [lang/macro] add initial success path unit tests for TryFrom for ink! event * [lang/macro] fix bug with #[ink(topic)] annotated event fields * [lang/macro] apply rustfmt * [lang/macro] apply clippy suggestion * [lang/macro] add first bunch of failure event TryFrom unit tests * [lang/macro] normalize the current failure event unit tests * [lang/macro] add more event unit tests for topics on fields * [lang/macro] add Debug, PartialEq and Eq derives for some ir2 types * [lang/macro] add unit tests for ir2::Item * [lang/macro] add ir2::ImplBlock::is_ink_impl_block * [lang/macro] add doc comment note * [lang/macro] rename ImplBlockItem::Rust -> Other * [lang/macro] apply rustfmt * [lang/macro] add stub TryFrom impls for Constructor and Message * [lang/macro] add TryFrom impl for ir2::ImplBlockItem * [lang/macro] add initial skeleton for TryFrom impl for ir::ImplBlock * [lang/macro] implement ir2::sanitize_attributes * [lang/macro] split impl_block.rs into multiple files as sub modules * [lang/macro] apply rustfmt + remove unused imports * [lang/macro] split item module into multiple modules * [lang/macro] finalize move into multiple files from commit before * [lang/macro] add lots of error checks to TryFrom for Message * [lang/macro] improve TryFrom tests for ir2::ImplBlock * [lang/macro] make Event and Storage use ir2::sanitize_attributes * [lang/macro] add additional constructors for Iter{Constructors, Messages} * [lang/macro] add visibility check to Message TryFrom impl * [lang/macro] add Message::Visibility and getter * [lang/macro] implement Message::receiver getter * [lang/macro] extend ImplBlock doc comment note section * [lang/macro] add Message::Visibility getters * [lang/macro] refactor Receiver getters * [lang/macro] fix doc comment * [lang/macro] add unit test for Message::visibility getter * [lang/macro] add unit test for Message::receiver getter * [lang/macro] move Visibility from message.rs to impl_item.rs * [lang/macro] add Constructor::visibility getter * [lang/macro] implement callable.rs * [lang/macro] make use of new shared callable.rs utilities * [lang/macro] remove visibility from impl_item.rs * [lang/macro] fix some imports * [lang/macro] implement constructor check for missing return type * [lang/macro] implement constructor check for invalid self receiver * [lang/macro] add some ink! constructor try_from unit tests * [lang/macro] add ink! constructor visibility getter unit test * [lang/macro] fix unit test for ink! message visibility * [lang/macro] add many unit tests for ink! constructor TryFrom impl * [lang/macro] extend success TryFrom impl unit tests * [lang/macro] factor out sanitize_attributes for TryFrom impls * [lang/macro] remove salt from messages and constructors * [lang/macro] add salt extraction for ink! impl block * [lang/macro] add unit test for ink! impl block salt * [lang/macro] implement InkAttribute::{salt, selector} getters * [lang/macro] make use of InkAttribute::salt in TryFrom for ir2::ImplBlock * [lang/macro] apply rustfmt * [lang/macro] implement InkAttribute::is_payable * [lang/macro] make use of InkAttribute::{is_payable, selector} * [lang/macro] add module doc to callable.rs * [lang/macro] rename ImplBlock -> ItemImpl * [lang/macro] rename impl_block module to item_impl * [lang/macro] rename ImplBlockItem -> ImplItem * [lang/macro] add {Message, Constructor}::is_payable * [lang/macro] add doc note to ir2::ImplItem * [lang/macro] add implementation for InputsIter * [lang/macro] make use of InputsIter in ink! message and constructor * [lang/macro] add getter for the return type of an ink! message * [lang/macro] add unit test for ink! message is_payable * [lang/macro] add unit test for Constructor::is_payable * [lang/macro] rewrite receiver_works unit test for ink! message * [lang/macro] add unit test for ink! message inputs * [lang/macro] add unit test for ink! message output getter * [lang/macro] add identifier getter to ink! message and constructor * [lang/macro] apply rustfmt * [lang/macro] apply rustfmt * [lang/macro] implement clippy suggestions * [lang/macro] add unit test for Constructor::inputs * [lang/macro] refactor Storage::is_ink_storage * [lang/macro] add Event::is_ink_event * [lang/macro] add InkItem::is_ink_item * [lang/macro] apply rustfmt * [lang/macro] fix many non-dead-code warnings and allow dead-code for ir2 * [lang/macro] implement Contract::config getter * [lang/macro] allow compile failure of some in-doc tests * [lang/macro] implement TryFrom for ir2::Module * [lang/macro] re-export ImplItem from ir2 * [lang/macro] implement visibility check for ink! impl blocks * [lang/macro] fix unit test * [lang/macro] improve error message for visibility check * [lang/macro] add unit test for visibility failure * [lang/macro] apply rustfmt * [lang/macro] introduce Callable trait to unify ink! messages and constructors * [lang/macro] craft initial skeleton of compose_selector function * [lang/macro] implement ItemImpl::{self_type, trait_path, salt} * [lang/macro] extend compose_selector docs with a usage recommendation section * [lang/macro] implement initial version of compose_selector * [lang/macro] apply clippy suggestion * [lang/macro] fix some bugs in compose_selector implementation * [lang/macro] add unit tests for compose_selector * [lang/macro] rename ir2::Module -> ir2::ItemMod (syn) * [lang/macro] rename module.rs -> item_mod.rs * [lang/macro] remove some imports, use names directly * [lang/macro] rename Event::ast -> item * [lang/macro] refactor event fields iterator * rebase resolve conflict * [lang/macro] move ir2 and ast modules to new crate * [lang/ir] some general renamings after crate move * [lang/macro] no longer refer to ast and ir2 modules * [lang/macro] get rid of all bail! and bail_span! macro calls They hide significant control flow which is bad for readability. * [lang/ir] export error macros * [lang/ir] remove unused import * [lang/macro] make use of new ink_lang_ir crate * [lang/ir] improve documentation and module structure * [lang/ir] apply clippy suggestions + formatting * [lang/macro] apply clippy suggestions * [lang/ir] further improvements to the documentation * [lang/ir] fix error macro docs * [lang/ir] add missing re-export for ir::Contract * [lang/ir] improve ir::Contract docs * [lang/ir] minor refactor of ir::Contract * [lang/ir] extend docs for ir::Contract * [lang/ir] make ast::AttributeArgs::args field private * [lang/ir] apply rustfmt * [lang/ir] improve docs * [lang/ir] further documentation improvements * [lang/ir] add missing exports * [lang/ir] adjust format_err to require its expr to be T:Spanned Formerly this was T:ToTokens which is more restrictive than it should have been. * [lang/ir] refactor format_err_span and format_err macros + docs * [lang/ir] rename format_err macro -> format_err_spanned * [lang/ir] rename format_err_span macro -> format_err * [lang/ir] apply rustfmt * [lang/ir] minor improvements to format_err{_spanned} * [lang/ir] implement ToTokens for all ink! IR structures This is useful because T:ToTokens automatically implements syn::spanned::Spanned while being simpler to implement than syn::spanned::Spanned. * [lang/ir] add links to tracking issue for format_err{_spanned} * [lang/ir] minor docs improvements * [lang/ir] do not re-export everything that belongs to attributes * [lang/ir] fix compilation in test mode * [lang/ir] add ir::ItemMod checks for ink! storage, message and constructor quantities * [lang/ir] make ast module private and move ir module to root * [lang/ir] rename IterItemImpls -> IterItemImpls * [lang/ir] remove ir::EnvTypes from public API * [lang/ir] rename ir::ItemMod::impl_blocks -> item_impls * [lang/ir] rename ir::Module::item_impls -> impls * [lang/ir] make ir::Config::env_types return syn::Path * [lang/ir] move mod doc to lib doc * [lang/ir] fix event doc test * [lang/ir] make Event::is_ink_event module private * [lang/ir] apply rustfmt * [lang/ir] fix Storage doc test * [lang/ir] remove unnecessary rust annotation for doc test * [lang/ir] fix doc tests for constructor and message * [lang/ir] fix fmt todo! avoidance * [lang/ir] remove unneded let binding * [lang/ir] fix doc tests of impl_item/mod.rs * [lang/ir] make ItemImpl::is_ink_impl_block module private * [lang/ir] re-export InputsIter * [lang/ir] add getter for ir::ItemImpl::items * [lang/ir] rename salt -> namespace * add doc link in MetaNameValue doc Co-authored-by:
Michael Müller <mich@elmueller.net> * [lang/ir] rename Callable::selector -> user_provided_selector This is going to avoid confusion with composed selector concept. * [lang/ir] make Storage::is_ink_storage module private * [lang/ir] fix doc link * [lang/ir] expose composed selector through messages and constructors iter * [lang/ir] apply rustfmt * [lang/ir] fix item_mod.rs doc tests * [lang/ir] ignore contract doc test for now It is hard to test because of the unknown ink::contract attribute at the top. * [lang/ir] add item getter to CallableWithSelector * [lang/ir] add Callable::statements getter * [lang/ir] add ir::ItemMod::ensure_no_overlapping_selectors + tests * [lang/ir] remove duplicate code * 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> * [lang/ir] move config.rs -> attr_args.rs * [lang/ir] update doc comments * [lang/ir] some more doc polishing * [lang/ir] fix outdated doc comment * [lang/ir] remove outdated doc comment * fix typo Co-authored-by:
Andrew Jones <ascjones@gmail.com> * fix typo Co-authored-by:
Andrew Jones <ascjones@gmail.com> * [lang/ir] remove unneeded let binding in doc test * [lang/ir] fix conflicting constructor attribute closure Co-authored-by:
Andrew Jones <ascjones@gmail.com> * [lang/ir] fix doc comment * [lang/ir] remove outdated doc comment * fix doc comment Co-authored-by:
Andrew Jones <ascjones@gmail.com> * [lang/ir] rename 'outer label to 'repeat * [ci] add lang/ir to ALL_CRATES * [lang/ir] update blake2 dependency from 0.8 -> 0.9 * [lang/macro] remove unneeded blake2 dependency * [lang/ir] take last segment of trait path * [lang/ir] slightly improve overlapping selector error message * [lang/ir] improve overlapping selector formatting * [lang/ir] add unit test for composed selector with relative trait path * [lang/ir] improve unit test for relative trait path composed selector * [lang/ir] fix bug that namespace was a valid attribute on ink! messages * [lang/ir] add unit test to check against conflicting attributes on ink! messages * [lang/ir] fix bug that namespace was an allowed attribute for ink! constructors * [lang/ir] add unit test to check against conflicting ink! constructor attributes * [lang/ir] add success tests for ir::ItemMod TryFrom * [lang/ir] fix out-of-line ink! module error message * [lang/ir] add a bunch of ink! module TryFrom failure unit tests * [lang/ir] add unit test for ink! event fields iterator * [lang/ir] apply rustfmt Co-authored-by:
Michael Müller <mich@elmueller.net> Co-authored-by:
Andrew Jones <ascjones@gmail.com>
-
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
-
- 24 Jun, 2020 1 commit
-
-
Andrew Jones authored
* Incrementer * DNS * ERC 20 * [examples] set all crate-types to cdylib * [examples] delegator * [examples] remove remaining abi and profile.release cruft * Restore rlib to delegator dependencies * Remove redundant reexports * Restore reexports for delegator sub contracts * Fix type * Install version of cargo-contract from branch * Use cargo-contract ink-ci branch * dns crate type
-
- 22 Jun, 2020 2 commits
-
-
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>
-
Andrew Jones authored
* Hack to see if #[start] works * Hack to see if #[no_mangle] works * Remove incrementer bin target * Use Rust extern api and pass back InkProject struct directly * Uglify name * Update remaining examples to use generate metadata function * Do not generate for ink-as-dependency to make delegator work * Remove explicit version from abi dependency * Remove duplication * Remove GenerateAbi trait
-
- 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
-
- 15 Jun, 2020 1 commit
-
-
Alexander Theißen authored
* Fix multisig example doctest * Fix formatting * Remove Selector::from_str() usage
-
- 14 Jun, 2020 1 commit
-
-
Hero Bird authored
-
- 13 Jun, 2020 5 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
* [chores] add primitives/target to gitignore * [primitives] add Key2 replacement for Key # Conflicts: # primitives/src/lib.rs * [primitives] add KeyPtr2 replacement for KeyPtr * [primitives] add benchmark tests for Key, Key2, KeyPtr and KeyPtr2 * [primitives] rename some benches * [primitives] inline some KeyPtr methods This is mainly to make comparison between old and new KeyPtr fairer. # Conflicts: # primitives/src/key_ptr.rs * [primitives] carve out fallback for big-endian to_bytes This makes it better testable. * [primitives] include big-endian fallback procedures into a test * [primitives] add doc comment to Key2 * [primitives] apply rustfmt * [primitives] fix clippy warning * [primitives] add repr(transparent) to Key2 * [primitives] replace AsRef<[u8; 32]> impl with Key2::try_as_bytes method * [primitives] add SAFETY comment to unsafe block * [primitives] apply rustfmt * [primitives] add Display impl to Key2
-
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
-
- 05 Jun, 2020 1 commit
-
-
Hero Bird authored
-
- 26 May, 2020 1 commit
-
-
Hero Bird authored
-
- 25 May, 2020 3 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
-
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 2 commits