1. 08 Oct, 2020 3 commits
    • Hero Bird's avatar
      Rename EnvTypes -> Env (and many other renamings) (#513) · 8edbfd28
      Hero Bird authored
      * [env] rename Env -> EnvBackend, TypedEnv -> TypedEnvBackend
      
      * [env] rename EnvError -> Error
      
      * [*] rename ink_env::EnvTypes -> Environment
      
      Namely rename:
      ink_env::EnvTypes -> Environment
      ink_env::DefaultEnvTypes -> DefaultEnvironment
      
      * [*] update cfg-if dependency 0.1 -> 1.0
      
      * [alloc] rename ink_alloc -> ink_allocator
      
      * [env] forgot to rename in lib.rs
      
      * [env, lang] fix some bugs with ink_env::EnvError -> Error renaming
      
      * [ci] adjust renaming of ink_alloc -> ink_allocator
      
      * [env] apply rustfmt
      
      * [lang/macro] re-enable disabled UI test
      
      * [examples] DNS: apply rustfmt
      
      * [examples] ERC-20, ERC-721: apply rustfmt
      8edbfd28
    • Andrew Jones's avatar
      f197a986
    • Hero Bird's avatar
      Implement event topic code generation (#510) · 6f701e50
      Hero Bird authored
      * [env] remove unnecessary copy of no longer used mod.rs
      
      * [env, lang] make crates compile again under newest Rust nightly
      
      * [env] on-chain: enhance ScopedBuffer
      
      Add append_encoded and take_appended methods.
      
      * [env] remove old Topics trait
      
      * [env] add new Topics infrastructure
      
      * [env] implement new Topics infrastructure for on/off chain environments
      
      * [env] remove dummy event
      
      * [env] make env::topics::state mod externally accessible
      
      It stays hidden in docs.
      
      * [lang/codegen] generate proper Topics impls for ink! events
      
      * [env] apply rustfmt
      
      * [lang/codegen] fix codegen for events without topics
      
      * [lang/macro] fix UI test
      
      * [env] off-chain: clean-up slightly
      
      * [examples] ERC-20: improve tests for event topics
      
      * [env] remove commented-out line
      
      * [lang/codegen] include event signature into topics
      
      This is the same as it is done for non-anonymous Solidity events.
      The signature of an ink! event is: ContractName::EventName.
      E.g. for ERC-20's Transfer event it is: Erc20::Transfer
      
      * [examples] ERC-20: adjust test for changes with event topics
      
      * [lang/ir] add support for anonymous events
      
      * [lang/codegen] add codegen for anonymous events
      
      * [lang/ir] apply rustfmt
      
      * [lang/macro] comment out failing unit test
      
      Fails due to rustc version mismatch and some recent error display change.
      
      * [examples] apply rustfmt
      6f701e50
  2. 07 Oct, 2020 1 commit
    • Andrew Jones's avatar
      Deserialize metadata (#488) · d7a47f4a
      Andrew Jones authored
      * Make public fields for InkProject and specs
      
      * Make layout fields public
      
      * Use scale-info from branch
      
      * Add Deserialize derives, use ReadOnlyRegistry
      
      * Deserialize contract metadata specs
      
      * Deserialize layout2 specs
      
      * WIP decode hex
      
      * Use impl_serde crate for hex byte string serde
      
      * Test for selector deserialization
      
      * Fix up custom deserialization
      
      * Export selector and add to_vec impl
      
      * Fmt
      
      * Fix up spec segments IntoCompact
      
      * Make name public
      
      * Update to latest scale-info master
      
      * Replace pub fields with getters
      
      * Replace pub fields with getters in spec
      
      * Fix search replace error with any::TypeId
      
      * Use scale-info 0.4
      
      * Fmt
      
      * Remove commented out getter
      
      * Fix up other scale-info deps
      
      * Clippy
      
      * Fix up message and constructor spec builder method names
      
      * Serialize empty bytes vec without 0x prefix
      d7a47f4a
  3. 05 Oct, 2020 1 commit
  4. 02 Oct, 2020 1 commit
    • Hero Bird's avatar
      Minor API surface clean-up (#502) · 4770498c
      Hero Bird authored
      * [env] remove crate-level re-exports for the hash module
      
      * [env] rename ink_env::println -> debug_println
      
      This makes the usage intent clearer.
      
      * [lang] remove deprecated method
      
      * [lang] hide all definitions that are only needed for codegen purposes
      
      * [lang] remove False, move True
      
      * [lang] remove unnecessary where bounds
      
      * [lang] add EnvAccess forwarding for built-in crypto hashes
      
      * [README] add ink_lang doc link
      
      * [env] fix on-chain compilation
      
      * [lang] apply clippy suggestion
      4770498c
  5. 01 Oct, 2020 3 commits
    • Hero Bird's avatar
      Split ink_core crate into ink_env and ink_storage (#500) · cfe52e98
      Hero Bird authored
      * [*] split ink_core into ink_env and ink_storage
      
      The workspace does not yet compile!
      
      * [env] make compile again
      
      * [env] fix doc tests
      
      * [storage] make crate compile again
      
      * [env] fix some doc comment links
      
      * [README] flipper example: remove unused import
      
      * [storage/derive] fix compilation of generated code
      
      * [README] add ink_storage and ink_env doc links
      
      * [env, primitives, storage] fix docs
      
      * [lang] make compile again
      
      * [lang/codegen] use absolute paths in #[ink::test] proc. macro
      
      * [examples] make compile again
      
      * [*] apply rustfmt
      
      * [env] remove unneeded dependencies
      
      * [storage] remove all unneeded dependencies and crate features
      
      * [*] update outdated dependencies
      
      * [env, lang] remove unused dependencies
      
      * [*] fix comments
      
      * [*] fix some intra doc links
      
      * [ci] adjust to split ink_env and ink_storage crates
      
      * [ci] forgot to handle split ink_env and ink_storage in docs
      
      * [storage] fix fuzz tests
      
      * [examples] apply rustfmt
      
      * [examples] apply rustfmt (ERC-721)
      cfe52e98
    • Denis_P's avatar
      8c385f4d
    • Hero Bird's avatar
      Implement new crypto hash API (#499) · 3f36f02e
      Hero Bird authored
      * [core] add new crypto hash API
      
      * [core] move new crypto hash definitions to dedicated module
      
      * [core] integrate the new env::hash module into core::storage module
      
      * [core] fix LayoutCryptoHasher impls
      
      * [core] add doc test to hash_encoded
      
      * [core] fix minor things in lazy hash map
      
      * [core] apply rustfmt
      
      * [core] remove old crypto hash module
      
      * [core] base DynamicAllocation::key implementation on new hash API
      
      * [core] remove old hash impls from on-chain env
      
      * [core] make DynamicAllocation::key impl work on Wasm32 target
      
      * [core] remove the entire deprecated ink_core::hash module
      3f36f02e
  6. 30 Sep, 2020 2 commits
  7. 29 Sep, 2020 2 commits
    • Hero Bird's avatar
      Move all ink! crates into the crates directory (#494) · 31276d89
      Hero Bird authored
      * [*] move all ink! crates into crates/ directory
      
      * [ci] adjust .gitab-ci.yml to crates/ directory
      
      * [ci] fix GitLab .gitlab-ci.yml (attempt #2)
      
      * [ci] forgot some lines in attempt #2
      
      * [examples] fix example smart contracts
      
      They need to readjust their paths for the crates/ directory.
      31276d89
    • Hero Bird's avatar
      Finalize ink! 3.0 integration (#493) · 529bd588
      Hero Bird authored
      * [lang/codegen] initial impl of the new ink! codegen
      
      This new codegen is based on the (also) new ink! IR.
      
      * [lang/macro] apply rustfmt to imports
      
      * [lang/codegen] apply rustfmt
      
      * [lang/ir] add ItemMod::{attrs, vis} getters
      
      * [lang/codegen] make use of ir::ItemMod::{attrs, vis} in codegen
      
      * [lang/codegen] restructure ink_lang_codegen library
      
      * [lang/codegen] appliy clippy suggestion
      
      * [lang/ir] add Event::attrs() and ToTokens impl for EventField
      
      * [lang/codegen] apply rustfmt
      
      * [lang/codegen] implement Event code generator
      
      * [lang/codegen] make use of the new Events code generator
      
      * [lang/ir] make ir::Callable always Copy and Clone
      
      * [lang/ir] rename CallableWithSelector::item -> callable
      
      * [lang/ir] add Callable::kind() trait method
      
      * [lang/codegen] add dispatch enum code generation
      
      * [lang/codegen] enable dispatch code generator
      
      * [lang/codegen] add generation for constructor dispatch enum
      
      * [lang/codegen] implement contract entry points
      
      * [lang/codegen] implement code generation for DispatchUsingMode impl
      
      * [lang/codegen] add trait impl namespaces Msg<S> and Constr<S>
      
      * [lang/ir] add ir::Message::inputs_span() getter
      
      * [lang/codegen] add codegen for dispatch trait impls for ink! messages
      
      * [lang/codegen] plug-in dispatch trait impls code gen
      
      * [lang/ir] add Callable::inputs_span trait method
      
      * [lang/codegen] implement dispatch trait impl codegen for ink! constructors
      
      Also this implementation avoids a lot of code duplication with the similar code generation for dispatch trait impl of ink! messages.
      
      * [lang/codegen] make generate_input_bindings doc tests pass
      
      * [lang/ir] apply rustfmt
      
      * [lang/codegen] fix message and constructor namespaces
      
      * [lang/ir] add {Message, Constructor}::attrs getter
      
      * [lang/codegen] implement codegen for ink! ItemImpls
      
      * [lang/codegen] remove some unneeded imports for ItemImpl codegen
      
      * [lang/codegen] automatically import ink_lang's Env, EmitEvent and StaticEnv traits
      
      * [lang/codegen] do not generate for ink-as-dependency
      
      * [lang/codegen] initial impl for cross-calling codegen
      
      Not complete, yet. Also we stubled upon the fact that due to the
      additional Rust trait support we have to completely change how we
      generate code for cross-calling. Research!
      
      * [core] rename utils.rs -> selector.rs
      
      * [core] add common mod for common abstractions for call and create
      
      * [core] improve ExecutionInput: add useful trait impls
      
      * [core] refactor call builder
      
      * [core] adjust rest of ink_core to changed imports
      
      * [core] implement new CreateBuilder
      
      * [core] remove old InstantiateBuilder
      
      * [core] remove no longer needed traits
      
      * [core] add eval,invoke,eval_params,invoke_params to CallBuilder
      
      This makes both CallBuilder and CreateBuilder more similar to each other.
      
      * [core] apply rustfmt
      
      * [core] adjust environment to new CreateBuilder
      
      * [core] apply rustfmt
      
      * [core] move eval and invoke to CallParams
      
      * [core] adjust on-chain impl for CallBuilder
      
      * [core] add explanation for the cfg
      
      * [core] move instantiate to CreateParams
      
      * [core] make CreateParams getters crate private
      
      * [core] rename Call -> CallParams
      
      * [core] improve doc comment
      
      * [lang] adjust lang for new call and create builders
      
      * [core] expose builder construction through build_call and build_create
      
      * [core] remove Default impl for empty ExecutionInput
      
      * [core] add usage examples to build_call
      
      * [core] improve usage doc example of build_call
      
      * [core] improve doc tests for build_call
      
      * [core] add doc test example to build_create
      
      * [core] fix compilation after merge
      
      * [metadata] make constuctor and message name an array and add is_payable
      
      Only messages need is_payable field since constructors must always be payable.
      
      * [lang/codegen] add metadata code generation
      
      * [lang/ir] implement lint to ensure there are no __ink_ prefixed identifiers
      
      Identifiers starting with __ink_ may only be used by the ink! codegen.
      So far this has been only implemented on TokenTree or TokenStream level and not on parsed syn abstractions leading to arcane errors. E.g. it was possible to catch errors if an __ink_ substring appeared in a string literal before.
      
      * [metadata] make serialized Layout fields camelCase
      
      * [lang/ir, lang/macro] apply rustfmt
      
      * [lang/ir] initial implementation of #[ink::trait_definition] proc. macro
      
      * [lang/ir] re-export InkTrait
      
      * [lang/macro] create new proc. macro for ink! trait definitions
      
      * [lang/ir] improve error messages of #[ink::trat_definition] a bit
      
      * [lang/ir] add many more unit tests
      
      * [lang/ir] apply rustfmt
      
      * [lang/ir] fixed spelling bug
      
      * [lang/ir] fix handling or errorneous Self receiver in ink! constructors
      
      * [lang/ir] add bunch of new unit tests for #[ink::trait_definition] proc. macro
      
      * [lang/ir] add some more unit tests
      
      * [lang/ir] implement checks for invalid ink! attributes
      
      * [lang/ir] add unit tests for invalid ink! attributes
      
      * [lang/ir] use syn's builtin receiver getter
      
      * [lang/ir] add iterators for ink! trait definition
      
      * [lang/ir] add getters for generic info of ink! trait definition
      
      * [lang/ir] fix a unit test testing too much
      
      * [lang/ir] deny ink! trait definitions with supertraits
      
      We might add support for supertraits in future versions.
      
      * [lang/ir] add verify_hash functions
      
      * [lang/ir] simplify ink! trait verification hash
      
      There now is only a single hash instead of a hash per constructor and message.
      
      * [lang/ir] add InkTrait::attrs() getter
      
      * [lang/ir] add re-exports for most InkTrait types
      
      * [lang/codegen] initial implementation of #[ink::trait_definition] codegen
      
      Does not yet include the verification hash generation.
      
      * [lang/codegen] refine codegen for ink! trait definitions
      
      * [lang, lang/codegen] use correct trait for ink! trait definition checking
      
      * [lang/codegen] rework crate exposed API
      
      * [lang/ir] fix return value of ir::InkTrait::new
      
      * [lang/macro] update codegen driver for ink! trait definition
      
      * [core, lang/codegen, lang/ir, metadata] apply clippy suggestions
      
      * [lang/codegen, lang/ir, lang/macro, lang] apply rustfmt
      
      * [lang/macro] add ink_lang_codegen dependency
      
      Needed for #[ink::trait_definition] proc. macro.
      
      * [core/derive] use _ as const name instead of generated one
      
      * [lang/codegen] prefix {Constructo,Message}DispatchEnum ident with __ink_
      
      * [lang/codegen] use payable instead of is_payable
      
      * [lang/codegen] hide some generated types
      
      * [lang/ir] improve error span of bad storage struct visibility
      
      * [core] add CallBuilder::returns to signal return type
      
      Also this adds CallBuilder::fire as a quick way to fire off the call.
      The CallBuilder::invoke_params and CallBuilder::eval_params are no longer needed and thus removed.
      
      * [lang/ir] implement ToTokens for ir::Receiver
      
      * [lang/codegen] apply #[doc(hidden)] to generated call forwarders
      
      * [lang/codegen] slightly clean-up code
      
      * [lang/codegen] use new call infrastructure for call forwarders
      
      * [lang/codegen] add codegen for short-hand cross-contract message calls
      
      * [lang/codegen] add #[inline] to generated short-hand message calls
      
      * [lang/codegen] improve short-hand call error message
      
      * [lang/codegen] do not generate conflicting impls
      
      * [lang/codegen] generate non-ink! specific user defined items
      
      * [lang/ir] remove some commented out code
      
      * [core, lang/ir] apply rustfmt
      
      * [core] add CreateBuilder::instantiate
      
      * [lang/codegen] fix generate_arg_list
      
      * [lang/codegen] add cross-calling codegen for non-trait constructor impls
      
      * [lang/codegen] add an associated type per trait constructor in ink! trait definition
      
      * [lang/codegen] remove former Output associated type in ink! trait definition
      
      * [lang] re-export trait_definiction proc. macro from ink_lang crate
      
      * [lang/ir] expose InkTrait::compute_verify_hash
      
      * [lang/ir] add ir::ItemImpl::trait_ident
      
      * [lang/codegen] fix some bugs with trait_definition codegen
      
      * [lang/codegen] add codegen for cross-calling ink! trait implementations
      
      * [lang/codegen] surpress warning in generated code
      
      * [lang/codegen] fix bug in generated trait constructors
      
      * [lang/codegen] add codegen for trait implementation blocks
      
      * [lang/ir] allow access to parent impl block from within a CallableWithSelector
      
      * [lang/codegen] make dispatch trait impls more explicit for trait impls
      
      * [lang/codegen] fix and fully implement cross-calling (trait) impl blocks
      
      Works now for both trait impl blocks as well as inherent impl blocks.
      Only missing piece now is the codegen for the call forwarders and their impl blocks.
      
      * [lang/ir] add ir::ItemImpl::attrs getter
      
      * [lang/codegen] add codegen for impl block attributes for cross-calling
      
      * [lang/codegen] correctly re-generate attributes for impl blocks
      
      * [lang/codegen] generate forwarder inherent impl blocks
      
      * [lang, lang/codegen] adjust ink::trait_definition proc. macro codegen
      
      Now it also generates an associated return type per message.
      Those have to respect the ink_lang::ImpliesReturn trait.
      
      * [lang/codegen] add cross-calling call forwarder codegen for trait impl blocks
      
      * [lang] add NeverReturns utility codegen type
      
      * [lang/codegen] implement codegen for cross-calling trait impl blocks
      
      * [*] apply rustfmt
      
      * [lang/codegen] apply some clippy suggestions
      
      * [lang/macro] make use of new ink! 3.0 codegen
      
      * [examples] adjust Flipper example to ink! 3.0
      
      * [examples] add trait based Flipper example
      
      * [examples] adjust Delegator example to ink! 3.0
      
      * [lang/codegen] always use std feature for itertools dependency
      
      Otherwise codegen won't work for Wasm32 compilations.
      
      * [examples] adjusted Incrementer to the new ink! 3.0 codegen
      
      * [lang/ir] fix error span for bad event visibility modifier
      
      * [lang/ir, lang/codegen] fix event fields codegen
      
      * [lang/codegen] fix incorrectly generated EmitEvent trait impl
      
      * [lang/codegen] fix bugs with ink-as-dependency and event usage
      
      * [examples] adjust Erc20 contract to ink! 3.0 syntax
      
      * [examples] fix Erc20 unit tests
      
      * [lang, lang/codegen] add ContractEnv trait
      
      Used to query EnvTypes trait impl using the ink! storage struct.
      
      * [lang, lang/codegen] implement payable messages and dynamic storage alloc
      
      Now it is possible to control whether to use the dynamic storage allocator provided by ink! in ink! itself.
      Also this PR implements codegen for non-payable messages.
      
      * [lang/macro, lang/codegen] apply rustfmt
      
      # Conflicts:
      #	lang/macro/src/lib.rs
      
      * [lang/ir] error upon payable constructor
      
      ink! constructors are payable by default.
      
      * [core] remove EnvTypes::Call associated type
      
      No longer needed since we just removed the ability to directly call the runtime.
      
      * [core] add MAX_EVENT_TOPICS to EnvTypes trait
      
      * [lang, lang/codegen] optimize message payment checks codegen
      
      * [lang/ir, lang/codegen] dynamic storage allocator: rename + change default
      
      New default is set to "false" so only contracts that actually use this feature need to specify it.
      Also renamed to dynamic_storage_allocator to better carry intention.
      
      * [lang, lang/codegen] add codegen to guard against too many event topics
      
      * [lang/ir] apply rustfmt
      
      * [lang/codegen] pull topic guards codegen out of topics impl codegen const
      
      * [lang/codegen] split event topic guards into their own method
      
      * [lang] remove duplicate re-exports
      
      * [lang/codegen] improve error message for events with too many topics
      
      * [core/derive] explicitly use synstructure 0.12.4
      
      * [examples] update DNS contract example to ink! 3.0 syntax
      
      * [examples] update ERC-721 contract example to ink! 3.0 syntax
      
      * [examples] update multisig_plain example contract to ink! 3.0
      
      The most work was to update the new call builders.
      
      * [lang/ir] improve error message for bad visibility of ink! callables
      
      * [*] update all ink! versions: 2.1.0 -> 3.0.0
      
      * [lang/ir, lang/codegen] port InkTest proc. macro impl to new facilities
      
      * [lang/ir] make __ink_ ident prefix check more general
      
      * [lang/ir] make use of __ink_ idents check in other proc. macro impls
      
      * [*] apply rustfmt
      
      * [examples] apply rustfmt
      
      * [lang] integrate ported #[ink::test] proc. macro
      
      * [lang/macro] remove old proc. macro facilities
      
      * [lang/macro] fix all passing UI tests
      
      * [lang/ir] implement check to guard against Self return in ink! messages
      
      * [lang/codegen] implement check to guard against non ink! storage ink! impls
      
      This works even in precense of type aliases.
      
      * [lang] add re-export for static_assertions
      
      * [lang/macro] update all ink! UI failure tests
      
      * [lang/ir] apply rustfmt
      
      * [lang/codegen] remove commented-out code
      
      * [lang/codegen] allow clippy::type_complexity in some cross-calling sites
      
      * [*] remove Cargo.lock.old ... oupsi
      
      * [examples] fix incorrected doc comments
      
      * [metadata] remove unnecessary serde field attribute
      
      * [metadata] rename module layout2 -> layout
      
      * [core] rename module storage2 -> storage
      
      * [core] apply rustfmt
      529bd588
  8. 28 Sep, 2020 1 commit
    • Hero Bird's avatar
      Implement trait support - Part 2/3 - New ink! codegen (#470) · 5d7d855c
      Hero Bird authored
      * [lang/codegen] initial impl of the new ink! codegen
      
      This new codegen is based on the (also) new ink! IR.
      
      * [lang/macro] apply rustfmt to imports
      
      * [lang/codegen] apply rustfmt
      
      * [lang/ir] add ItemMod::{attrs, vis} getters
      
      * [lang/codegen] make use of ir::ItemMod::{attrs, vis} in codegen
      
      * [lang/codegen] restructure ink_lang_codegen library
      
      * [lang/codegen] appliy clippy suggestion
      
      * [lang/ir] add Event::attrs() and ToTokens impl for EventField
      
      * [lang/codegen] apply rustfmt
      
      * [lang/codegen] implement Event code generator
      
      * [lang/codegen] make use of the new Events code generator
      
      * [lang/ir] make ir::Callable always Copy and Clone
      
      * [lang/ir] rename CallableWithSelector::item -> callable
      
      * [lang/ir] add Callable::kind() trait method
      
      * [lang/codegen] add dispatch enum code generation
      
      * [lang/codegen] enable dispatch code generator
      
      * [lang/codegen] add generation for constructor dispatch enum
      
      * [lang/codegen] implement contract entry points
      
      * [lang/codegen] implement code generation for DispatchUsingMode impl
      
      * [lang/codegen] add trait impl namespaces Msg<S> and Constr<S>
      
      * [lang/ir] add ir::Message::inputs_span() getter
      
      * [lang/codegen] add codegen for dispatch trait impls for ink! messages
      
      * [lang/codegen] plug-in dispatch trait impls code gen
      
      * [lang/ir] add Callable::inputs_span trait method
      
      * [lang/codegen] implement dispatch trait impl codegen for ink! constructors
      
      Also this implementation avoids a lot of code duplication with the similar code generation for dispatch trait impl of ink! messages.
      
      * [lang/codegen] make generate_input_bindings doc tests pass
      
      * [lang/ir] apply rustfmt
      
      * [lang/codegen] fix message and constructor namespaces
      
      * [lang/ir] add {Message, Constructor}::attrs getter
      
      * [lang/codegen] implement codegen for ink! ItemImpls
      
      * [lang/codegen] remove some unneeded imports for ItemImpl codegen
      
      * [lang/codegen] automatically import ink_lang's Env, EmitEvent and StaticEnv traits
      
      * [lang/codegen] do not generate for ink-as-dependency
      
      * [lang/codegen] initial impl for cross-calling codegen
      
      Not complete, yet. Also we stubled upon the fact that due to the
      additional Rust trait support we have to completely change how we
      generate code for cross-calling. Research!
      
      * [core] rename utils.rs -> selector.rs
      
      * [core] add common mod for common abstractions for call and create
      
      * [core] improve ExecutionInput: add useful trait impls
      
      * [core] refactor call builder
      
      * [core] adjust rest of ink_core to changed imports
      
      * [core] implement new CreateBuilder
      
      * [core] remove old InstantiateBuilder
      
      * [core] remove no longer needed traits
      
      * [core] add eval,invoke,eval_params,invoke_params to CallBuilder
      
      This makes both CallBuilder and CreateBuilder more similar to each other.
      
      * [core] apply rustfmt
      
      * [core] adjust environment to new CreateBuilder
      
      * [core] apply rustfmt
      
      * [core] move eval and invoke to CallParams
      
      * [core] adjust on-chain impl for CallBuilder
      
      * [core] add explanation for the cfg
      
      * [core] move instantiate to CreateParams
      
      * [core] make CreateParams getters crate private
      
      * [core] rename Call -> CallParams
      
      * [core] improve doc comment
      
      * [lang] adjust lang for new call and create builders
      
      * [core] expose builder construction through build_call and build_create
      
      * [core] remove Default impl for empty ExecutionInput
      
      * [core] add usage examples to build_call
      
      * [core] improve usage doc example of build_call
      
      * [core] improve doc tests for build_call
      
      * [core] add doc test example to build_create
      
      * [core] fix compilation after merge
      
      * [metadata] make constuctor and message name an array and add is_payable
      
      Only messages need is_payable field since constructors must always be payable.
      
      * [lang/codegen] add metadata code generation
      
      * [lang/ir] implement lint to ensure there are no __ink_ prefixed identifiers
      
      Identifiers starting with __ink_ may only be used by the ink! codegen.
      So far this has been only implemented on TokenTree or TokenStream level and not on parsed syn abstractions leading to arcane errors. E.g. it was possible to catch errors if an __ink_ substring appeared in a string literal before.
      
      * [metadata] make serialized Layout fields camelCase
      
      * [lang/ir, lang/macro] apply rustfmt
      
      * [lang/ir] initial implementation of #[ink::trait_definition] proc. macro
      
      * [lang/ir] re-export InkTrait
      
      * [lang/macro] create new proc. macro for ink! trait definitions
      
      * [lang/ir] improve error messages of #[ink::trat_definition] a bit
      
      * [lang/ir] add many more unit tests
      
      * [lang/ir] apply rustfmt
      
      * [lang/ir] fixed spelling bug
      
      * [lang/ir] fix handling or errorneous Self receiver in ink! constructors
      
      * [lang/ir] add bunch of new unit tests for #[ink::trait_definition] proc. macro
      
      * [lang/ir] add some more unit tests
      
      * [lang/ir] implement checks for invalid ink! attributes
      
      * [lang/ir] add unit tests for invalid ink! attributes
      
      * [lang/ir] use syn's builtin receiver getter
      
      * [lang/ir] add iterators for ink! trait definition
      
      * [lang/ir] add getters for generic info of ink! trait definition
      
      * [lang/ir] fix a unit test testing too much
      
      * [lang/ir] deny ink! trait definitions with supertraits
      
      We might add support for supertraits in future versions.
      
      * [lang/ir] add verify_hash functions
      
      * [lang/ir] simplify ink! trait verification hash
      
      There now is only a single hash instead of a hash per constructor and message.
      
      * [lang/ir] add InkTrait::attrs() getter
      
      * [lang/ir] add re-exports for most InkTrait types
      
      * [lang/codegen] initial implementation of #[ink::trait_definition] codegen
      
      Does not yet include the verification hash generation.
      
      * [lang/codegen] refine codegen for ink! trait definitions
      
      * [lang, lang/codegen] use correct trait for ink! trait definition checking
      
      * [lang/codegen] rework crate exposed API
      
      * [lang/ir] fix return value of ir::InkTrait::new
      
      * [lang/macro] update codegen driver for ink! trait definition
      
      * [core, lang/codegen, lang/ir, metadata] apply clippy suggestions
      
      * [lang/codegen, lang/ir, lang/macro, lang] apply rustfmt
      
      * [lang/macro] add ink_lang_codegen dependency
      
      Needed for #[ink::trait_definition] proc. macro.
      
      * [core/derive] use _ as const name instead of generated one
      
      * [lang/codegen] prefix {Constructo,Message}DispatchEnum ident with __ink_
      
      * [lang/codegen] use payable instead of is_payable
      
      * [lang/codegen] hide some generated types
      
      * [lang/ir] improve error span of bad storage struct visibility
      
      * [core] add CallBuilder::returns to signal return type
      
      Also this adds CallBuilder::fire as a quick way to fire off the call.
      The CallBuilder::invoke_params and CallBuilder::eval_params are no longer needed and thus removed.
      
      * [lang/ir] implement ToTokens for ir::Receiver
      
      * [lang/codegen] apply #[doc(hidden)] to generated call forwarders
      
      * [lang/codegen] slightly clean-up code
      
      * [lang/codegen] use new call infrastructure for call forwarders
      
      * [lang/codegen] add codegen for short-hand cross-contract message calls
      
      * [lang/codegen] add #[inline] to generated short-hand message calls
      
      * [lang/codegen] improve short-hand call error message
      
      * [lang/codegen] do not generate conflicting impls
      
      * [lang/codegen] generate non-ink! specific user defined items
      
      * [lang/ir] remove some commented out code
      
      * [core, lang/ir] apply rustfmt
      
      * [core] add CreateBuilder::instantiate
      
      * [lang/codegen] fix generate_arg_list
      
      * [lang/codegen] add cross-calling codegen for non-trait constructor impls
      
      * [lang/codegen] add an associated type per trait constructor in ink! trait definition
      
      * [lang/codegen] remove former Output associated type in ink! trait definition
      
      * [lang] re-export trait_definiction proc. macro from ink_lang crate
      
      * [lang/ir] expose InkTrait::compute_verify_hash
      
      * [lang/ir] add ir::ItemImpl::trait_ident
      
      * [lang/codegen] fix some bugs with trait_definition codegen
      
      * [lang/codegen] add codegen for cross-calling ink! trait implementations
      
      * [lang/codegen] surpress warning in generated code
      
      * [lang/codegen] fix bug in generated trait constructors
      
      * [lang/codegen] add codegen for trait implementation blocks
      
      * [lang/ir] allow access to parent impl block from within a CallableWithSelector
      
      * [lang/codegen] make dispatch trait impls more explicit for trait impls
      
      * [lang/codegen] fix and fully implement cross-calling (trait) impl blocks
      
      Works now for both trait impl blocks as well as inherent impl blocks.
      Only missing piece now is the codegen for the call forwarders and their impl blocks.
      
      * [lang/ir] add ir::ItemImpl::attrs getter
      
      * [lang/codegen] add codegen for impl block attributes for cross-calling
      
      * [lang/codegen] correctly re-generate attributes for impl blocks
      
      * [lang/codegen] generate forwarder inherent impl blocks
      
      * [lang, lang/codegen] adjust ink::trait_definition proc. macro codegen
      
      Now it also generates an associated return type per message.
      Those have to respect the ink_lang::ImpliesReturn trait.
      
      * [lang/codegen] add cross-calling call forwarder codegen for trait impl blocks
      
      * [lang] add NeverReturns utility codegen type
      
      * [lang/codegen] implement codegen for cross-calling trait impl blocks
      
      * [*] apply rustfmt
      
      * [lang/codegen] apply some clippy suggestions
      
      * [lang/codegen] always use std feature for itertools dependency
      
      Otherwise codegen won't work for Wasm32 compilations.
      
      * [lang/ir] fix error span for bad event visibility modifier
      
      * [lang/ir, lang/codegen] fix event fields codegen
      
      * [lang/codegen] fix incorrectly generated EmitEvent trait impl
      
      * [lang/codegen] fix bugs with ink-as-dependency and event usage
      
      * [lang, lang/codegen] add ContractEnv trait
      
      Used to query EnvTypes trait impl using the ink! storage struct.
      
      * [lang, lang/codegen] implement payable messages and dynamic storage alloc
      
      Now it is possible to control whether to use the dynamic storage allocator provided by ink! in ink! itself.
      Also this PR implements codegen for non-payable messages.
      
      * [lang/macro, lang/codegen] apply rustfmt
      
      * [lang/ir] error upon payable constructor
      
      ink! constructors are payable by default.
      
      * [core] remove EnvTypes::Call associated type
      
      No longer needed since we just removed the ability to directly call the runtime.
      
      * [core] add MAX_EVENT_TOPICS to EnvTypes trait
      
      * [lang, lang/codegen] optimize message payment checks codegen
      
      * [lang/ir, lang/codegen] dynamic storage allocator: rename + change default
      
      New default is set to "false" so only contracts that actually use this feature need to specify it.
      Also renamed to dynamic_storage_allocator to better carry intention.
      
      * [lang, lang/codegen] add codegen to guard against too many event topics
      
      * [lang/codegen] pull topic guards codegen out of topics impl codegen const
      
      * [lang/codegen] split event topic guards into their own method
      
      * [lang] apply rustftm
      
      * [lang/ir] remove unnecessary lifetime
      
      * [lang] make use of deny_payment internally
      
      * [lang/macro] ignore UI compile tests for now
      
      These will be re-enabled for the follow-up PR.
      
      * [metadata] rename is_payable -> payable (also for metadata format)
      
      * [lang/ir] resolve duplicate code for non-pub visibility checking
      
      Was duplicated for events and storage structs.
      
      * [lang/ir] apply rustfmt
      
      * [lang/codegen] removed commented-out code and update license header
      
      * [lang/codegen] update crate description
      
      * [core] move CreateParams impl blocks closer to struct definition
      
      * [lang/macro] use US english
      
      * [core] fix incorrect doc comment
      5d7d855c
  9. 23 Sep, 2020 1 commit
    • Michael Müller's avatar
      Implement [ink::test] proc macro (#490) · 552d38bb
      Michael Müller authored
      * [lang] Introduce [ink::test] macro
      
      * [core] Migrate some tests to use [ink::test] macro
      
      * Address comments
      
      * Apply cargo fmt
      
      * [lang] Ensure generated code behaves as if test fn has no return value
      
      * [examples] Migrate tests to use [ink::test] macro
      
      * [core] Revert core using [ink::test]
      
      * [lang] Use all available parameters
      
      * [lang] Remove unused imports
      
      * [lang] Remove implicit Ok(())
      
      * [core] Apply cargo fmt
      
      * [lang] Make it clearer where ItemFn comes from
      
      * Apply cargo fmt
      552d38bb
  10. 21 Sep, 2020 1 commit
    • Michael Müller's avatar
      Migrate examples to new APIs (#487) · 626bfc27
      Michael Müller authored
      * [examples] Make multisig_plain use Lazy::set()
      
      * [examples] Migrate multisig use HashMap Entry API
      
      * [examples] Migrate DNS to HashMap Entry API
      
      * [examples] Migrate Erc271 to HashMap Entry API
      
      * [examples] Fix naming
      
      * [examples] Increase test coverage
      
      * [examples] Rename fn
      
      * [examples] Address comments
      626bfc27
  11. 10 Sep, 2020 1 commit
    • Michael Müller's avatar
      Implement Entry API for storage2::LazyHashMap (#480) · c22562ac
      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
      c22562ac
  12. 25 Aug, 2020 1 commit
    • Hero Bird's avatar
      Sync with Substrate RC6 (#478) · ba5aed19
      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's avatarAlexander 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's avatarAlexander 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's avatarAlexander Theißen <alex.theissen@me.com>
      ba5aed19
  13. 20 Jul, 2020 1 commit
    • Michael Müller's avatar
      [core] Add Entry API for storage2::HashMap (#477) · eeb6bc0f
      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
      eeb6bc0f
  14. 15 Jul, 2020 2 commits
    • Andrew Jones's avatar
      [metadata] update to scale-info 0.3, removes string interning (#467) · d99ea915
      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
      d99ea915
    • Andrew Jones's avatar
      [core] export test::env::EmittedEvent (#476) · 5a944ca2
      Andrew Jones authored
      * Export EmittedEvent
      
      * Assert transfer event in all tests
      
      * Fmt
      5a944ca2
  15. 10 Jul, 2020 2 commits
    • Michael Müller's avatar
    • Michael Müller's avatar
      [core] Optimize dynamic storage allocator (#472) · e96513a6
      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
      e96513a6
  16. 07 Jul, 2020 1 commit
    • Michael Müller's avatar
      [core] Add storage2::Lazy::set(…) (#466) · 68ac2124
      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: default avatarHero 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: default avatarHero Bird <robin.freyler@gmail.com>
      68ac2124
  17. 02 Jul, 2020 2 commits
    • Hero Bird's avatar
      Implement trait support - Part 1/3 - New ink! IR (#451) · c24f0ff9
      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's avatarMichael 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's avatarAndrew Jones <ascjones@gmail.com>
      
      * fix typo
      Co-authored-by: Andrew Jones's avatarAndrew Jones <ascjones@gmail.com>
      
      * fix typo
      Co-authored-by: Andrew Jones's avatarAndrew 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's avatarAndrew Jones <ascjones@gmail.com>
      
      * fix typo
      Co-authored-by: Andrew Jones's avatarAndrew 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's avatarAndrew Jones <ascjones@gmail.com>
      
      * [lang/ir] fix doc comment
      
      * [lang/ir] remove outdated doc comment
      
      * fix doc comment
      Co-authored-by: Andrew Jones's avatarAndrew 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's avatarMichael Müller <mich@elmueller.net>
      Co-authored-by: Andrew Jones's avatarAndrew Jones <ascjones@gmail.com>
      c24f0ff9
    • Andrew Jones's avatar
      [core] add gas arg to ext_gas_price (#461) · 2456fdd2
      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
      2456fdd2
  18. 30 Jun, 2020 3 commits
    • Michael Müller's avatar
      Support quickcheck based property testing (#319) · 30fe10df
      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: default avatarHero Bird <robin.freyler@gmail.com>
      
      * [core] Replace for_each with for loop
      
      * [core] Replace for_each with for loop
      Co-authored-by: default avatarHero Bird <robin.freyler@gmail.com>
      30fe10df
    • Andrew Jones's avatar
      [metadata] rename abi crate to metadata (#465) · 59dcb1ba
      Andrew Jones authored
      * git mv abi metadata
      
      * mm
      
      * Rename codegen abi to metadata
      
      * Fmt
      59dcb1ba
    • Andrew Jones's avatar
      [core] update arithmetic traits, add saturating impls (#463) · 65e094e1
      Andrew Jones authored
      * extract arithmetic types
      
      * Add basic saturating tests
      
      * Fmt
      
      * Add comment about EnvTypes bounds
      65e094e1
  19. 24 Jun, 2020 1 commit
    • Andrew Jones's avatar
      [examples] remove config made redundant by cargo-contract (#456) · fc424c23
      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
      fc424c23
  20. 22 Jun, 2020 2 commits
    • Michael Müller's avatar
      Implement storage2::Stash::remove_occupied unsafe function (#440) · cf6e7106
      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: default avatarHero Bird <robin.freyler@gmail.com>
      Co-authored-by: default avatarHero 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: default avatarHero Bird <robin.freyler@gmail.com>
      
      * [core] Wrap comment
      
      * [core] Constrain mutability
      Co-authored-by: default avatarHero Bird <robin.freyler@gmail.com>
      cf6e7106
    • Andrew Jones's avatar
      Extern function to generate metadata (#460) · 9eb92645
      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
      9eb92645
  21. 19 Jun, 2020 1 commit
    • Michael Müller's avatar
      Add new ops for storage2/vec (#453) · d4cbfcea
      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: default avatarHero Bird <robin.freyler@gmail.com>
      Co-authored-by: default avatarHero Bird <robin.freyler@gmail.com>
      d4cbfcea
  22. 17 Jun, 2020 3 commits
    • Hero Bird's avatar
      Avoid heap allocations for contract dispatch (#449) · f5b3c481
      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
      f5b3c481
    • Andrew Jones's avatar
      [abi] update to scale-info v0.2 (#454) · af1ab521
      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
      af1ab521
    • Hero Bird's avatar
      Integrate new Key and KeyPtr types into rest of ink! (#447) · d095dd07
      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
      d095dd07
  23. 16 Jun, 2020 1 commit
    • Hero Bird's avatar
      Remove ink_primitives::hash module (#450) · ef3b1375
      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
      ef3b1375
  24. 15 Jun, 2020 1 commit
  25. 14 Jun, 2020 1 commit
  26. 13 Jun, 2020 1 commit
    • Hero Bird's avatar
      Remove old modules after storage2 transition (#446) · 2021becf
      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
      2021becf