- 03 Feb, 2020 1 commit
-
-
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 <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 <ascjones@gmail.com> * fix doc comment Co-Authored-By:
Andrew Jones <ascjones@gmail.com> * fix doc comment Co-Authored-By:
Andrew 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 <ascjones@gmail.com> * improve doc comment Co-Authored-By:
Andrew Jones <ascjones@gmail.com> * rename create_contract -> instantiate_contract Co-Authored-By:
Andrew Jones <ascjones@gmail.com> * rename create_contract -> instantiate_contract Co-Authored-By:
Andrew Jones <ascjones@gmail.com> * improve doc comment Co-Authored-By:
Andrew Jones <ascjones@gmail.com> * impr Co-Authored-By:
Andrew Jones <ascjones@gmail.com> * improve doc comment Co-Authored-By:
Andrew Jones <ascjones@gmail.com> * improve doc comment Co-Authored-By:
Andrew Jones <ascjones@gmail.com> * improve doc comment Co-Authored-By:
Andrew Jones <ascjones@gmail.com> * rename endowment -> transferred_value Co-Authored-By:
Andrew Jones <ascjones@gmail.com> * improve doc comment Co-Authored-By:
Andrew Jones <ascjones@gmail.com> * rename create_contract -> instantiate_contract Co-Authored-By:
Andrew Jones <ascjones@gmail.com> * rename create_contract -> instantiate_contract Co-Authored-By:
Andrew Jones <ascjones@gmail.com> * rename time stamp to timestamp Co-Authored-By:
Andrew Jones <ascjones@gmail.com> * rename SRML to env in docs Co-Authored-By:
Andrew Jones <ascjones@gmail.com> * remove SRML word from docs Co-Authored-By:
Andrew Jones <ascjones@gmail.com> * remove SRML word from docs Co-Authored-By:
Andrew 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 <mich@elmueller.net> Co-authored-by:
Andrew Jones <ascjones@gmail.com>
-
- 21 Nov, 2019 1 commit
-
-
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
-
- 20 Nov, 2019 1 commit
-
-
Hero Bird authored
-
- 09 Nov, 2019 1 commit
-
-
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 <mich@elmueller.net> * fix typo in lang2/macro/src/ir/into_hir.rs Co-Authored-By:
Michael Müller <mich@elmueller.net> * fix typo in examples/lang2/delegator/adder/lib.rs Co-Authored-By:
Michael Müller <mich@elmueller.net> * fix typo in lang2/macro/src/codegen/cross_calling.rs Co-Authored-By:
Michael Müller <mich@elmueller.net> * fix typo in core/src/env2/traits.rs Co-Authored-By:
Michael Müller <mich@elmueller.net> * fix typo in lang2/macro/src/codegen/contract.rs Co-Authored-By:
Michael 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 <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 <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
-
- 04 Oct, 2019 1 commit
-
-
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
-