• 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
This project manages its dependencies using Cargo. Learn more