1. 26 Oct, 2020 1 commit
  2. 22 Oct, 2020 2 commits
    • Hero Bird's avatar
      Craft ink! 3.0-rc2 release (#536) · 75d3b99c
      Hero Bird authored
      * [releases] add release notes for ink! 3.0-rc2
      
      * [*] bump crate versions to ink! 3.0-rc2
      
      * [releases] add missing ink! 3.0-rc2 release note
      75d3b99c
    • Hero Bird's avatar
      Misc fixes for ink! 3.0-rc1 (#530) · 22b3014a
      Hero Bird authored
      * [benches] fix lazy benchmarks
      
      * [*] fix Cargo.toml documentation links
      
      * [readme] show CI status of master branch always
      
      * [readme] misc improvements
      
      * [storage] make re-export of LazyHashMap inline
      
      * [releases] add notes about ink_core split
      
      * [allocator] add some crate level docs
      
      * [storage] impl scale_info::TypeInfo for ink_storage::alloc::Box
      
      * [metadata] improve docs slightly
      
      * [storage] re-introduce StorageLayout impl for storage::Box
      22b3014a
  3. 09 Oct, 2020 3 commits
  4. 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
  5. 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
  6. 15 Jul, 2020 1 commit
    • 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
  7. 30 Jun, 2020 1 commit
  8. 17 Jun, 2020 1 commit
  9. 13 Jun, 2020 2 commits
    • 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
    • Andrew Jones's avatar
      New metadata format (#296) · 5a7b7e5e
      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()
      5a7b7e5e
  10. 25 Mar, 2020 1 commit
  11. 18 Mar, 2020 1 commit
  12. 12 Mar, 2020 1 commit
    • Andrew Jones's avatar
      Revert precise version specs and use new trybuild (#345) · 00758069
      Andrew Jones authored
      * Revert precise version upgrades from #343
      
      This reverts commit 9e5a3ee0
      
      * Use latest trybuild with fix
      
      * CI troubleshoot: completely remove trybuild
      
      * Revert "CI troubleshoot: completely remove trybuild"
      
      This reverts commit 593b7183
      
      * Restore trybuild deps
      
      * CI troubleshoot: remove GIT_DEPTH
      
      * CI troubleshoot: remove CARGO_HOME
      
      * CI troubleshoot: revert deleting of CARGO_HOME
      
      * CI troubleshoot: restore GIT_DEPTH and delete CARGO_HOME again
      
      * CI troubleshoot: revert deleting of CARGO_HOME
      00758069
  13. 10 Mar, 2020 1 commit
    • Denis_P's avatar
      CI fixes (#343) · 9e5a3ee0
      Denis_P authored
      * test documentation for all crates
      
      * cargo upgrade to bypass trybuild
      9e5a3ee0
  14. 03 Feb, 2020 1 commit
    • Hero Bird's avatar
      Implementation of ink! env (revision 3) (#312) · 321fe03a
      Hero Bird authored
      
      
      * [core] initial implementation of env revision 3
      
      * add engine abstraction layer and implement api functions
      
      * add support for dispatch_call to env3
      
      * add missing invoke_runtime to api.rs
      
      * [core] fix restore_contract docs
      
      * [core] initial implementation of off-chain environment
      
      * [core] clean-up of env3 fundamental types
      
      * [core] add WasmEnv::reset_buffer
      
      * show test submodule of env3 when compiling with rustdoc
      
      * [core] initial implementation of the off-chain env instance
      
      Also many other adjustments.
      
      * [core] further enhancements to off-chain env
      
      * [core] implement untyped Env for off-chain environment
      
      * [core] implemented a good chunk of TypedEnv for the off-chain environment
      
      * [core] minor improvements to env3
      
      * [core] further improvements and additions to test-api of env3
      
      * [core] remove former test-api file
      
      * [core] env3: add support for ext_tombstone_deposit
      
      * [core] env3: add setting of rent allowance in off-chain env
      
      * [core] env3: remove buffer.rs
      
      * [core] env3: remove property.rs
      
      * [core] env3: mark some TypedEnv methods as not-todo
      
      * [core] env3: enable off-chain api for non test/doc builds
      
      * [core] env3: use a static buffer instead of Vec<u8>
      
      * [core] env3: move static buffer into its own module
      
      * fix doc comment
      
      Co-Authored-By: Michael Müller's avatarMichael Müller <mich@elmueller.net>
      
      * [core] env3: add missing license header
      
      * [core] env3: remove deprecated doc note
      
      * [core] env3: add off-chain {set/get}_runtime_storage
      
      * [core] env3: add off-chain invoke_runtime dispatch
      
      This also enables support for registering custom runtime call handlers.
      
      * [core] env3: slightly improve env3::random docs comment
      
      * [core] env3: move off-chain errors under EnvError
      
      * [core] env3: add ext_random support for the off-chain environment
      
      * [core] env3: minor clean ups
      
      * [core] env3: improve TypedEncoded::assign
      
      * [core] env3: un-mut some variables
      
      * [core] env3: fix some clippy warnings
      
      * [core] env3: add past_printlns to off-chain test api
      
      * [core] env3: minor refactoring
      
      * [core] env3: apply rustfmt
      
      * [core] env3: clean up of call and instantiate contract
      
      * [core] env3: rename moment -> time_stamp
      
      * [core] env3: make get_runtime_storage return a Result instead of RetCode
      
      * [core] env3: remove unneeded import
      
      * [core] env3: add some trait impls for EnvTypes::Hash
      
      * [core] env3: remove last remaining usages of RetCode
      
      * [core] env3: refactor some errors
      
      * [core] env3: document the EnvError enum
      
      * [core] env3: add impls for fire methods on call and create builders
      
      * [core] env3: add doc comment to past_printlns
      
      * [core] env3: apply rustfmt
      
      * [core] env3: update license headers
      
      * [core] env3: support querying and emitting of events in off-chain env
      
      * [core] env3: missing license header adjustment
      
      * [core] env3: apply rustfmt
      
      * [core] env3: rename some methods in off-chain test-api
      
      * [core] env3: add doc comment to test::emitted_events
      
      * [core] env3: add stub for test::advance_block
      
      * [core] env3: rename some more test API methods
      
      * [core] env3: initialize entropy of block randomly
      
      * [core] env3: extend EnvTypes trait bounds
      
      This change makes the trait bounds more similar to what Substrate defines.
      
      * [core] env3: document SimpleArithmetic trait
      
      * [core] env3: add From<u32> to SimpleArithmetic trait
      
      * [core] env3: made some trait bounds more explicit in SimpleArithmetic trait
      
      * [core] env3: add comment describing potential future extensions to SimpleArithmetic trait
      
      * [core] env3: rename EnvTypes::Moment to TimeStamp
      
      * [core] env3: add block_time to ChainSpec
      
      * [core] env3: remove CodeDb again
      
      Not needed right now. Maybe re-added at a later point.
      
      * [core] env3: apply rustfmt
      
      * [core] env3: implement off-chain test::advance_block
      
      * [core] env3: fix bug in off-chain test::advance_block impl
      
      * [core] env3: made SimpleArithmetic trait more explicit towards Output types
      
      * [core] env3: add default initialization routines for off-chain environment
      
      * [core] env3: remove test::create_user_account for now
      
      * [core] env3: fix missing renaming from Moment -> TimeStamp
      
      * [core] env3: impl PartialEq and Eq for off-chain error types
      
      * [core] env3: add test::run_test for off-chain testing with default setup
      
      * [core] env3: fix several minor bugs with the off-chain environment
      
      * [core] convert key.rs tests to new env3
      
      * [core] remove commented out code in key.rs tests
      
      * [core] evn3: add test::get_contract_storage_rw
      
      * [core] use env3 instead of env1 in storage cells
      
      * [core] integrate env3 into storage::TypedChunk
      
      * [core] remove storage::RawChunk and NonCloneMarker
      
      * [core] adjust SyncChunk slightly for TypedChunk modifications
      
      * [core] simplify transitioned env3 tests for TypedChunk
      
      * [core] transition tests for SynChunk to env3
      
      * [core] transition storage::Stash tests to env3
      
      * [core] transition storage::HashMap tests to env3
      
      * [core] transition storage::BinaryHeap tests to env3
      
      * [lang] remove the entire ink! lang crate
      
      It has been deprecated for a whole while.
      
      * [model] remove ink! model crate entirely
      
      It has been deprecated for a whole while.
      
      * [core] remove the old env1 sub-module of ink_core
      
      It has been deprecated for a whole while.
      
      * [examples] remove model examples
      
      * [examples] remove lang examples
      
      * [examples] remove core examples
      
      * remove "If given too few endowment" from docs
      
      Co-Authored-By: Andrew Jones's avatarAndrew Jones <ascjones@gmail.com>
      
      * fix doc comment
      
      Co-Authored-By: Andrew Jones's avatarAndrew Jones <ascjones@gmail.com>
      
      * fix doc comment
      
      Co-Authored-By: Andrew Jones's avatarAndrew Jones <ascjones@gmail.com>
      
      * [lang2] initial steps towards basing on env3 instead of env2
      
      With this commit `cargo contract build` already works.
      However, cargo test etc. are still broken.
      
      * [lang2] make macros work for `cargo test`
      
      * [core, lang2] make contracts compile as ink-as-dependency
      
      * [lang2] make events work for ink_lang2 on env3
      
      * [lang2] remove AccessEnv - no longer needed
      
      * [core] remove env2
      
      * [lang2] fix tests
      
      - Fix warning in ink_lang2
      - Remove no longer needed test case
      - Adjust some passing tests after default module import removal
      
      * [*] apply rustfmt
      
      * [lang2] silence unused warning for now
      
      * [core] rename {create|Create}* to {instantiate|Instantiate}*
      
      - CreateBuilder -> InstantiateBuilder
      - CreateParams -> InstantiateParams
      - create -> instantiate
      
      * [core] rename endowment -> transferred_value for CallBuilder/Params
      
      * [examples] adjust Delegator contracts for recents changes
      
      * [core] rename now_in_ms -> block_timestamp
      
      * [core] follow-up of the call renamings (transferred_value)
      
      * [lang2] rename now_in_ms -> block_timestamp
      
      * [examples] move examples out of the examples/lang2 folder
      
      * [examples] fix runtime-storage example contract
      
      * [examples] fix Flipper contract
      
      * [examples] fix Incrementer contract
      
      * [examples] fix Erc20 contract
      
      * [utils] add Key and byte_utils to ink_utils
      
      * [utils -> primitives] rename ink_utils -> ink_primitives
      
      * [*] move all links from ink_utils -> ink_primitives
      
      * [primitives] update Cargo.toml description
      
      * [*] use ink_primitives::Key remove ink_core::Key
      
      * [primitives] refactor new crate, make it more usable in ink! context
      
      * [*] relink to ink_primitives for Key usage
      
      * [abi] refactor macros and relink to ink_primitives::Key
      
      * [lang2] fix usage of renamed Create{Builder, Params}
      
      * [examples] fix examples under recent changes with ink_primitives
      
      * [*] apply rustfmt
      
      * [lang2/macro] remove deprecated feature usage of proc_macro_hygiene
      
      * [examples] remove deprecated proc_macro_hygiene feature
      
      * [core] remove test_utils
      
      * [core] rename env3 to env
      
      * [*] rename all usages of env3 to env
      
      * [core] fix feature usage in num-traits of ink_core Cargo.toml
      
      * [*] update README
      
      * [primitives] conditionally compile type_metadata from ink_primitives
      
      * [core] make env::get_contract_storage return Option<Result<T>>
      
      * [core] fix some faulty doc comments
      
      * [ci] fix GitLab CI
      
      * [primitives] fix no_std compilation
      
      * [primitives] fix warning
      
      * [core] make `rand` dependency optional for `std` crate feature
      
      * [core] remove the test-env crate feature from the ink_core crate
      
      * [core,primitives] move some tests from primitives to core
      
      * [lang] move lang2/ to lang/
      
      * [*] rename all instances of ink_lang2 or lang2 to ink_lang or lang
      
      * [lang/macro] fix ink_primitives dependency
      
      * [*] apply rustfmt
      
      * [core] fix clippy warning
      
      * [ci] eliminate README from examples CI checks
      
      * [examples] apply rustfmt
      
      * [lang/macro] improve event codegen
      
      * [core] rename TimeStamp/time_stamp to Timestamp/timestamp
      
      * [lang] remove unused extern crate alloc
      
      * [core] rename env::address to env::account_id
      
      * [lang] perform renamings on ink_lang::EnvAccess but with deprecation instead of removal
      
      * [core] fix missing time_stamp renamings
      
      * [lang] fix missing TimeStamp renamings
      
      * improve doc comment
      
      Co-Authored-By: Andrew Jones's avatarAndrew Jones <ascjones@gmail.com>
      
      * improve doc comment
      
      Co-Authored-By: Andrew Jones's avatarAndrew Jones <ascjones@gmail.com>
      
      * rename create_contract -> instantiate_contract
      
      Co-Authored-By: Andrew Jones's avatarAndrew Jones <ascjones@gmail.com>
      
      * rename create_contract -> instantiate_contract
      
      Co-Authored-By: Andrew Jones's avatarAndrew Jones <ascjones@gmail.com>
      
      * improve doc comment
      
      Co-Authored-By: Andrew Jones's avatarAndrew Jones <ascjones@gmail.com>
      
      * impr
      
      Co-Authored-By: Andrew Jones's avatarAndrew Jones <ascjones@gmail.com>
      
      * improve doc comment
      
      Co-Authored-By: Andrew Jones's avatarAndrew Jones <ascjones@gmail.com>
      
      * improve doc comment
      
      Co-Authored-By: Andrew Jones's avatarAndrew Jones <ascjones@gmail.com>
      
      * improve doc comment
      
      Co-Authored-By: Andrew Jones's avatarAndrew Jones <ascjones@gmail.com>
      
      * rename endowment -> transferred_value
      
      Co-Authored-By: Andrew Jones's avatarAndrew Jones <ascjones@gmail.com>
      
      * improve doc comment
      
      Co-Authored-By: Andrew Jones's avatarAndrew Jones <ascjones@gmail.com>
      
      * rename create_contract -> instantiate_contract
      
      Co-Authored-By: Andrew Jones's avatarAndrew Jones <ascjones@gmail.com>
      
      * rename create_contract -> instantiate_contract
      
      Co-Authored-By: Andrew Jones's avatarAndrew Jones <ascjones@gmail.com>
      
      * rename time stamp to timestamp
      
      Co-Authored-By: Andrew Jones's avatarAndrew Jones <ascjones@gmail.com>
      
      * rename SRML to env in docs
      
      Co-Authored-By: Andrew Jones's avatarAndrew Jones <ascjones@gmail.com>
      
      * remove SRML word from docs
      
      Co-Authored-By: Andrew Jones's avatarAndrew Jones <ascjones@gmail.com>
      
      * remove SRML word from docs
      
      Co-Authored-By: Andrew Jones's avatarAndrew Jones <ascjones@gmail.com>
      
      * [lang] fix doc comment for filtered_keys in restore_contract
      
      * [core] rename create_contract -> instantiate_contract
      
      * [core] rename create_contract -> instantiate_contract
      
      * [core] fix some renamings around endowment -> transferred_value
      
      * [lang] rename create_contract -> instantiate_contract follow-up
      
      * [core] apply rustfmt
      
      * [core] improve restore_contract doc comment
      
      * [core, lang] link to ink_core::env::* doc comments from all api places
      
      * [core] 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>
      321fe03a
  15. 28 Nov, 2019 1 commit
  16. 20 Nov, 2019 2 commits
  17. 13 Nov, 2019 1 commit
    • Hero Bird's avatar
      Update to derive_more v0.99 (#229) · 2111eb06
      Hero Bird authored
      * [*] update to derive_more 0.99
      
      * [scripts] use `#!/usr/bin/env bash` instead of `#!/bin/bash`
      
      * [*] update to derive_more 0.99.1
      2111eb06
  18. 23 Oct, 2019 1 commit
    • Michael Müller's avatar
      [abi] Improve JSON encoding of selectors + layout key (#207) · 48fb16f0
      Michael Müller authored
      * Export selector as hex string
      
      To have an unambiguous exported representation.
      The previously used `u32` can be interpreted
      differently depending on the endianness of the
      target system.
      
      * Improve JSON encoding of Key `layout` in Metadata
      
      * Add tests for selector serialization
      
      * Encode selector as [u8; 4]
      
      * Remove unused import
      
      * Satisfy rustfmt check
      
      * Improve messages! macro
      
      * Convert tabs to spaces.
      * Replace `DELIMITER` with `@delimiter`.
      * Improve comments.
      
      * Improve comment
      
      * Ensure old ABI format stays the same
      
      * Reduce code duplication by introducing selector_to_expr()
      
      * Satisfy rustfmt
      48fb16f0
  19. 19 Sep, 2019 1 commit
    • Hero Bird's avatar
      ink abi v0.2 (#190) · 0f249fa4
      Hero Bird authored
      
      
      * [abi] add some missing exports to ink_abi
      
      * [abi] add missing docs
      
      * [abi] replace vec![] with Vec::new()
      
      * [abi] add ConstructorSpec + glue code
      
      * [abi] add ConstructorSpecBuilder::done
      
      * [abi] remove old DeployHandlerSpec
      
      * [abi] bump derive_more version 0.14 -> 0.15
      
      * [abi] move Missing struct above state module
      
      * [abi] apply rust fmt
      
      * [abi] add TypeSpec as a new wrapper around type with optional display names
      
      * [abi] make EventParamSpec use new TypeSpec
      
      * [abi] finish integrating the new TypeSpec into specification structs
      
      * [abi] update abi_derive dependencies syn, quote and proc_macro to 1.0
      
      * fix minor spelling in docs
      
      Co-Authored-By: Andrew Jones's avatarAndrew Jones <ascjones@gmail.com>
      
      * [abi] refactor ContractSpecBuilder
      
      * [abi] apply rust fmt
      
      * [lang] implement new ink_abi API for ink_lang
      
      * [lang] apply rust fmt
      
      * [lang] implement display name support
      
      * [lang] adjust compile time tests to new ink_abi codegen
      0f249fa4
  20. 14 Aug, 2019 1 commit
    • Hero Bird's avatar
      ink! ABI (#104) · fa6b0065
      Hero Bird authored
      
      
      * [abi] Create ink_abi sub crate
      
      * [abi] Add initial types for abi generation
      
      * [abi] Add EventParamSpec to include indexed event params
      
      * [abi] Add documentation field to specs
      
      * [abi] Add license and readme links and clean up authors
      
      * [abi] Add missing license headers
      
      * [abi] Fix some compile errors
      
      * [abi] Make macros usable internally
      
      * [abi] Create type_spec_of_tuple constructor macro
      
      * [abi] Implement serialization for tuples
      
      * [abi] Implement serialize for array types
      
      * [abi] Remove module prefix of Vec<T>
      
      * [abi] Apply rustfmt
      
      * [abi] Improve minor formatting
      
      * [abi] Add trait to allow external crate to specify serialize of TypeSpec<T>
      
      * [abi] Make rustfmt happy
      
      * [abi] Handle missing Vec in no_std environment
      
      We really need a further abstraction to handle memory types.
      Right now they life in ink_core but we shouldn't depend on ink_core from within ink_abi.
      So we want to extract the memory sub module out of ink_core into its own crate that we can from then on depend on.
      
      * [abi] Use same array pre-impls as metadata prototype impl
      
      * [abi] Depend on cennznet/type-metadata + adjustments
      
      * [abi] add missing license headers
      
      * [abi] fixes for renamings in type-metadata crate
      
      * [abi] add IntoCompact impls for layout types
      
      * [abi] properly forward std feature
      
      * [abi] implement Serialize for Key
      
      * [abi] apply rustfmt and add some layout constructors
      
      This also removes the dependency from ink_abi to ink_core and adds derive feature to type-metadata dependency.
      
      * [core] implement ink_abi traits for ink_core abstractions
      
      * adjust ink_abi Cargo.toml to using std feature by default
      
      # Conflicts:
      #	abi/Cargo.toml
      
      * [core] Integrate ink_abi no_std compat into ink_core
      
      * [lang] initial skeleton of codegen for ink_abi
      
      * Enhance Flush (#136)
      
      * [core] Enhance Flush trait to make it work with SyncCell and SyncChunk
      
      * apply rustfmt
      
      * [core] implement ink_abi traits for ink_core abstractions
      
      * [core] Integrate ink_abi no_std compat into ink_core
      
      * [core] Apply cargo fmt
      
      * [cli] initial adjustments for ink_abi to ink! template
      
      * [abi] clean-up of Cargo.toml
      
      * [abi] remove invalid lib docs
      
      * [utils] Update utilities docs
      
      * [abi] improve JSON encoding of layout structs
      
      * [abi] improve JSON encoding and add builder pattern constructors
      
      * [abi] Add InkProject meta type
      
      * [abi] temporarily depend on improve-json-output type-metadata branch
      
      * [core] adjust type-metadata temporary branch to use the same as ink_abi
      
      * [ci] add travis CI nightly-2019-08-01 channel (experimental)
      
      * [abi] add MessageSpecBuilder::{args, docs} methods
      
      * [core] implement Metadata for AccountId and Hash of DefaultSrmlTypes
      
      * [abi] change type of selector from u64 to u32
      
      * [lang] add some helper routines
      
      * [lang] add code generation for new ABI format
      
      * [abi,core] use master branch for type-metadata again
      
      * [lang] implement initial code gen for ABI generation
      
      * [examples] adjust Flipper contract example to ink_abi generation
      
      * [lang] remove old generate-abi-description feature and associated code
      
      * [examples] remove traces of removed generate-api-description feature
      
      * [core] make cells_origin and chunks_origin only visible for test-env
      
      * [cli] adjust template for ink-abi update
      
      * [abi] implement ink_abi_derive for HasLayout derive macro
      
      * [lang] make use of new ink_abi_derive functionality
      
      * [examples] adjust Flipper for new ink_abi derive crate feature
      
      This is needed because we disable default features.
      
      * [abi] remove some commented-out code
      
      * [chores] update README and include ink_abi docs
      
      * [abi] apply rustfmt
      
      * [lang] apply rustfmt
      
      * [abi] apply rustfmt to non derive crate
      
      * [core] apply rustfmt
      
      * [lang] trim doc strings coming from syn::Attribute
      
      * [examples] rename .tools directory to .ink
      
      * [examples] fix bug with no_std and "std" crate feature
      
      * [lang] fix bug in abi generation for events
      
      * [examples] adjust events example to new ink_abi
      
      * [lang] fix some more edge cases with doc string trimming
      
      * [lang] fix a bug that path matching for function arguments was off
      
      * [examples] adjust Incrementer to new ink_abi
      
      * [cli] rename .tools to .ink in template
      
      * [cli] update template Cargo.toml
      
      * [examples] temporarily fix type-metadata hick-up
      
      * [examples] make ink_abi optional
      
      * [examples] adjust Erc20 token example to new ink_abi
      
      * [cli] fix template no_std support
      
      * [*] use master branch of type-metadata crate again
      
      * [examples] replace parity-codec/std with scale/std
      
      * [core] derive Metadata for some util types
      
      This unfortunately was lost upon the latest rebase.
      
      * [ci] update from nightly-2019-08-01/2019-07-19 to just nightly-2019-08-09
      
      * [abi] remove commented-out code
      
      * [abi] add some docs to specs items
      
      * Update abi/src/specs.rs
      
      Co-Authored-By: Andrew Jones's avatarAndrew Jones <ascjones@gmail.com>
      
      * Update abi/src/specs.rs
      
      Co-Authored-By: Andrew Jones's avatarAndrew Jones <ascjones@gmail.com>
      
      * Update core/src/storage/collections/stash/impls.rs
      
      Co-Authored-By: Andrew Jones's avatarAndrew Jones <ascjones@gmail.com>
      
      * Update core/src/storage/collections/stash/impls.rs
      
      Co-Authored-By: Andrew Jones's avatarAndrew Jones <ascjones@gmail.com>
      
      * [examples] remove some more commented-out code
      
      * [lang] remove outdated docs
      
      * [lang] extract fn docs impl into helper method
      
      * [lang] fix compile-error in `filter_doc_attributes`
      
      * [core] use derive feature from ink_abi
      
      * [examples] adjust shared_vec example for ink_abi
      
      * [lang] trim doc comments raw string escape sequence
      
      * [lang] adjust noop test for ink_abi
      
      * [lang] adjust flipper test for ink_abi
      
      * [lang] improve raw-string char sequence fix
      
      * [lang] adjust incrementer test for ink_abi
      
      * [lang] adjust events test for ink_abi
      
      * [lang] fix whitespace (tabs) issues in lang tests
      
      * [ci] add examples to CI
      
      * [ci] remove +nightly attribute for examples
      
      * [abi] remove instances of std usage
      
      * [core] remove instances of std usage
      
      * [examples] erc20: remove std usage in no_std environment
      
      * [core] factor out ink_abi and type-metadata and guard their use with ink-generate-abi feature
      
      * [examples] adjust examples to newest refactoring in ink_core
      
      * [cli] adjust template to ink_core refactorings
      
      * [scripts] add new script to quickly check all example smart contracts
      
      * [ci] make use of new check-examples script
      
      * [*] apply rustfmt
      
      * [scripts] adjust check-examples to no longer set test-env
      
      * [scripts] Add check-workspace script
      
      * [examples] make test-env a default feature
      
      * [cli] make test-env a default feature for the template
      
      * [ci] update CI to use the new check-workspace script
      fa6b0065