1. 17 Mar, 2020 2 commits
  2. 12 Mar, 2020 1 commit
  3. 04 Mar, 2020 1 commit
  4. 03 Mar, 2020 1 commit
  5. 18 Feb, 2020 1 commit
    • Michael Müller's avatar
      Add BTreeMap storage primitive (#284) · b042a5fb
      Michael Müller authored
      
      
      * Update readme
      
      * Insert + Entry API
      
      * Combine header + entries into one object
      
      * Move insert logic into `Tree`
      
      * Fix visibility + shorten code
      
      * Add removal API (split/merge nodes) + quickcheck tests
      
      * Simplify code, improve structure
      
      * Add more API functions, improve code
      
      * Update delegator instructions
      
      * Style + Improve structure + Comments
      
      * Clippy made me do it
      
      * Improve code + tests + style
      
      * Clarify search_linear
      
      * Improve code structure and comments
      
      * Improve code structure + add comments
      
      * Fix style
      
      * Fix style
      
      * Improve comments
      
      * Simplify code, improve comments
      
      * Improve readability of tests
      
      * Move expect to function where we can properly prove
      
      * Fix style
      
      * Move expect to function where we can properly prove
      
      * Fix style
      
      * Add debug_assert
      
      * Improve correct_children_... code and docs
      
      * Change kv tuple to named struct and simplify kv code
      
      * Remove unsafe's, introduce indirection for accessing storage, revise pub's
      
      * Put expensive tests behind ink-fuzz feature
      
      * Improve structure
      
      * Satisfy clippy, remove debugging code
      
      * Use extend instead of append
      
      * Adapt to new ink! env rev 3
      
      * Fix comment
      
      * Remove quickcheck tests (until issue with offchain API fixed)
      
      * Refactoring and restructuring
      
      * Refactoring and code restructuring
      
      * Make clippy happy
      
      * Fix metadata derive
      
      * Fix metadata derive
      
      * Add test for tinkering with balancedness
      
      * Refactoring tests
      
      * Update date and satisfy CI
      
      * Improve docs
      
      * Refactoring code
      
      * Refactoring code
      
      * Refactoring code
      
      * Apply rustfmt
      
      * Improve tests
      
      * Apply suggestions from code review
      
      Co-Authored-By: default avatarHero Bird <robin.freyler@gmail.com>
      
      * Improve when/then structure
      
      * Improve readability
      
      * Rename pointer to index
      
      * Rename internal nodes to branch nodes
      
      * Rename entries to nodes
      
      * Document loop behavior
      
      * Improve unreachable! messages
      
      * Improve comments + expect's
      
      * Apply rustfmt
      
      * Apply rustfmt
      
      Co-authored-by: Hero Bird's avatarHero Bird <robbepop@web.de>
      b042a5fb
  6. 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
  7. 13 Jan, 2020 1 commit
  8. 06 Jan, 2020 1 commit
  9. 28 Nov, 2019 3 commits
    • Hero Bird's avatar
      Use ink_prelude crate in the rest of ink! (#285) · 76c10bd1
      Hero Bird authored
      * [*] use ink_prelude crate in the rest of ink!
      
      # Conflicts:
      #	core/Cargo.toml
      #	core/src/storage/flush.rs
      
      * [core] fix usage of ink_prelude in buffer_arena
      
      * [core] apply rustfmt
      76c10bd1
    • Hero Bird's avatar
      Initial implementation of the global buffer arena (#270) · 19fe1917
      Hero Bird authored
      * [core] initial implementation of the global buffer arena
      
      * [core] add license header to buffer arena
      
      * [core] add module level docs to buffer arena
      
      * [core] move license header where it belongs (to the top)
      
      * [core] add docs for diagnostic fields and getters
      
      * [core] add tests to buffer arena
      
      * [core] apply rust fmt
      
      * [core] remove allocated field from BufferArena
      
      The information is redundant since it can be computed as free + in_use.
      
      * [core] improve buffer arena tests
      
      * [core] export buffer arena public symbols from core::env2
      
      * [core] fix doc comment link to AsRef and AsMut
      
      * [core] remove nightly cell-update feature
      
      * [core] enable no_std for BufferArena and mirror thread_local interfacing
      
      * [core] fix some obvious no_std mis-compilations
      
      * [core] apply rustfmt
      
      * [core] apply rustfmt #2
      
      
      
      * [core] fix clippy warning in buffer_arena
      
      * [core] fix typo
      
      Co-Authored-By: Michael Müller's avatarMichael Müller <mich@elmueller.net>
      
      * [core] slightly improve get_buffer impl
      
      Co-Authored-By: Michael Müller's avatarMichael Müller <mich@elmueller.net>
      
      * [core] slight improvements
      
      * [core] rename LocalKey to GlobalBufferArena
      
      * [core] fix no_std build
      19fe1917
    • Hero Bird's avatar
      Use Flush derives and generally update the Flush trait (#269) · 1601b967
      Hero Bird authored
      * [core] add core/derive crate to add derive macro for Flush
      
      * [core/derive] change license from GPL-3.0 to APACHE-2.0
      
      * [core/derive] implement Flush and AllocateUsing derives based on synstructure
      
      * [core] re-export AllocateUsing and Flush derives from within core
      
      * [core/derive] fix AllocateUsing derive impl
      
      * [core/derive] adjust AllocateUsing tests
      
      * [core/derive] apply cargo fmt
      
      * [core/derive] add test::utils and improve AllocateUsing tests
      
      * [core/derive] add explanation docs
      
      * [core/derive] add doc for a hack
      
      * [core/derive] forbid deriving empty enums for Flush
      
      * [core/derive] update compile tests
      
      * [core] remove derive crate feature
      
      * [core/derive] remove `extern crate ink_core` edition 2015 compat
      
      * [core, examples, lang] update Flush impls
      
      * [core] apply rustfmt
      
      * [core] simplify Flush impl for StashHeader
      
      * [core] remove derive crate feature
      
      * [examples] fix clippy warning about Flush in delegator
      1601b967
  10. 26 Nov, 2019 2 commits
    • Hero Bird's avatar
      Add core/derive crate to add derive macro for some traits (#256) · 63163f73
      Hero Bird authored
      * [core] add core/derive crate to add derive macro for Flush
      
      * [core/derive] change license from GPL-3.0 to APACHE-2.0
      
      * [core/derive] implement Flush and AllocateUsing derives based on synstructure
      
      * [core] re-export AllocateUsing and Flush derives from within core
      
      * [core/derive] fix AllocateUsing derive impl
      
      * [core/derive] adjust AllocateUsing tests
      
      * [core/derive] apply cargo fmt
      
      * [core/derive] add test::utils and improve AllocateUsing tests
      
      * [core/derive] add explanation docs
      
      * [core/derive] add doc for a hack
      
      * [core/derive] forbid deriving empty enums for Flush
      
      * [core/derive] update compile tests
      63163f73
    • Hero Bird's avatar
      [core] fix broken doc comment links (#271) · 55377fd6
      Hero Bird authored
      55377fd6
  11. 21 Nov, 2019 1 commit
    • Andrew Jones's avatar
      Read runtime storage value using `ext_get_runtime_storage` (#204) · b7ca7525
      Andrew Jones authored
      * [core] add ext_runtime_get_storage
      
      * [core] env2: add ext_runtime_get_storage
      
      * [model] add runtime_get_storage to EnvHandler
      
      * [core/model] fix up compiler errors
      
      * [examples] add example reading from runtime storage
      
      * [examples] add debug statements to the runtime contract
      
      * Add lang2 example for runtime_get_storage
      
      * Hook up lang2 runtime_get_storage, make example compile
      
      * Fix lang2 example generate abi
      
      * Rename to match substrate ext function
      
      * Remove ink 1.0 impl
      
      * Remove remaining ink 1.0 impl
      
      * Rename to get_runtime_storage
      
      * Add some logging contract
      
      * TEMPORARY: diagnostic logging
      
      * Revert "TEMPORARY: diagnostic logging"
      
      This reverts commit 14bfc6e2
      
      * Set storage keys
      
      * More contract diagnosis
      
      * Construct storage key in contract
      
      * More key logging
      
      * Fix balances prefix
      
      * Remove all printlns
      
      * Implement test env accessor for chain storage
      
      * Add back space
      
      * Correct docs
      
      * rustfmt
      
      * spacing
      
      * rustfmt
      
      * Capitalise comment, return correct error in test env
      
      * Update license to Apache 2.0
      b7ca7525
  12. 20 Nov, 2019 2 commits
  13. 13 Nov, 2019 2 commits
  14. 09 Nov, 2019 1 commit
    • Hero Bird's avatar
      Implementation of ink! syntax 2.0 (#191) · 098b5a4d
      Hero Bird authored
      
      
      * [lang2] initial commit of ink! lang2 frontend
      
      This is going to be the frontend for the new ink! syntax.
      
      * [lang2] change version syntax to semantic versioning string
      
      * [lang2] add failure test for invalid semantic version string
      
      * [lang2] fix some unused warnings
      
      * [lang2] change lib name to ink_lang2
      
      * [lang2] add span to ir::data::ItemStorage
      
      * [lang2] modernize env types codegen
      
      * [lang2] re-introduce entry points codegen but without body for now
      
      * [lang2] add initial storage struct codegen
      
      * [lang2] add lang2 flipper contract example for testing purposes
      
      * [core] impl env2::EnvTypes for DefaultSrmlTypes instead of old env::EnvTypes
      
      * [lang2] add `0` body to entry points
      
      * [lang2] mark fn allocate_using impl for storage struct as unsafe
      
      * [lagn2] ignore args in Initialize::initialize impl for storage struct
      
      * [lang2] adjust compiletests
      
      * [core] add emit_event to EnvAccess{Mut}
      
      * [lang2] add codegen for contract functions
      
      * [lang2] add Signature::inputs
      
      * [lang2] adjust and modernize compiletests
      
      * [lang2] apply rustfmt
      
      * [core] add generic Encode param to EmitEventParams
      
      * [cli] bump version 0.1.1 -> 0.1.2
      
      * [core] make it possible to use EnvAccess{Mut} directly in storage
      
      * [core] make Selector::{from_bytes, to_bytes} const fn
      
      * [core] add check to Decode impl for CallData
      
      * [core] add #[inline..] annotations to some public trait impls
      
      * [lang2] move lang2 into lang2_macro and create new lang2 helper crate
      
      * [examples] add initial core/flipper example that acts as codegen prototype
      
      * [core] add some more #[inline..] annotations
      
      * [lang2] split DerefEnv into AccessEnv{Mut} and losen direct trait bounds
      
      * [core] add efficient conversion from DynEnv<EnvAccessMut> to DynEnv<EnvAccess>
      
      * [examples] adjust core::Flipper prototype to newest state
      
      * [core] add env accessors to DynEnv
      
      * [lang2] add AccessEnv{Mut} impls for DynEnv and EnvAccess{Mut}
      
      * [lang2] use double AccessEnv trait indirection in dispatch fns
      
      * [examples] core::flipper: add ink-dyn-alloc crate feature
      
      Enable this to enable dynamic storage allocation for your contract.
      Dynamic storage allocation is an optional drop-in feature.
      
      * [lang2] make LICENSE and README.md sym links
      
      * [lang2-macro] replace LICENSE and README.md with sym links
      
      * [lang2] add access_env sub module
      
      * [lang2] simplify Message trait concept for constructors
      
      * [lang2] add more general error codes
      
      * [lang2] add storage sub module
      
      * [lang2] remove old dispatch sub module
      
      * [lang2] implement new dispatcher based on ink_model v2
      
      * [examples] adjust core flipper example for new codegen
      
      * [lang2] remove some commented out code
      
      * [lang2] rename dispatch2 to dispatch_using_mode
      
      * [lang2] fix doc link in DispatchMode docs
      
      * [examples] adjust core::Flipper to better reflect codegen prototype
      
      * [lang2] rename ContractDispatch to DispatchUsingMode and add docs
      
      * [lang2] remove unused ContractInstance trait
      
      * [lang2] remove unneeded Msg and Constr utility types
      
      Those types should solely be provided by the contracts themselves.
      They act as namespaces for the respective message type.
      
      * [lang2/macro] add GenerateCodeUsing trait
      
      * [example] add explanation docs to the Flipper::get(&mut self) method
      
      * [lang2] fix unused warning
      
      * [lang2/macro] refactor codegen module
      
      * [lang2/macro] remove commented-out code
      
      * [core] add EnvAccess to allow universal usage of EnvAccess
      
      * [lang2] no longer require separate storage structs
      
      * [examples] adjust core/Flipper to newest ink_lang2 and ink_core changes
      
      * [examples] remove as much direct Flipper usages as possible
      
      * [lang2/macro] temporarily disable dispatch codegen
      
      * [lang2/macro] add MetaInfo::is_dynamic_allocation_enabled stub
      
      * [lang2/macro] implement initial storage codegen
      
      * [core] remove DynEnvAccess and DynEnvAccessMut
      
      No longer needed!
      
      * [core] implement AccessEnv for &'a {mut} DynEnv<EnvAccess{Mut}>
      
      * [examples] fix implementation of ink_lang2::AccesEnv for StorageAndEnv
      
      * [examples] fix ink_core::env2::AccessEnv impl for StorageAndEnv
      
      * [examples] move deploy and call fns into dispatch const block
      
      * [examples] convert docs to comments because they screw up cargo expand
      
      * [lang2/macro] remove ink_model dependency
      
      * [lang2] fix some minor warnings and issues
      
      * [lang2/macro] fix codegen of ink_core::env2::AccessEnv impls
      
      * [lang2/macro] refactor and improve FunctionSelector implementation
      
      * [lang2/macro] Signature::inputs now returns an iterator over IdentType
      
      Was returning an iterator over FnArg before but conversion is trivial.
      
      * [lang2/macro] add dispatch codegen
      
      * [examples] fix DefaultSrmlTypes usage in lang2/Flipper
      
      * [core] prepare env2 to be used with ABI generation purposes
      
      * [examples] add ABI generation to core/Flipper
      
      This will serve as a prototype for ink_lang2 codegen.
      
      * [core, model] remove unneeded warnings/lints
      
      * [lang2] make calls to AccessEnv and Flush more explicit
      
      * [lang2/macro] no longer use no-default-features for dev-dependencies
      
      * [lang2/macro] surpress warnings of unused imports for core::env2::AccessEnv
      
      * [lang2/macro] fix codegen of {ink_lang2/core::env2}::AccessEnv impls
      
      * [lang2/macro] remove unused let binding (was commented out anyways)
      
      * [lang2/macro] fix several codegen bugs
      
      * [examples] remove ink_model and ink_lang dependencies of lang2/Flipper
      
      * [examples] add contract and layout bindings type annotation
      
      * [lang2/macro] adjust some passing tests
      
      * [lang2] add GenerateAbi trait guarded by ink-generate-abi crate feature
      
      * [lang2/macro] move scale dependency away from ink dependencies in Cargo.toml
      
      * [lang2/macro] add Metadata and HasLayout derives to storage structs
      
      * [lang2/macro] insert minor whitespace between bindings and quote
      
      * [lang2/macro] add abi module to generate ABI generating code
      
      * [lang2/macro] add Function::{filter_constructor, filter_message}
      
      * [lang2/macro] fix bug that non-ink! filter for attributes was off
      
      * [lang2/macro] make use of iterative array quoting in Dispatch codegen
      
      * [lang2/macro] add utility to filter doc attributes and parse them to readable string
      
      * [lang2/macro] add codegen for ABI generation
      
      * [example] adjust lang2/Flipper abi-gen package
      
      * [lang2/macro] ink::contract params adjustments
      
      - make `env` param default to ink_core::env2::DefaultSrmlTypes
      - add `dynamic_allocations = {true|false}`, default: false
      - add `compile_as_dependency = {true|false}`, default: false
      
      * [lang2/macro] adjust passing tests to new contract params
      
      * [examples] adjust lang2/Flipper to new contract params
      
      We enable dynamic_allocations for now since disabling it causes other errors.
      
      * [lang2/macro] add different HasLayout impl for dynamic_allocations {true|false}
      
      * [examples] lang2/Flipper no longer requires dynamic_allocations = true
      
      * [lang2] rename AccessEnv::env to AccessEnv::access_env
      
      This helps to disambiguate certain other `env` methods and trait impls
      
      * [examples] adjust core/Flipper example
      
      * [core] refactor event emitting interfaces in env2
      
      * [examples] core/Flipper: fix env types aliases
      
      * [examples] core/Flipper: adjust to new event emitting
      
      Also:
      - messages and constructors no longer can access private fields from StorageAndEnv
      - rename __ink_storage to __ink_private
      - add __ink_events module in __ink_private defining all events and utilities
      - general rust formatting
      
      * [core] add EmitEvent utility trait
      
      This allow to disambiguate the contract's provided EmitEvent trait
      
      * [examples] core/Flipper: make it impossible to ambiguate emitting of events
      
      * [lang2/macro] rename contract_module.rs to contract.rs
      
      * [lang2/macro] generated messages and constructors can no longer access internals of StorageAndEnv
      
      * [lang2/macro] apply rustfmt
      
      * [lang2/macro] add event codegen
      
      - ABI generation codegen for events is still missing
      
      * [lang2/macro] adjust some pass UI tests to new event codegen
      
      * [lang2/macro] re-export the contract on crate root again
      
      This is done for ABI creation since otherwise the abi-gen tool couldn't access the data.
      
      * [lang2/macro] add ABI generation for events
      
      * [lang2/macro] add Erc721 UI pass test
      
      * [lang2/macro] add missing codegen for ABI event args docs
      
      * [lang2/macro] fix a bug that ABI codegen would always impl GenerateAbi for Flipper
      
      * [lang2/macro] add derive(Metadata) to Error enum for Erc721 test
      
      * [core] add missing Initialize::default_value impls
      
      * [core] add Debug impls for some env types
      
      * [examples] core/Flipper: add code to allow for offchain testability
      
      * [examples] core/Flipper: add error handling for test env init
      
      * [lang2/macro] add docs to ABI generation of event args
      
      * [examples] core/Flipper: adjust to improve testability
      
      - No longer requires <Flipper as Testable>::constructor
      - packs whole of flipper contract in associated flipper module such as what ink_lang2 does
      
      * [lang2/macro] add filter_ink_attributes and has_ink_attributes to utilities
      
      * [lang2/macro] re-export utils from ir
      
      * [lang2/macro] add ir::utils::is_ink_attribute
      
      * [lang2/macro] allow non-ink! items in the contract module
      
      * [lang2/macro] add test for non-ink! module items
      
      * [lang2/macro] apply rustfmt on UI tests
      
      * [lang2/macro] fix 02 ui fail test
      
      * [lang2/macro] generate code for non-ink! module items
      
      * [lang2/macro] move utilities inside the contract module - because we can!!
      
      * [lang2/macro] adjust compile tests for most recent changes
      
      * [lang2/macro] add compile test for missing messages
      
      * [lang2/macro] fix some minor warnings
      
      * [lang2/macro] add a lint to check if all identifiers respect not starting with __ink
      
      * [lang2/macro] add simple test for __ink starting identifiers lint
      
      * [lang2/macro] update docs of idents_respect_pred
      
      * [lang2] apply rustfmt
      
      * [core] apply rustfmt to env2 module
      
      * [lang2/macro] add ir::utils::filter_non_ink_attributes
      
      * [lang2/macro] make use or ir::utils::filter_non_ink_attributes
      
      * [lang2/macro] re-export contract on crate root only for ABI generation
      
      * [lang2/macro] documented code generation principles
      
      * [examples] add Erc20 token example for lang2
      
      * [lang2/macro] refactor event codegen
      
      * [lang2/macro] move dispatch codegen into __ink_private
      
      This hides `Msg` and `Constr` namespaces into __ink_private.
      
      * [lang2/macro] move ABI generation codegen into __ink_private
      
      * [lang2/macro] add test to forbig accessing generated storage fields
      
      * [lang2/macro] extend test to forbig accessing generated storage fields
      
      * [lang2] implement testable contracts codegen
      
      * [lang2/macro] do not generate dispatch code for tests or if `test-env` is enabled
      
      * [examples] lang2/Flipper: add contract tests
      
      * [lang2/macro] add simple tests to flipper test
      
      * [examples] remove core/Flipper example again
      
      This was decided after we felt that maintaining it was more of a burden than it being a help for further development.
      
      * [lang2/macro] apply rustfmt
      
      * [core] refactor env2 cross-calling infrastructure
      
      * [core] move seals into utils
      
      * [examples] lang2/Flipper: add default_works test
      
      * [lang2/macro] add cross-contract calling
      
      * [lang2/macro] add cross-contract calling test
      
      * [lang2] remove CreateForwarder infrastructure since unneeded
      
      * [lang2/macro] do not generate code for Events when compiled as dependency
      
      * [lang2/macro] remove strange semi-comments in Msg and Constr
      
      * [lang2/macro] add Debug derive to StorageAsDependency
      
      * [examples] add Delegator contract based on ink_lang2
      
      * [core] guard calling CreateBuilder::using_code at compile-time
      
      * [lang2] fix some clippy warnings
      
      * [chores] update README
      
      * [lang2/macro] refactor into_hir: use ir types through ir module
      
      * fix typo
      
      Co-Authored-By: Michael Müller's avatarMichael Müller <mich@elmueller.net>
      
      * fix typo in lang2/macro/src/ir/into_hir.rs
      
      Co-Authored-By: Michael Müller's avatarMichael Müller <mich@elmueller.net>
      
      * fix typo in examples/lang2/delegator/adder/lib.rs
      
      Co-Authored-By: Michael Müller's avatarMichael Müller <mich@elmueller.net>
      
      * fix typo in lang2/macro/src/codegen/cross_calling.rs
      
      Co-Authored-By: Michael Müller's avatarMichael Müller <mich@elmueller.net>
      
      * fix typo in core/src/env2/traits.rs
      
      Co-Authored-By: Michael Müller's avatarMichael Müller <mich@elmueller.net>
      
      * fix typo in lang2/macro/src/codegen/contract.rs
      
      Co-Authored-By: Michael Müller's avatarMichael Müller <mich@elmueller.net>
      
      * [lang2/macro] improve some ink! error messages
      
      * [lang2/macro] remove commented-out code
      
      * fix typo in lang2/macro/src/codegen/dispatch.rs
      
      Co-Authored-By: Michael Müller's avatarMichael Müller <mich@elmueller.net>
      
      * [lang2/macro] remove ancient Cargo.toml artifacts
      
      * [examples] fix typo and enhance delegator docs a bit
      
      * use `#!/usr/bin/env` instead of `#!/bin/bash`
      
      Co-Authored-By: Michael Müller's avatarMichael Müller <mich@elmueller.net>
      
      * [lang2] apply rustfmt
      
      * [core] env2: apply rustfmt
      
      * [cli] adjust CLI to generate ink_lang2 contract upon new command
      
      * [lang2/macro] generate some #[inline] annotations on some generated cross-calling interfaces
      
      * [examples] improve Delegator example slightly
      
      * [core] fix bug that SrmlEnv tried to impl traits for TestEnv
      
      * [examples] fix bug that .ink/abi_gen was using incorrect crate features
      
      * [cli,examples] fix all abi_gen/Cargo.toml files
      
      * [examples] fix bugs in some examples
      
      * [lang2/macro] suppress some unused_parens warnings
      
      * [examples] add incrementer as lang2 example
      
      * [lang2/macro] make codegen more precise when using traits
      
      * [lang2/macro] "fix" a bug in cross-calling codegen
      
      The fix is actually a hack that we should remove again as soon as possible by a proper solution.
      
      * [core] rename ext_create to ext_instantiate
      
      * [examples] lang2/Delegator: fix some warnings and added Delegator::get
      
      * [examples] lang2/Erc20: add Erc20::allowance
      
      * [core] fix bug in executing ext::scratch_read causing panic
      
      * [core] remove unused println statements in tests
      
      * [examples] delegator: minor improvements
      098b5a4d
  15. 30 Oct, 2019 1 commit
    • Michael Müller's avatar
      Implement Heap storage primitive (#206) · b748cc16
      Michael Müller authored
      * Fix typos
      
      * Fix linter errors in cmd cli
      
      The CI complains.
      
      * Add Heap collection
      
      * Apply CI style recommendations
      
      * Remove `HeapType` param from constructor
      
      Instead of passing `HeapType::Min`/`HeapType::Max`
      to the constructor one should instead explictly
      implement `Ord` on the generic type which is
      stored in the heap.
      
      This is the way the Rust API works as well.
      
      * Apply CI style recommendations
      
      * Improve iterator test/docs
      
      * Improve doc comments
      
      * Fix typo
      
      * Reduce storage fetches via wrapper around SyncChunk
      
      * Rename Heap to BinaryHeap
      
      * Make `AccessWrapper` independent
      
      * Simplify ternary heap to binary heap
      
      * Rename AccessWrapper to DuplexSyncChunk
      
      * Remove superfluous Flush bound
      
      * Simplify code by removing BinaryHeapHeader
      
      * Removed unnecessary Copy + Clone bounds
      
      * Satisfy rustfmt
      
      * Add clarifying comment for testing struct
      
      * Replace expected arg with predicate condition
      
      * Substitute mem::replace with Option API functions
      
      * Improve grouping in DuplexSyncChunk
      
      * Improve comment
      
      * Satisfy rustfmt
      
      * Derive Ord/PartialOrd implementation
      
      * Remove unnecessary trait bounds
      
      * Use compound trait bound
      
      * Fix typo
      
      * Add metadata for DuplexSyncChunk
      
      * Satisfy rustfmt
      b748cc16
  16. 25 Oct, 2019 1 commit
  17. 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
  18. 04 Oct, 2019 1 commit
    • Hero Bird's avatar
      Implementation of ink_env 2.0 (#195) · 4107f98d
      Hero Bird authored
      * [core] initial implementation of new env module
      
      * [core] add SRML implementations for some more Env trait methods
      
      * [core] replace SmallVec with Vec since it isn't ready yet
      
      * [core] add license header to ret_code.rs
      
      * [core] take generic buffer params &mut instead of by value
      
      * [core] add implementation of create_contract for SRML env
      
      * [core] remove unused SmallVec imports
      
      * [core] implement deposit_event for SRML contracts env
      
      * [core] implement invoke_runtime for SRML contract env
      
      * [core] adjust invoke_runtime at trait level
      
      * [core] implement restore_to for SRML contracts env
      
      * [core] fix minor warnings and formatting issues
      
      * [core] refactoring and clean ups
      
      Output is no longer a contract property since it was too hard to make it work properly and efficiently.
      
      * [core] add initial version of EnvAccess
      
      * [core] add runtime checks to EnvAccess for input and output
      
      * [core] GetProperty and SetProperty no longer return Result
      
      * [core] introduce macro to remove some duplicate code in EnvAccess
      
      * [core] make buffer always the first argument in Env
      
      * [core] some minor clean ups
      
      * [core] implement {get,set,clear}_contract_storage for EnvAccess
      
      * [core] make assert_not_yet_returned and set_has_interacted private fns
      
      * [core] implement EnvAccess::random
      
      * [core] implement EnvAccess::println
      
      * [core] implement EnvAccess::{invoke_contract, eval_contract, create_contract}
      
      * [core] refactor module imports and exports
      
      * [core] add DynEnv utility
      
      * [core] move EnvAccess{Mut} into their own sub-module
      
      * [core] improve docs and add docs where they were missing
      
      * [core] add Default impl for EnvAccess
      
      * [core] add DynEnv
      
      * [core] greatly improve module docs
      
      * [core] remove some warning-errors that were too strict
      
      * [core] introduce initial implementation of test env
      
      * [core] initial Storage implementation for TestEnv
      
      * [core] improve module documentation
      
      * [core] continue implementation of TestEnv
      
      * [core] improve byte_utils docs for negate_bytes
      
      * [core] add new DefaultSrmlTypes implementation
      
      * [core] continue initial TestEnv implementation
      
      * [core] add TypedEncoded utility that we might use in TestEnvInstance
      
      * [core] enhance TypedEncoded utility
      
      * [core] add Debug impl for Storage and Entry
      
      * [core] implement the TestEnvInstance part of TestEnv
      
      This is the part that actually holds the data in a generic fashion and is controlled later on by the TestEnv through thread_local storage.
      
      * [core] remove unnecessary imports
      
      * [core] remove unnecessary derive impls for some marker types
      
      * [core] greatly improve doc comment of TestEnvInstance
      
      * [core] implement Clone, PartialEq, Eq and Hash for any TypedEncoded<M>
      
      * [ci] update Travis CI rust version: nightly-2019-08-30 -> nightly-2019-09-25
      
      * [core] include TestEnv or SrmlEnv conditionally exclusively
      
      * [core] apply rust fmt
      
      * [core] use Input::remaining_len to optimize scale::Decode impl for CallData
      
      * [core] align usage of PhantomData
      
      * [core] resolve call/create TODOs
      
      * [core] fix minor doc issues
      
      * [core] add a note to Env::println to make users aware of it being a debug utility
      
      * [core] apply rust fmt
      
      * [core] add Debug impl to Storage and Entry
      
      * [core] add PartialOrd and Ord impl to TypedEncoded
      
      * [core] split TestEnv TypedEncoded types into their own module
      
      * [core] add an account database for the TestEnv
      
      * [core] move impl_get_property_for next to its macro definition
      
      * [core] enhance test::AccountsDb
      
      * [core] make fields in TestEnvInstance pub
      
      * [core] fix some mod re-exports
      
      * [core] improve AccountsDb get and get_mut interface
      
      * [core] add TypedEncoded::{assign, try_assign} methods
      
      * [core] add 'static to all EnvTypes associated types
      
      * [core] add initial implementation of accessor for TestEnvInstance
      
      * [core] rename some fields in instance.rs
      
      * [core] implement the rest of the properties getters and setters for TestEnv
      
      * [core] move Input property getter into macro
      
      * [core] add initial stubs for Env impl of TestEnv
      
      * [core] slightly improve property getters
      
      * [core] implement Env::get_contract_storage for TestEnv
      
      * [ci] update nightly-2019-09-25 -> nightly-2019-10-03
      
      * [core] improve Storage::write by using Entry API
      
      * [core] silence warning of unused buffer in Env impl for TestEnv
      
      * [core] implement Env::set_contract_storage for TestEnv
      
      * [core] impl Env::clear_contract_storage for TestEnv
      
      * [core] add dev-comments for implementations of many Env methods for TestEnv
      
      These need some explanation since they partly contradict the off-chain nature of the TestEnv.
      
      * [core] implement Env::random for TestEnv
      
      * [core] improve dev-comment for Env::create_contract
      
      * [core] implement Env::output for TestEnv
      
      * [core] add AccountIdGen to TestEnvInstance
      
      * [core] add records to test environment module
      
      Used for later use in recording implementations of Env for TestEnv.
      
      * [core] apply rustfmt
      
      * [core] fix some warnings
      
      * [core] add constructors for records
      
      * [core] make record constructors pub
      
      * [core] apply rustfmt
      
      * [core] implement Env::{invoke_contract, eval_contract} for TestEnv
      
      * [core] implement restoration and runtime invokation records
      
      * [core] implement Env::{emit_event, invoke_runtime, restore_to} for TestEnv
      
      * [core] implement AccountsDb::insert
      
      * [core] implement Env::create_contract for TestEnv
      
      * [core] add doc-comment for test environment module
      
      * [core] fix copy/paste error in accessor.rs
      
      * [core] add initialization routines to TestEnvInstance
      
      * [core] make use of TypedEncoded in record.rs
      
      * [core] re-export concrete Env impls as EnvImpl
      
      * [core] make most of the test environment definitions publicly visible
      
      * [core] apply rustfmt
      
      * [core] fix 2 compile errors in no_std mode
      
      * [core] add doc-comments to all test sub-modules
      
      * [core] add doc-comments to EnvImpl type alias
      
      * [core] add initial implementation of TestEnv::try_initialize
      
      * [core] add dev-notes to SrmlEnv
      
      * [ci] update travis nightly usage nightly-2019-10-03 -> nightly-2019-10-04
      4107f98d
  19. 30 Sep, 2019 1 commit
    • Michael Müller's avatar
      Deprecate CellChunkAlloc for DynAlloc (#186) · d92462b3
      Michael Müller authored
      * Replace CellChunkAlloc with DynAlloc
      
      * Remove CellChunkAlloc
      
      * Satisfy linter
      
      * Replace CellChunkAlloc with DynAlloc
      
      * Remove CellChunkAlloc
      
      * Satisfy linter
      
      * Do not initialize env for each call
      
      * Fix typo
      
      * Remove tests which panick while panicking
      
      These tests test for panicks. The issue is that
      the `Drop` implementation for `BitVec` will be
      called during the unwinding, this `Drop`
      implementation will try to access uninitialized
      fields and panick as well.
      d92462b3
  20. 21 Sep, 2019 1 commit
  21. 30 Aug, 2019 1 commit
    • Hero Bird's avatar
      Add call infrastructure to ink_lang (#175) · 9cf5a571
      Hero Bird authored
      * [core] add initial call builder implementation
      
      * [core] add setters to CallBuilder
      
      * [core] fix invalid mod import in no_std
      
      * [lang] initial remote call implementation for ink_lang
      
      * [examples] add ink-as-dependency crate feature to erc20 token contract
      
      * [core] move calls and call error definitions
      
      * [core] add ext_create support
      
      * [*] apply rustfmt
      
      * [core] expose ReturnType publicly
      
      * [core] add ext_create impl on the SRML interfacing side
      
      * [core] fix minor invalid module import
      
      * [lang] split CallEnhancer into mut and immutable versions
      
      * [lang] forward to call enhancers from short-version of remote calling
      
      * [core] improve create builder to return the contract directly
      
      * [lang] simplify env types code generation
      
      * [lang] add create call builder code generation
      
      * [lang] improve code gen by altering spans of the generated code
      
      * [examples] add ink-as-dependency to all lang examples
      
      * [cli] add ink-as-dependency to smart contract template
      
      * [lang] fix code gen bug with forwarding references
      
      * [lamg] move impls out of const item
      
      It seems that inherent impls shouldn't be put inside a const item.
      
      * [core] impl Default for Hash
      
      * [lang] add Flush, scale::{Encode, Decode} for contracts as dependencies
      
      * [examples] add example to call remote smart contracts
      
      * [examples] remove invalid test code from delegator contract
      
      * [abi] fix warning about suffixed tuple indices
      
      * [lang] fix bug in generate-abi codegen for deploy handler with multiple args
      
      * [lang] derive from type_metadata::Metadata for contract structs
      
      * [examples] ran cargo fmt
      
      * [examples] derive type_metadata::Metadata for Which
      
      * [examples] make code hashes deploy inputs for delegator contract
      
      * [core] rename gas_cost to gas_limit
      
      * [core] remove parts that got re-introduced accidentally upon merge
      
      * [examples] add a README to the delegator contract
      
      * [examples] restructure delegator project structure
      
      * [examples] fix Cargo.toml of delegator
      
      * [lang] fix bug that ink-as-dependency derives Metadata for the state struct
      
      * [lang] add getter for account_id of ink-as-dependency state structs
      
      * [examples] adjust Delegator contract to make it work with old ABI generator
      
      * [lang] import FromAccountId
      
      * [examples] provide a build.sh script to deploy delegator contract
      
      * [readme] add section about wabt and wasm-utils tools
      
      * [readme] add off-chain test for the example smart contract
      
      * [examples] add .value call to contract create calls of delegator
      
      * [*] use fix-serialization branch of type-metadata
      
      * [*] use type-metadata master branch again (PR was merged)
      
      * [lang] update the noop compile test
      
      * [lang] simplified the noop compile test doc comments
      
      * [lang] fix compiletest for Flipper contract
      
      * [lang] fix compile tests for incrementer contract
      
      * [lang] fix compile tests for Events contract
      
      * [scripts] do not check the Delegator for now (needs special treatment)
      
      * [ci] update rust version from nightly-2019-08-13 to nightly-2019-08-30
      
      * [examples] restructure delegator contract project structure
      
      * [scripts] make check-examples script simpler again after delegator refactoring
      
      * [examples] clean up Delegator contract
      
      * [examples] improve build guidance of Delegator contract
      9cf5a571
  22. 20 Aug, 2019 1 commit
  23. 19 Aug, 2019 1 commit
  24. 16 Aug, 2019 2 commits
    • Hero Bird's avatar
      [core] ext_call PR followup and refinements (#171) · ecd609d5
      Hero Bird authored
      * [core] ext_call PR followup and refinements
      
      * [core] add call_invoke and call_evaluate to api.rs
      
      * [core] extract call method (#172)
      ecd609d5
    • taskooh's avatar
      Implement ext_call in ink! (#133) · 1228905c
      taskooh authored
      * import ext_call to trait and add function to generate input_data of ext_call
      
      remove #[allow(unused)] from ext_call()
      
      implment call_invoke and call_evaluate
      
      fix format
      
      call_invoke and call_evaluate returns Return<_,CallError>
      
      fixed
      
      * fix format and change return type of test_env
      
      * [core] implement CallError as struct and add call_return field to text_env
      
      * fix trivial and remove lang/src/encode_input_data
      
      * [core] use map_err while handling Result<>
      1228905c
  25. 15 Aug, 2019 2 commits
  26. 14 Aug, 2019 2 commits
    • Hero Bird's avatar
      ink! abi followup (#168) · 5c5d17df
      Hero Bird authored
      
      
      * [examples] remove unneeded dependencies
      
      * [cli] template: remove unneeded dependencies
      
      * [*] make test-env a default feature
      
      * [core] no longer export impl_empty_flush_for macro
      
      * [scripts] add usage docs to check-workspace
      
      * [readme] add section about scripts
      
      * [core] add lib.rs docs
      
      * [core] simple Cargo.toml formatting
      
      * [ci] use latest nightly-2019-08-13
      
      * [ci] upload kcov results after workspace checks
      
      * [scripts] fix the banner not being printed
      
      * Update README.md
      
      Co-Authored-By: Andrew Jones's avatarAndrew Jones <ascjones@gmail.com>
      
      * Update core/src/lib.rs
      
      Co-Authored-By: Andrew Jones's avatarAndrew Jones <ascjones@gmail.com>
      5c5d17df
    • 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
  27. 09 Aug, 2019 1 commit
    • Andrew Jones's avatar
      [*] parity-codec -> parity-scale-codec (#164) · 9525f2f5
      Andrew Jones authored
      * [*] parity-codec -> parity-scale-codec
      
      * [core, model] Decode impls Option -> Result
      
      * [core] typed_cell load expect successful Decode
      
      * [core] Option to Result, remove redundant combinator
      
      * [model] Option to Result
      
      * [*] abbreviate parity-scale-codec
      
      * [core] fix dummy Call Decode impl
      9525f2f5
  28. 30 Jul, 2019 1 commit
    • Andrew Jones's avatar
      Implement `ext_dispatch_call` (#124) · 49f221bd
      Andrew Jones authored
      * [core] Add AccountId to EnvTypes
      
      * [core] Add calls mod, plus WIP tests
      
      * [core] Balance transfer call roundtrip works
      
      * [core] Add ext_dispatch_call
      
      * [core] Implement ext_dispatch_call
      
      * [examples] Add example lang contract for ext_dispatch_call
      
      * [examples] WIP: implement example lang contract for ext_dispatch_call
      
      * [examples] complete basic implementation of dispatching Balances Call
      
      * srml-contracts -> srml-contract
      
      * [core] remove unsafe from dispatch_call api fn
      
      * [core] Add docs to dispatch_call
      
      * [core] Add missing trait bound to account index
      
      * [core] Some todos
      
      * [core] Rename dispatch_call to dispatch_raw_call on Env trait
      
      * [lang] Add AccountIndex type alias
      
      * [model] add strongly type dispatch call to EnvHandler
      
      * [*] specify latest parity-codec version, same as substrate
      
      * [core] fix call roundtrip tests
      
      * [lang] fix tests
      
      * [core] fix wasm build
      
      * [core] fix std build
      
      * [core] move call type serialization tests
      
      * [core] test Call serialization roundtrip
      
      * [core] use node_runtime for Call serialization roundtrip
      
      * [core] remove unused dependencies
      
      * [core] remove unused substrate dependencies
      
      * [core] change default Balance to u128, matching substrate
      
      * [core] introduce Address type for balance calls
      
      * [core] fix Balances transfer serialization test
      
      * [core] add Address serialization tests
      
      * [ci] install wasm-gc for building substrate dev deps
      
      * [ci] move wasm-gc installation after wasm target added
      
      * [examples] get the calls example compiling
      
      * [CI] add temporary check for debugging ci build
      
      * [CI] restore wasm-gc to install section and remove temp version check
      
      * [CI] temporarily depend on substrate branch to test build fix
      
      * [CI] remove temp substrate branch, build issue fixed
      
      * [core] use std feature instead of test-env for EnvTypes
      
      * [core] remove Call types, moved to ink-types-node-runtime
      
      * [core] remove AccountIndex from EnvTypes
      
      * [core] remove AccountIndex from lang codegen
      
      * [core] fix unused for std
      
      * [CI] remove wasm-gc from travis build
      
      * [CI] remove AccountIndex type alias from codegen
      
      * parity-codec version 4.1.1 -> 4.1
      
      * [core] ext_dispatch_call docs
      
      * [core] describe in comment what will happen if decoding fails
      
      * [model] implement suggestion of Into<Call>
      
      * rustfmt
      
      * rustfmt again
      
      * rustfmt again again
      
      * [examples] deleted calls example - moved to ink_types_node_runtime
      
      * [core] use into in api::dispatch_call
      
      * [core] make Call empty enum and use test-env feature for EnvTypes
      
      * [core] remove unused Call enum
      
      * [core] add comments explaining rationale for test-env
      
      * [core] missing period
      
      * [core] add comments
      
      * [core] add space in comment
      
      * [core] add comment to Call decode impl
      
      * [core] make dispatched_calls a DoubleEndedIterator
      
      * [core] add missing doc comment
      
      * [core] add comment explaining Decode requirement
      
      * [core] doc comment and DoubleEndedIterator
      49f221bd
  29. 29 Jul, 2019 3 commits