- 02 Feb, 2021 1 commit
-
-
hammeWang authored
* add #[ink:chain_extension] example contract * modify return content * fix rustfmt CI fail * bump codec and scale-info in rand-extension
-
- 28 Jan, 2021 2 commits
-
-
Andrew Jones authored
* Update to scale-info 0.5 * Update TypeInfo manual impls * Update parity-scale-code to 2.0 * Add Encode ?Sized bounds * Change type display name for Key custom TypeInfo impl * Add missing ?Sized constraint * Fmt * Missing ?Sized bound in example
-
hammeWang authored
* add #[ink:chain_extension] example contract * modify return content * fix rustfmt CI fail
-
- 19 Jan, 2021 1 commit
-
-
Andrew Jones authored
* WIP * Add salt argument to instantiate call * Fix lang compilation * Fix salt to [u8; 4] * Make create builder generic over Salt * Use type state instead of () * Rename salt to salt_bytes * Fmt * Apply review suggestion: type state enum * Apply review suggestion: separate impl block for salt_bytes getter * Apply review suggestion: take salt bytes directly to avoid copy overhead * Apply review suggestion: use Salt type state instead of leftover concrete type * Apply review suggestion: fix doc tests
-
- 04 Jan, 2021 1 commit
-
-
Andrew Jones authored
-
- 02 Dec, 2020 2 commits
-
-
Michael Müller authored
* Ensure topics are unique * Remove unavailable method * Fix salt appending in Wasm * Remove salt param * Add missing assignment * Update crates/lang/src/events.rs Co-authored-by:
Hero Bird <robin.freyler@gmail.com> * Add suggestions * Remove always inline * Fix event hashing in examples * Make nightly clippy happy * Remove unnecessary return param * Do not use internal type for hash calculation * Hide internal type from docs * Expose `PrefixedValue` from ink_env::topics * Apply cargo fmt * Apply cargo fmt * Apply comments * Apply comments * Apply comments Co-authored-by:
Hero Bird <robin.freyler@gmail.com>
-
Michael Müller authored
* Update to new cargo-contract cli commands * Fail `build-all` if one of the individual builds fails * Improve text * Remove mentions of new .contract file * Revert "Remove mentions of new .contract file" This reverts commit a3c959ac. * Improve readme text
-
- 26 Nov, 2020 1 commit
-
-
Michael Müller authored
* Migrate magic number to global const * Replace format! * Make nightly clippy happy * Remove unnecessary return param * Apply comments * Update crates/storage/src/lazy/lazy_cell.rs Co-authored-by:
Hero Bird <robin.freyler@gmail.com> * Fix binding * Add binding Co-authored-by:
Hero Bird <robin.freyler@gmail.com>
-
- 23 Nov, 2020 1 commit
-
-
Michael Müller authored
* Fix typo * Fn does not need to take mutable self * Fix naming: #[ink(implemenetation)] ➜ #[ink(impl)] * #[ink(storage)] can not be applied to enum * Fix typo: accesses ➜ accessed * Fix typo: sturctures ➜ structures
-
- 13 Nov, 2020 1 commit
-
-
Michael Müller authored
-
- 10 Nov, 2020 1 commit
-
-
Michael Müller authored
* Advance ptr, even when 'None' * Revert me: Add minimal contract which reproduces bug * Fix typo: explicitely ➜ explicitly * Add regression test * Improve structure * Revert "Revert me: Add minimal contract which reproduces bug" This reverts commit 69cd40e2. * Fix clippy error 'result_unit_err' * Fix clippy error 'result_unit_err' * Fix typo: sucesful ➜ successful * Improve comment * Remove no-op * Remove type aliases for V1/V2
-
- 03 Nov, 2020 1 commit
-
-
Michael Müller authored
* [chores] implicitely ➜ implicitly * [examples] Add demonstration of how to mock transferred_balance * [lang] Fix clippy 'needless_lifetimes' Error was: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) * [lang] Apply cargo fmt * [examples] Fix param
-
- 30 Oct, 2020 1 commit
-
-
Michael Müller authored
* [chores] Fix typo: invokation ➜ invocation * [chores] Fix typo: timstamp ➜ timestamp * [chores] Fix typo: ininitialized ➜ initialized * [env] Implement terminate_contract in off-chain env * [examples] Add lock-until * [env] Implement proper off-chain testing for ext_terminate * Apply suggestions from code review Co-authored-by:
Hero Bird <robin.freyler@gmail.com> * [env] Fix Environment type * [env] Derive Balance/AccountId from Environment * [env] Fix types in macro * [examples] Remove lock-until * [examples] Add contract-terminate * [examples] Add contract-transfer * [examples] Make clippy happy * [examples] Fix example name * [examples] Remove Default impls * [examples] Move macro to contract-terminate/test_utils * [env] Migrate macro to fn which gets Environment type param * [env] Add explanatory dev comment * [examples] Allow clippy::new_without_default Co-authored-by:
Hero Bird <robin.freyler@gmail.com>
-
- 23 Oct, 2020 1 commit
-
-
Michael Müller authored
* [examples] Add missing accumulator/std * Fix check-examples.sh * Fix check-workspaces.sh * Line up results * Complete crates * Update scripts/check-examples.sh Co-authored-by:
Hero Bird <robin.freyler@gmail.com> * Introduce differentiation purely_std_crate/also_wasm_crate * Include crates lang/codegen and metadata in CI testing Co-authored-by:
Hero Bird <robin.freyler@gmail.com>
-
- 22 Oct, 2020 1 commit
-
-
Hero Bird authored
* [releases] add release notes for ink! 3.0-rc2 * [*] bump crate versions to ink! 3.0-rc2 * [releases] add missing ink! 3.0-rc2 release note
-
- 21 Oct, 2020 1 commit
-
-
Michael Müller authored
* [examples] Rustify return types * [examples] Add trait-erc20 Example * [examples] Improve readability * [examples] Remove unneeded export * [examples] Move definitions into module * [examples] Commentify * [examples] Improve comment * [examples] Improve comment * [examples] Fix typo * [examples] Add Error::InsufficientAllowance * [examples] Add Errors section in doc comments * [examples] Make allowance_of_or_zero and balance_of_or_zero inplace * [examples] Ensure allowance is only updated if transfer worked * [examples] Apply cargo fmt * [examples] Add test which would have catched allowance changing on failed transfer * [examples] Apply cargo fmt * [examples] Remove unnecessary assert for ()
-
- 09 Oct, 2020 1 commit
-
-
Hero Bird authored
* [chores] add release notes for ink! 3.0 * [releases] 3.0: add note about trait definitions and implementations * [*] bump all ink! crate versions to 3.0.0-rc1 * [releases] fix elipsis * [releases] fix typo, improve sentences Co-authored-by:
Andrew Jones <ascjones@gmail.com> * [releases] fix typo, improve sentences Co-authored-by:
Andrew Jones <ascjones@gmail.com> * [releases] fix typo, improve sentences Co-authored-by:
Andrew Jones <ascjones@gmail.com> * [releases] add note to lazy * [releases] fix typo, improve sentences Co-authored-by:
Andrew Jones <ascjones@gmail.com> * [releases] fix typo, improve sentences Co-authored-by:
Andrew Jones <ascjones@gmail.com> * [releases] fix typo, improve sentences Co-authored-by:
Andrew Jones <ascjones@gmail.com> * [releases] add missing release notes for ink! 2.1 * [releases] fix typo, improve sentences Co-authored-by:
Andrew Jones <ascjones@gmail.com> * [releases] fix typo, improve sentences Co-authored-by:
Andrew Jones <ascjones@gmail.com> * [releases] improve payable docs * [*] update crate descriptions Co-authored-by:
Andrew Jones <ascjones@gmail.com>
-
- 08 Oct, 2020 2 commits
-
-
Hero Bird authored
* [env] rename Env -> EnvBackend, TypedEnv -> TypedEnvBackend * [env] rename EnvError -> Error * [*] rename ink_env::EnvTypes -> Environment Namely rename: ink_env::EnvTypes -> Environment ink_env::DefaultEnvTypes -> DefaultEnvironment * [*] update cfg-if dependency 0.1 -> 1.0 * [alloc] rename ink_alloc -> ink_allocator * [env] forgot to rename in lib.rs * [env, lang] fix some bugs with ink_env::EnvError -> Error renaming * [ci] adjust renaming of ink_alloc -> ink_allocator * [env] apply rustfmt * [lang/macro] re-enable disabled UI test * [examples] DNS: apply rustfmt * [examples] ERC-20, ERC-721: apply rustfmt
-
Hero Bird authored
* [env] remove unnecessary copy of no longer used mod.rs * [env, lang] make crates compile again under newest Rust nightly * [env] on-chain: enhance ScopedBuffer Add append_encoded and take_appended methods. * [env] remove old Topics trait * [env] add new Topics infrastructure * [env] implement new Topics infrastructure for on/off chain environments * [env] remove dummy event * [env] make env::topics::state mod externally accessible It stays hidden in docs. * [lang/codegen] generate proper Topics impls for ink! events * [env] apply rustfmt * [lang/codegen] fix codegen for events without topics * [lang/macro] fix UI test * [env] off-chain: clean-up slightly * [examples] ERC-20: improve tests for event topics * [env] remove commented-out line * [lang/codegen] include event signature into topics This is the same as it is done for non-anonymous Solidity events. The signature of an ink! event is: ContractName::EventName. E.g. for ERC-20's Transfer event it is: Erc20::Transfer * [examples] ERC-20: adjust test for changes with event topics * [lang/ir] add support for anonymous events * [lang/codegen] add codegen for anonymous events * [lang/ir] apply rustfmt * [lang/macro] comment out failing unit test Fails due to rustc version mismatch and some recent error display change. * [examples] apply rustfmt
-
- 07 Oct, 2020 1 commit
-
-
Andrew Jones authored
* Make public fields for InkProject and specs * Make layout fields public * Use scale-info from branch * Add Deserialize derives, use ReadOnlyRegistry * Deserialize contract metadata specs * Deserialize layout2 specs * WIP decode hex * Use impl_serde crate for hex byte string serde * Test for selector deserialization * Fix up custom deserialization * Export selector and add to_vec impl * Fmt * Fix up spec segments IntoCompact * Make name public * Update to latest scale-info master * Replace pub fields with getters * Replace pub fields with getters in spec * Fix search replace error with any::TypeId * Use scale-info 0.4 * Fmt * Remove commented out getter * Fix up other scale-info deps * Clippy * Fix up message and constructor spec builder method names * Serialize empty bytes vec without 0x prefix
-
- 05 Oct, 2020 1 commit
-
-
Hero Bird authored
* [lang] add doc to ink_lang::test proc. macro * [lang] add doc to ink_lang::trait_definition proc. macro * [examples] add whitespace to separate trait methods * [env] make it possible to use a primitive [u8; 32] as hash type * [lang] add doc-comment to #[ink::contract] proc. macro * [lang] add additional notes to #[ink::contract] docs * [lang] document #[ink::contract] selector controlling * [lang] add documentation for #[ink::contract] event definition and emitting * [lang] add doc section explaining env interaction via #[ink::contract] Explains Self::env() and self.env() interations. * [ci] add doc generation for ink_lang_ir and ink_lang_codegen * [lang/macro] fix docs Co-authored-by:
Michael Müller <mich@elmueller.net> * [lang/macro] fix typo Co-authored-by:
Michael Müller <mich@elmueller.net> * [ink/macro] fix typo Co-authored-by:
Michael Müller <mich@elmueller.net> * [lang/macro] improve docs Co-authored-by:
Andrew Jones <ascjones@gmail.com> * [lang/macro] fix typo Co-authored-by:
Andrew Jones <ascjones@gmail.com> * [lang/macro] fix typo Co-authored-by:
Andrew Jones <ascjones@gmail.com> * [lang/macro] fix typo Co-authored-by:
Andrew Jones <ascjones@gmail.com> * [env] implement Clear for Hash in terms of Clear for [u8; 32] * [storage] apply better formatting * [storage] make clearer that we use DynamicAllocator in test * [lang/macro] improve docs Co-authored-by:
Andrew Jones <ascjones@gmail.com> * [lang/macro] fix typo Co-authored-by:
Andrew Jones <ascjones@gmail.com> * [lang/macro] add note about payable constructors * [lang/macro] fix payable messages example * [lang/macro] add note about disabling dynamic storage allocator * [lang/macro] improve section about compile_as_dependency * [lang/macro] clear up EnvTypes SCALE encoding * [lang/macro] fix docs * [lang/macro] fix typo Co-authored-by:
Andrew Jones <ascjones@gmail.com> Co-authored-by:
Michael Müller <mich@elmueller.net> Co-authored-by:
Andrew Jones <ascjones@gmail.com>
-
- 01 Oct, 2020 1 commit
-
-
Hero Bird authored
* [*] split ink_core into ink_env and ink_storage The workspace does not yet compile! * [env] make compile again * [env] fix doc tests * [storage] make crate compile again * [env] fix some doc comment links * [README] flipper example: remove unused import * [storage/derive] fix compilation of generated code * [README] add ink_storage and ink_env doc links * [env, primitives, storage] fix docs * [lang] make compile again * [lang/codegen] use absolute paths in #[ink::test] proc. macro * [examples] make compile again * [*] apply rustfmt * [env] remove unneeded dependencies * [storage] remove all unneeded dependencies and crate features * [*] update outdated dependencies * [env, lang] remove unused dependencies * [*] fix comments * [*] fix some intra doc links * [ci] adjust to split ink_env and ink_storage crates * [ci] forgot to handle split ink_env and ink_storage in docs * [storage] fix fuzz tests * [examples] apply rustfmt * [examples] apply rustfmt (ERC-721)
-
- 30 Sep, 2020 1 commit
-
-
Hero Bird authored
* [chores] update README to new ink! 3.0 syntax * [*] update all broken LICENSE and README.md symbolic links * [*] update all license headers Also be more strict about their dates: 2018-2020 for all
-
- 29 Sep, 2020 2 commits
-
-
Hero Bird authored
* [*] move all ink! crates into crates/ directory * [ci] adjust .gitab-ci.yml to crates/ directory * [ci] fix GitLab .gitlab-ci.yml (attempt #2) * [ci] forgot some lines in attempt #2 * [examples] fix example smart contracts They need to readjust their paths for the crates/ directory.
-
Hero Bird authored
* [lang/codegen] initial impl of the new ink! codegen This new codegen is based on the (also) new ink! IR. * [lang/macro] apply rustfmt to imports * [lang/codegen] apply rustfmt * [lang/ir] add ItemMod::{attrs, vis} getters * [lang/codegen] make use of ir::ItemMod::{attrs, vis} in codegen * [lang/codegen] restructure ink_lang_codegen library * [lang/codegen] appliy clippy suggestion * [lang/ir] add Event::attrs() and ToTokens impl for EventField * [lang/codegen] apply rustfmt * [lang/codegen] implement Event code generator * [lang/codegen] make use of the new Events code generator * [lang/ir] make ir::Callable always Copy and Clone * [lang/ir] rename CallableWithSelector::item -> callable * [lang/ir] add Callable::kind() trait method * [lang/codegen] add dispatch enum code generation * [lang/codegen] enable dispatch code generator * [lang/codegen] add generation for constructor dispatch enum * [lang/codegen] implement contract entry points * [lang/codegen] implement code generation for DispatchUsingMode impl * [lang/codegen] add trait impl namespaces Msg<S> and Constr<S> * [lang/ir] add ir::Message::inputs_span() getter * [lang/codegen] add codegen for dispatch trait impls for ink! messages * [lang/codegen] plug-in dispatch trait impls code gen * [lang/ir] add Callable::inputs_span trait method * [lang/codegen] implement dispatch trait impl codegen for ink! constructors Also this implementation avoids a lot of code duplication with the similar code generation for dispatch trait impl of ink! messages. * [lang/codegen] make generate_input_bindings doc tests pass * [lang/ir] apply rustfmt * [lang/codegen] fix message and constructor namespaces * [lang/ir] add {Message, Constructor}::attrs getter * [lang/codegen] implement codegen for ink! ItemImpls * [lang/codegen] remove some unneeded imports for ItemImpl codegen * [lang/codegen] automatically import ink_lang's Env, EmitEvent and StaticEnv traits * [lang/codegen] do not generate for ink-as-dependency * [lang/codegen] initial impl for cross-calling codegen Not complete, yet. Also we stubled upon the fact that due to the additional Rust trait support we have to completely change how we generate code for cross-calling. Research! * [core] rename utils.rs -> selector.rs * [core] add common mod for common abstractions for call and create * [core] improve ExecutionInput: add useful trait impls * [core] refactor call builder * [core] adjust rest of ink_core to changed imports * [core] implement new CreateBuilder * [core] remove old InstantiateBuilder * [core] remove no longer needed traits * [core] add eval,invoke,eval_params,invoke_params to CallBuilder This makes both CallBuilder and CreateBuilder more similar to each other. * [core] apply rustfmt * [core] adjust environment to new CreateBuilder * [core] apply rustfmt * [core] move eval and invoke to CallParams * [core] adjust on-chain impl for CallBuilder * [core] add explanation for the cfg * [core] move instantiate to CreateParams * [core] make CreateParams getters crate private * [core] rename Call -> CallParams * [core] improve doc comment * [lang] adjust lang for new call and create builders * [core] expose builder construction through build_call and build_create * [core] remove Default impl for empty ExecutionInput * [core] add usage examples to build_call * [core] improve usage doc example of build_call * [core] improve doc tests for build_call * [core] add doc test example to build_create * [core] fix compilation after merge * [metadata] make constuctor and message name an array and add is_payable Only messages need is_payable field since constructors must always be payable. * [lang/codegen] add metadata code generation * [lang/ir] implement lint to ensure there are no __ink_ prefixed identifiers Identifiers starting with __ink_ may only be used by the ink! codegen. So far this has been only implemented on TokenTree or TokenStream level and not on parsed syn abstractions leading to arcane errors. E.g. it was possible to catch errors if an __ink_ substring appeared in a string literal before. * [metadata] make serialized Layout fields camelCase * [lang/ir, lang/macro] apply rustfmt * [lang/ir] initial implementation of #[ink::trait_definition] proc. macro * [lang/ir] re-export InkTrait * [lang/macro] create new proc. macro for ink! trait definitions * [lang/ir] improve error messages of #[ink::trat_definition] a bit * [lang/ir] add many more unit tests * [lang/ir] apply rustfmt * [lang/ir] fixed spelling bug * [lang/ir] fix handling or errorneous Self receiver in ink! constructors * [lang/ir] add bunch of new unit tests for #[ink::trait_definition] proc. macro * [lang/ir] add some more unit tests * [lang/ir] implement checks for invalid ink! attributes * [lang/ir] add unit tests for invalid ink! attributes * [lang/ir] use syn's builtin receiver getter * [lang/ir] add iterators for ink! trait definition * [lang/ir] add getters for generic info of ink! trait definition * [lang/ir] fix a unit test testing too much * [lang/ir] deny ink! trait definitions with supertraits We might add support for supertraits in future versions. * [lang/ir] add verify_hash functions * [lang/ir] simplify ink! trait verification hash There now is only a single hash instead of a hash per constructor and message. * [lang/ir] add InkTrait::attrs() getter * [lang/ir] add re-exports for most InkTrait types * [lang/codegen] initial implementation of #[ink::trait_definition] codegen Does not yet include the verification hash generation. * [lang/codegen] refine codegen for ink! trait definitions * [lang, lang/codegen] use correct trait for ink! trait definition checking * [lang/codegen] rework crate exposed API * [lang/ir] fix return value of ir::InkTrait::new * [lang/macro] update codegen driver for ink! trait definition * [core, lang/codegen, lang/ir, metadata] apply clippy suggestions * [lang/codegen, lang/ir, lang/macro, lang] apply rustfmt * [lang/macro] add ink_lang_codegen dependency Needed for #[ink::trait_definition] proc. macro. * [core/derive] use _ as const name instead of generated one * [lang/codegen] prefix {Constructo,Message}DispatchEnum ident with __ink_ * [lang/codegen] use payable instead of is_payable * [lang/codegen] hide some generated types * [lang/ir] improve error span of bad storage struct visibility * [core] add CallBuilder::returns to signal return type Also this adds CallBuilder::fire as a quick way to fire off the call. The CallBuilder::invoke_params and CallBuilder::eval_params are no longer needed and thus removed. * [lang/ir] implement ToTokens for ir::Receiver * [lang/codegen] apply #[doc(hidden)] to generated call forwarders * [lang/codegen] slightly clean-up code * [lang/codegen] use new call infrastructure for call forwarders * [lang/codegen] add codegen for short-hand cross-contract message calls * [lang/codegen] add #[inline] to generated short-hand message calls * [lang/codegen] improve short-hand call error message * [lang/codegen] do not generate conflicting impls * [lang/codegen] generate non-ink! specific user defined items * [lang/ir] remove some commented out code * [core, lang/ir] apply rustfmt * [core] add CreateBuilder::instantiate * [lang/codegen] fix generate_arg_list * [lang/codegen] add cross-calling codegen for non-trait constructor impls * [lang/codegen] add an associated type per trait constructor in ink! trait definition * [lang/codegen] remove former Output associated type in ink! trait definition * [lang] re-export trait_definiction proc. macro from ink_lang crate * [lang/ir] expose InkTrait::compute_verify_hash * [lang/ir] add ir::ItemImpl::trait_ident * [lang/codegen] fix some bugs with trait_definition codegen * [lang/codegen] add codegen for cross-calling ink! trait implementations * [lang/codegen] surpress warning in generated code * [lang/codegen] fix bug in generated trait constructors * [lang/codegen] add codegen for trait implementation blocks * [lang/ir] allow access to parent impl block from within a CallableWithSelector * [lang/codegen] make dispatch trait impls more explicit for trait impls * [lang/codegen] fix and fully implement cross-calling (trait) impl blocks Works now for both trait impl blocks as well as inherent impl blocks. Only missing piece now is the codegen for the call forwarders and their impl blocks. * [lang/ir] add ir::ItemImpl::attrs getter * [lang/codegen] add codegen for impl block attributes for cross-calling * [lang/codegen] correctly re-generate attributes for impl blocks * [lang/codegen] generate forwarder inherent impl blocks * [lang, lang/codegen] adjust ink::trait_definition proc. macro codegen Now it also generates an associated return type per message. Those have to respect the ink_lang::ImpliesReturn trait. * [lang/codegen] add cross-calling call forwarder codegen for trait impl blocks * [lang] add NeverReturns utility codegen type * [lang/codegen] implement codegen for cross-calling trait impl blocks * [*] apply rustfmt * [lang/codegen] apply some clippy suggestions * [lang/macro] make use of new ink! 3.0 codegen * [examples] adjust Flipper example to ink! 3.0 * [examples] add trait based Flipper example * [examples] adjust Delegator example to ink! 3.0 * [lang/codegen] always use std feature for itertools dependency Otherwise codegen won't work for Wasm32 compilations. * [examples] adjusted Incrementer to the new ink! 3.0 codegen * [lang/ir] fix error span for bad event visibility modifier * [lang/ir, lang/codegen] fix event fields codegen * [lang/codegen] fix incorrectly generated EmitEvent trait impl * [lang/codegen] fix bugs with ink-as-dependency and event usage * [examples] adjust Erc20 contract to ink! 3.0 syntax * [examples] fix Erc20 unit tests * [lang, lang/codegen] add ContractEnv trait Used to query EnvTypes trait impl using the ink! storage struct. * [lang, lang/codegen] implement payable messages and dynamic storage alloc Now it is possible to control whether to use the dynamic storage allocator provided by ink! in ink! itself. Also this PR implements codegen for non-payable messages. * [lang/macro, lang/codegen] apply rustfmt # Conflicts: # lang/macro/src/lib.rs * [lang/ir] error upon payable constructor ink! constructors are payable by default. * [core] remove EnvTypes::Call associated type No longer needed since we just removed the ability to directly call the runtime. * [core] add MAX_EVENT_TOPICS to EnvTypes trait * [lang, lang/codegen] optimize message payment checks codegen * [lang/ir, lang/codegen] dynamic storage allocator: rename + change default New default is set to "false" so only contracts that actually use this feature need to specify it. Also renamed to dynamic_storage_allocator to better carry intention. * [lang, lang/codegen] add codegen to guard against too many event topics * [lang/ir] apply rustfmt * [lang/codegen] pull topic guards codegen out of topics impl codegen const * [lang/codegen] split event topic guards into their own method * [lang] remove duplicate re-exports * [lang/codegen] improve error message for events with too many topics * [core/derive] explicitly use synstructure 0.12.4 * [examples] update DNS contract example to ink! 3.0 syntax * [examples] update ERC-721 contract example to ink! 3.0 syntax * [examples] update multisig_plain example contract to ink! 3.0 The most work was to update the new call builders. * [lang/ir] improve error message for bad visibility of ink! callables * [*] update all ink! versions: 2.1.0 -> 3.0.0 * [lang/ir, lang/codegen] port InkTest proc. macro impl to new facilities * [lang/ir] make __ink_ ident prefix check more general * [lang/ir] make use of __ink_ idents check in other proc. macro impls * [*] apply rustfmt * [examples] apply rustfmt * [lang] integrate ported #[ink::test] proc. macro * [lang/macro] remove old proc. macro facilities * [lang/macro] fix all passing UI tests * [lang/ir] implement check to guard against Self return in ink! messages * [lang/codegen] implement check to guard against non ink! storage ink! impls This works even in precense of type aliases. * [lang] add re-export for static_assertions * [lang/macro] update all ink! UI failure tests * [lang/ir] apply rustfmt * [lang/codegen] remove commented-out code * [lang/codegen] allow clippy::type_complexity in some cross-calling sites * [*] remove Cargo.lock.old ... oupsi * [examples] fix incorrected doc comments * [metadata] remove unnecessary serde field attribute * [metadata] rename module layout2 -> layout * [core] rename module storage2 -> storage * [core] apply rustfmt
-
- 23 Sep, 2020 1 commit
-
-
Michael Müller authored
* [lang] Introduce [ink::test] macro * [core] Migrate some tests to use [ink::test] macro * Address comments * Apply cargo fmt * [lang] Ensure generated code behaves as if test fn has no return value * [examples] Migrate tests to use [ink::test] macro * [core] Revert core using [ink::test] * [lang] Use all available parameters * [lang] Remove unused imports * [lang] Remove implicit Ok(()) * [core] Apply cargo fmt * [lang] Make it clearer where ItemFn comes from * Apply cargo fmt
-
- 21 Sep, 2020 1 commit
-
-
Michael Müller authored
* [examples] Make multisig_plain use Lazy::set() * [examples] Migrate multisig use HashMap Entry API * [examples] Migrate DNS to HashMap Entry API * [examples] Migrate Erc271 to HashMap Entry API * [examples] Fix naming * [examples] Increase test coverage * [examples] Rename fn * [examples] Address comments
-
- 25 Aug, 2020 1 commit
-
-
Hero Bird authored
* [core] remove get_runtime_storage and invoke_runtime * [core] invalidate all implementations and usages of ext functions * [core] adjust ext_ functions in ext.rs * [core] add ReturnFlags to public API * [core] remove off-chain impls for get_runtime_storage and invoke_runtime * [core] rename ext::ext_input -> ext::input * [core] change return type of get_contract_storage Previously returned Option<Result<R>> and now returns Result<Option<R>>. This change is more pragmatic. * [core] add conversion from ext::Error to EnvError * [core] on-chain: add new utilities for static buffer modifications - EncodeScope: for efficiently appending encoded values - ScopedBuffer: for efficiently chunking buffers * [core] add impls for on-chain property getters * [core] remove no longer needed utiltiy function * [core] on-chain: new impl for invoke_contract and eval_contract * [core] on-chain: new impl for get_contract_storage * [core] on-chain: new impl for decode_input We should also rename this to simply "input" later. * [core] on-chain: new impl for output Now also uses the new ReturnFlags abstraction. * [core] on-chain: new impl for instantiate_contract * [core] on-chain: remove unused API * [core] on-chain: move EncodeScope and ScopedBuffer to buffer.rs * [core] on-chain: implement rest of the on-chain API * [core] add ScopedBuffer::take_bytes * [core] Add Env::call_chain_extension trait method * [core] remove unused helper methods * [core] on-chain: simplify static buffer - No more length - No more encodable - Only full range access * [core] add env::call_chain_extension public API * [core] rename Env::output -> return_value * [core] off-chain: adjust a bunch of off-chain methods to new interfaces * [core] off-chain: adjust get_contract_storage return type * [core] off-chain: remove RuntimeCallHandler and RuntimeStorage facilities * [core] off-chain: adjust some tests * [core] off-chain: remove OffCall utility type * [core] off-chain: implement chain extension handler * [core] adjust panic message * [core] apply rustfmt * [core] apply clippy suggestion * [core] off-chain: re-export ChainExtension and ChainSpec types from test API * [core] on-chain: retain panic messages * [core] rename ext_ to seal_ for all on-chain functions * [alloc] fix some warnings and add some minor comments * [core] add wasm_import_module = "seal0" * [core] introduce new Seal error codes * [core] directly return ReturnCode from C-FII * [core] make transfer return Result * [core] improve some doc comments * rename some old errors to their new names * [core] remove unused env errors and rename some off-chain errors * [core] fix bug in ReturnFlags::set_reverted (formerly known as set_trapped) * [core] avoid From impl for () for OffChainError * [lang] adjust lang layer for changes in core - Remove invoke_runtime - Remove get_runtime_storage - Rename gas_price -> weight_to_fee - Add ReturnFlags to return_value call * [core] turn redundant asserts into debug_assert * [core] be more strict when handling ext::get_storage error * [core] implement clippy suggestion * [examples] remove no longer useful runtime-storage contract We no longer support the get_runtime_storage host function. It will eventually be reintroduced at a later point through chain extensions. * [core] disable chain extensions by default Can be enabled by experimental crate feature: - unstable_chain_extensions * [lang] apply clippy suggestion to use matches! macro * [core] fix docs for ext_return Co-authored-by:
Alexander Theißen <alex.theissen@me.com> * [core] fix return type of api::return_value Not sure why the compiler didn't mention this return type failure ... Co-authored-by:
Alexander Theißen <alex.theissen@me.com> * [core] fix doc comment of Env::return_value * [core] introduce RawReturnCode as a layer between Seal error codes and ink! * [alloc] make #[alloc_error_handler] private * [alloc, core] move alloc_handler from ink_alloc to ink_core * [core] replace useless intermediate ReturnCode type * [core] rename RawReturnCode -> ReturnCode * [core] apply rustfmt * [core] apply rustfmt * [core] off-chain: rename invoke -> eval for chain extension calling * [core] use Ptr32 and Ptr32Mut to encapsulate pointer -> u32 conversions * [core] make new Ptr32 and Ptr32Mut abstractions more type safe Co-authored-by:
Alexander Theißen <alex.theissen@me.com>
-
- 15 Jul, 2020 2 commits
-
-
Andrew Jones authored
* WIP * WIP * Iterating on InkProject types * Extract InkProject to its own file * More iteration on contract metadata * Compiles...ship it * Fmt * Add optional fields and doc test * Add custom serializer impls for compiler/lang * Fmt * Clippy * Update to scale-info 0.3 * Use &'static str instead of compact string (scale-info 0.3) * Reexport Url and Version * Fix missing semicolon * Fix up metadata exports and codegen * Serialize hash as byte string * Remove spec nesting * Remove name from contract spec * Add name to storage struct * Flatten SourceCompiler * Implement ToTokens for Extension metadata Allows converting an instance into code that can construct that instance. For use from `cargo-contract`. * User and Version * Fix up builder ToTokens and other errs/warns * Fmt * Url wrapper * Comment and Version/Url intos * Fmt * Fix U * Promote extension to module dir * Moved InkProjectExtension to cargo-contract * Fix doc gen * Fix json tests * Use pretty assertions and fix layout json tests * Remove storage name from layout (ink specific) * StorageLayout -> Layout * Remove redundant contract_ident_lit * Remove redundant dependencies * Use Self instead of InkProject
-
Andrew Jones authored
* Export EmittedEvent * Assert transfer event in all tests * Fmt
-
- 30 Jun, 2020 1 commit
-
-
Andrew Jones authored
* git mv abi metadata * mm * Rename codegen abi to metadata * Fmt
-
- 24 Jun, 2020 1 commit
-
-
Andrew Jones authored
* Incrementer * DNS * ERC 20 * [examples] set all crate-types to cdylib * [examples] delegator * [examples] remove remaining abi and profile.release cruft * Restore rlib to delegator dependencies * Remove redundant reexports * Restore reexports for delegator sub contracts * Fix type * Install version of cargo-contract from branch * Use cargo-contract ink-ci branch * dns crate type
-
- 22 Jun, 2020 1 commit
-
-
Andrew Jones authored
* Hack to see if #[start] works * Hack to see if #[no_mangle] works * Remove incrementer bin target * Use Rust extern api and pass back InkProject struct directly * Uglify name * Update remaining examples to use generate metadata function * Do not generate for ink-as-dependency to make delegator work * Remove explicit version from abi dependency * Remove duplication * Remove GenerateAbi trait
-
- 17 Jun, 2020 2 commits
-
-
Hero Bird authored
* [core] add Env::decode_input * [lang/macro] remove unneeded crate dependencies # Conflicts: # lang/macro/Cargo.toml * [lang, lang/macro] add message dispatcher type code generation * [lang/macro] add constructor dispatch enum code generation * [lang] add executor functions and Execute trait * [core] add decode_input to public env API * [lang] fix incorrect trait bound in execute_message * [lang/macro] add code generation for ink_lang::Execute * [lang/macro] integrate Execute trait impls into contract dispatch * [lang/macro] fix bug with constructors and messages with multiple inputs * [lang] apply rustfmt * [lang/macro] apply rustfmt + fix clippy warnings * [lang] remove testable module * [lang] clean-up lang module after implementing new dispatch codegen # Conflicts: # lang/src/dispatcher.rs * [lang] re-enable alloc init and finalize * [lang] apply rustfmt * [core] remove Env::input function It has been deprecated. Users should use Env::decode_input function instead. # Conflicts: # core/src/env/engine/off_chain/mod.rs * [core, examples] fix move of CallData to env::test API * [core] apply rustfmt * [examples] fix examples Selector::from_str -> new * [examples] fix multisig_plain doc-test import * [examples] apply rustfmt to multisig_plain example * [lang/macro] resolve some code dupes
-
Andrew Jones authored
* Update to latest scale-info * scale-info 0.2 * Merge branch 'master' into aj-update-scale-info # Conflicts: # primitives/src/key.rs * Fmt
-
- 16 Jun, 2020 1 commit
-
-
Hero Bird authored
* [primitives, lang/macro] remove ink_primitives::hash module # Conflicts: # primitives/src/lib.rs * [core] remove ink_core's Selector::{from_str, from<&[u8]>} constructors * [examples] fix DNS contract * [examples] fix ers20 * [examples] fix other example smart contracts * [examples] apply rustfmt
-
- 15 Jun, 2020 1 commit
-
-
Alexander Theißen authored
* Fix multisig example doctest * Fix formatting * Remove Selector::from_str() usage
-
- 14 Jun, 2020 1 commit
-
-
Hero Bird authored
-
- 13 Jun, 2020 2 commits
-
-
Hero Bird authored
* [core] add ExecutionInput abstraction * [core, lang] adjust env and lang abstractions for call builder changes * [lang/macro] adjust cross-call codegen to use new call infrastructure * [core] add #[inline] to many call infrastructure functions * [core, lang] apply rustfmt * [core, lang, lang/macro] avoid heap mem alloc for instantiations as well * [core] add inline annotations to some instantation infrastructure * [core] fix clippy warning * [core] apply rustfmt * [examples] fix multisig_plain example contract * [examples] apply rustfmt
-
Hero Bird authored
* [abi] create new layout trait and structures * [abi] remove unused import * [abi] add missing license header * [abi] fix clippy warning * [primitives] add KeyPtr to ink_primitives * [core] use KeyPtr through ink_primitives and add ExtKeyPtr trait * [abi] use KeyPtr of ink_primitives * [abi] make EnumLayout use StructLayout * [abi] implement custom serde::Serialize for LayoutKey * [abi] implement IntoCompact for layout2 module types * [abi] add doc comment * [abi] apply rustfmt * [abi] add unit test for LayoutKey serialization * [abi] rename ArrayLayout::array -> new * [abi] add dispatch_key field to enum layout * [abi] derive From for all Layout variants * [abi] add unit tests for the new layout traits and data structures * [abi] add experimental CellLayout * [abi] make tests work again for layout2 * [abi] use specialized serializer function for LayoutKey * [abi] refactor UnboundedLayout * [abi] add unit test for UnboundedLayout * [abi] apply rustfmt * [core/derive] slightly refactor code * [abi] simplify enum test * [primitives] derive Debug, Copy and Clone for KeyPtr * [abi] simplify CellLayout::new * [abi] fix calling incorrect constructor for LayoutKey * [abi] move layout2 module file into directory * [core] add StorageLayout trait to storage2 module * [abi_derive, core_derive] remove unnecessary extern crate proc_macro * [core] imply ink-generate-abi feature by std feature * [core] derive Metadata for env types for std feature * [core] add Key, Hash, AccountId and String StorageLayout impls * [core/derive] add initial structure for StorageLayout derive * [core] add StorageLayout impls for some more prelude types * [core] fix Box<T> impl for StorageLayout trait * [core] implement StorageLayout for storage2::{Memory, Pack, LazyArray} * [core] fix StorageLayout impl for LazyArray * [core] implement StorageLayout for LazyIndexMap * [abi] add HashLayout * [abi] rewrite UnboundedLayout test to HashLayout test * [abi] remove unbounded layout * [abi, core] apply rustfmt * [core] add initial skeleton for StorageLayout tests * [core] add StorageLayout impls for Lazy, LazyCell and LazyHashMap * [core] add StorageLayout impls for Option and Result * [core] add LayoutCryptoHasher trait * [core] fix StorageLayout impl for LazyHashMap * [core] apply rustfmt * [core] add StorageLayout impl for storage2::Vec * [core] add StorageLayout for storage2::SmallVec * [core] implement StorageLayout for storage2::Stash * [core] implement StorageLayout for storage BitStash, Bitvec and HashMap * [core] improve StorageLayout impl for storage2::Vec * [core] apply rustfmt * [abi] fix clippy warning * [core] add StorageLayout impl for storage2::alloc::Box * [core] add StorageLayout impl for DynamicAllocator * [core/derive] impl StorageLayout derive for struct items * [core/derive] make StorageLayout derive work for enum items * [core/derive] fix expansion for nested enums * [core/derive] fix a bug with nested enums * [core/derive] add unit test for MixedEnum * [core/derive] apply rustfmt * [lang] add revision 2 module * [core] remove generic T: EnvTypes param from Dispatch trait * [lang] remove unnecessary import * [lang] remove unnecessary generic parameter * [lang/macro] generate codegen for the new v2 traits * [core] re-export SpreadLayout and PackedLayout macros from within ink_core * [lang] further adjustments to make ink_lang_macro work with storage2 * [lang, core] apply rustfmt * [lang] fix clippy warning * [lang] fix some bugs with constructors without inputs * [examples] adjust the Flipper example contract for the changes * [lang] remove codegen for testing ink! contracts No longer needed. * [lang] remove test-env crate feature * [lang] minor improvements to EnvAccess utility type * [examples] remove unused import for Flipper * [examples] remove test-env crate feature for Flipper * [lang] remove unused IdentType::span method * [examples] Flipper: adjust contract for ink_lang changes * [examples] adjust Erc20 for the ink_lang changes * [examples] fix some indentation in Cargo.toml * [examples] adjust DNS contract for ink_lang changes * [examples] adjust ERC721 for ink_lang changes There is still a bug that we need to fix in ink_core. * [example] adjust lib.rs of ERC721 to ink_lang changes * [examples] adjust Delegator example contract for ink_lang changes * [lang_macro] generate SpreadLayout and PackedLayout impls for cross-calling wrappers * [core] release storage2::Stash::entries() iterator for non-testing API * [core] add SpreadLayout and PackedLayout impls for () type * [examples] convert multisig contract example to new ink_lang * [examples] fix incrementer Cargo.toml indentations * [examples] adjust runtime-storage example contract for ink_lang changes * [core] apply rustfmt * [lang] generate correct attributes for messages * [examples] make use of derive(Default) for DNS example * [lang_macro] improve some ink! error messages * [lang_macro] update all compile tests * [examples] multisig: ignore doc test This needs serious fixing later! @athei * [lang] remove old ink_lang abstractions * [lang] remove no longer needed ink_lang modules * [lang_macro] add compile test for derive on storage struct * [examples] ignore failing doc test * [examples] actually ignore the failing doc-test for multi-sig * [lang] move v2 module back to origin * [lang_macro] adjust codegen for new dispatch module structure of ink_lang * [lang_macro] no longer impl ink_core::{Flush, AllocateUsing} for ink! dependencies * [lang_macro] use root namespaces in codegen everywhere * [lang] apply rustfmt * [lang_macro] use only root namespaces in codegen (forgot some) * [lang] remove nightly Rust feature usage * [core] re-export StorageLayout from ink_core::storage2::traits * [lang,abi] adjust ink! metadata generation codegen to new layout * [lang] use root namespaces in codegen * [examples] apply rustfmt * [lang] update cross-calling codegen for new storage layout * [examples] update Delegator example contract * [examples] apply rustfmt * [abi] remove StorageLayout trait from ink_abi crate * [examples] apply rustfmt * [examples] fix clippy warning * [examples] fix multisig_plain contract * [examples] apply rustfmt * [examples] fix clippy warning * [examples] remove commented out code from multisig_plain example * [lang] refactor codegen for contract storage struct * [lang] fix unused import warning * [lang] eliminate CrossCallingConflictCfg * [lang] do not generate normal storage struct as dependency * [lang] re-introduce cross calling conflict cfg codegen * [lang/macro] refactor codegen for cross-calling * [lang] add new traits for Event connectors * [lang/macro] use connectors API for event codegen * [lang/macro] apply rustfmt * [lang/macro] remove out-of-ink-module export * [abi] fix selector encoding * [lang/macro] fix unused warning * [examples] adjust example smart contracts for recents ink_lang_macro changes * [abi] fix unit test for selector * [chores] update README ink! example * [alloc] silence warnings of unused unsafe for core::intrinsics::abort * [examples] apply rustfmt * [lang/macro] fix codegen for `cargo test` * [*] replace ink-generate-abi crate feature everywhere with std * [examples] fix Cargo.toml for generating metadata * [examples] move flipper/src/lib.rs one up * [examples] move lib.rs to root folder * [examples] fix Cargo.toml of ERC721 * [examples] apply rustfmt to ERC20 * [examples] apply rustfmt to ERC721 * [examples] apply rustfmt to all examples * [abi] remove unused serialize_selector function * [examples] fix bug that DNS example still used type-metadata crate * [example] fix bug in multisig_plain example
-