This project is mirrored from https://github.com/paritytech/ink.git. Updated .
  1. 10 Nov, 2019 14 commits
  2. 09 Nov, 2019 3 commits
    • Andrew Jones's avatar
      [cli] add generate-abi command (#209) · fe093478
      Andrew Jones authored
      * [cli] add flag to `build` command to generate abi
      
      * [cli] fix abi console output
      
      * [cli] restore +nightly
      
      * [cli] separate generate-abi command
      
      * [cli] move nightly check to exec_cargo fn
      
      * [cli] add test for generate_abi
      fe093478
    • Hero Bird's avatar
      [cli] fix bugs in the template (#224) · c7411dac
      Hero Bird authored
      c7411dac
    • 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
  3. 30 Oct, 2019 2 commits
    • 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
    • Denis_P's avatar
      retry on gitlab system failures (#218) · d5863ac4
      Denis_P authored
      * retry on gitlab system failures
      
      * retry can't be root config key
      d5863ac4
  4. 29 Oct, 2019 1 commit
  5. 25 Oct, 2019 2 commits
  6. 24 Oct, 2019 3 commits
    • Andrew Jones's avatar
      [cli] fix `new` command tests, pass in optional target dir (#197) · 59867455
      Andrew Jones authored
      * [cli] use temp dir for `cargo contract new` tests
      
      * [cli] pass in temp dir to build command
      
      * [cli] rustfmt
      
      * [cli] remove some spaces
      
      * [cli] rustfmt
      
      * [cli] fix unused warnings
      
      * [cli] TEMPORARY: see if test works on CI without nightly flag
      
      * [cli] build: check if nightly toolchain is the default
      
      * [cli] TEMPORARY: dump cargo output of build command test
      
      * [cli] TEMPORARY: fix error in las commit
      
      * [cli] TEMPORARY: add some diagnostics to see if .cargo/config is there
      
      * [cli] TEMPORARY: use cat
      
      * [cli] fix merge compilation error
      
      * [cli] change ls and cat commands to current_dir
      
      * [cli] fix troubleshooting logging
      
      * [cli] TEMPORARY: comment out RUSTFLAGS for troubleshooting
      
      * [cli] add link-dead-code args to top level .cargo/config
      
      Avoids RUSTFLAGS env var overriding contract project's rust flags
      
      * [cli] revert temporary CI build troubleshooting
      
      * [cli] make rustflags not target specific
      
      * [cli] only link-dead-code in CI
      
      * [cli] TEMP: output .cargo/config
      
      * [cli] printf instead of echo
      
      * [ci] create cargo config in $CARGO_HOME instead of workspace root
      
      * [ci] fix cargo_home path
      
      * [ci] overwrite rather than append cargo home config
      
      * [ci] restore original RUSTFLAGS, ignore failing build test
      
      * [ci] remove stray echo
      59867455
    • Michael Müller's avatar
      47cf6f5e
    • Michael Müller's avatar
      d218509f
  7. 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
  8. 15 Oct, 2019 1 commit
  9. 04 Oct, 2019 5 commits
    • Andrew Jones's avatar
      [cli] deploy command (#131) · e5d03264
      Andrew Jones authored
      * [cli] construct put_code extrinsic
      
      * [cli] fetch current account nonce
      
      * [cli] submit extrinsic skeleton
      
      * [cli] submit extrinsic compiles and works?
      
      * [cli] refactor futures
      
      * [cli] extract substrate rpc module
      
      * [cli] Encapsulate rpc calls in struct
      
      * [cli] extract rpc call methods
      
      * [cli] temporarily add patch for client pub/sub
      
      * [cli] generic Hash
      
      * [cli] back to explicit H256
      
      * [cli] update parity-codec
      
      * [cli] add methods to submit and watch, and fetch events
      
      * [cli] update to paritytech jsonrpc repo patch
      
      * [cli] switch to ws transport
      
      * [cli] WIP: return extrinsic result with code hash
      
      * [cli] subscribe to block events
      
      * [cli] use jsonrpc 12.1 rather than crates,io patch
      
      * [cli] add logging for troubleshooting
      
      * [cli] deserialize OpaqueExtrinsic properly, logging for ext hash
      
      * [cli] still trying to get the Events for the block
      
      * [cli] log events storage key for debugging
      
      * [cli] refactor: function to extract extrinsic events
      
      * [cli] move extract code hash to deploy
      
      * ignore rust-toolchain file used for local builds
      
      * Update to new extrinsic format with extra
      
      * Fix signature with extra
      
      * Make System Events subscription work
      
      * Refactor EventRecord decoding
      
      * Extract code hash from events
      
      * rustfmt
      
      * Refactor: extract functions from Author
      
      * Remove stuff from .gitignore which could go in .git/info/exclude
      
      * Remove ws::connect unwraps
      
      * Pass in url from cli flag
      
      * Combine all rpc interfaces
      
      * Consistency in log messages
      
      * Expand short arg names
      
      * rustfmt
      
      * Comments and refactoring
      
      * rustfmt
      
      * Pass in secret in from command line
      
      * Change default url to ws
      
      * Add integration test (not passing yet) for deploy command
      
      * Extracted substrate extrinsic RPC to subxt
      
      * Get it working with subxt
      
      * [cli] update to latest subxt
      
      * [cli] convert to new subxt
      
      * [cli] add CheckVersion to SignedExtra type
      
      * Use latest version of subxt with dynamic events
      
      * [cli] cargo fmt
      
      * [cli] deploy: remove dependency on node-runtime!
      
      * [cli] use assert_matches in test
      
      * [cli] reuse crate metadata fn from build command to get wasm path
      
      * [cli] add comments
      
      * [cli] remove unused dependencies
      
      * [cli] remove more unused dependencies
      
      * [cli] Use static method
      
      * [cli] doc comments
      
      * [cli] rename surl -> suri
      
      * [cli] move Runtime defintion to subxt, reduce direct substrate deps
      
      * [cli] rustfmt
      e5d03264
    • Denis_P's avatar
      Merge pull request #196 from paritytech/create_ci · 89dca458
      Denis_P authored
      Gitlab CI
      89dca458
    • Denis_P's avatar
      CI is ready · 0613c044
      Denis_P authored
      0613c044
    • Denis_P's avatar
      Merge branch 'master' into create_ci · 7a655e55
      Denis_P authored
      7a655e55
    • 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
  10. 03 Oct, 2019 2 commits
  11. 02 Oct, 2019 6 commits