- 26 Oct, 2020 1 commit
-
-
Michael Müller authored
-
- 22 Oct, 2020 2 commits
-
-
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
-
Hero Bird authored
* [benches] fix lazy benchmarks * [*] fix Cargo.toml documentation links * [readme] show CI status of master branch always * [readme] misc improvements * [storage] make re-export of LazyHashMap inline * [releases] add notes about ink_core split * [allocator] add some crate level docs * [storage] impl scale_info::TypeInfo for ink_storage::alloc::Box * [metadata] improve docs slightly * [storage] re-introduce StorageLayout impl for storage::Box
-
- 09 Oct, 2020 3 commits
-
-
Robin Freyler authored
-
Hero Bird authored
* [*] normalize authors for all ink! crates * [lang, storage] add extern crate proc_macro This is somehow needed for cargo publishing.
-
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>
-
- 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
-
- 28 Sep, 2020 1 commit
-
-
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/codegen] always use std feature for itertools dependency Otherwise codegen won't work for Wasm32 compilations. * [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 * [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 * [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/codegen] pull topic guards codegen out of topics impl codegen const * [lang/codegen] split event topic guards into their own method * [lang] apply rustftm * [lang/ir] remove unnecessary lifetime * [lang] make use of deny_payment internally * [lang/macro] ignore UI compile tests for now These will be re-enabled for the follow-up PR. * [metadata] rename is_payable -> payable (also for metadata format) * [lang/ir] resolve duplicate code for non-pub visibility checking Was duplicated for events and storage structs. * [lang/ir] apply rustfmt * [lang/codegen] removed commented-out code and update license header * [lang/codegen] update crate description * [core] move CreateParams impl blocks closer to struct definition * [lang/macro] use US english * [core] fix incorrect doc comment
-
- 02 Jul, 2020 1 commit
-
-
Hero Bird authored
* [lang/macro] move some items around * [lang/macro] rename AttributeFlag -> AttributeArg This is in order to sync naming with the syn crate. * [lang/macro] implement ink! config parameter parsing * [lang/macro] add doc comment to into_nested_meta helper function * [lang/macro] add preliminary ast module * [lang/macro] replace usage of ink_primitives::hash module * [lang/macro] slightly refactor Selector * [lang/macro] fully implement AttributeArgs definitions + tests * [lang/macro] add IntoIterator for AttributeArgs * [lang/macro] base ir2::Config on the new ast::AttributeArgs definitions * [lang/macro] apply rustfmt * [lang/macro] add some ToTokens implementations * [lang/macro] add unit tests for ir2::Config * [lang/macro] introduce general Error type * [lang/macro] remove RustItem * [lang/macro] follow-up: remove RustItem * [lang/macro] add ir2::contains_ink_attributes helper function * [lang/macro] initial skeleton for TryFrom<syn::Item> for ir2::Item impl * [lang/macro] add first_ink_attribute helper function * [lang/macro] refactor initial skeleton for ir2::Item TryFrom impl * [lang/macro] re-export first_ink_attribute to ir2 module * [lang/macro] add unit tests for contains_ink_attributes and first_ink_attribute * [lang/macro] enhance initial TryFrom skeleton for ir2::Item * [lang/macro] simplify item_attrs * [lang/macro] further simplify item_attrs * [lang/macro] minor improvement * [lang/macro] add ExtError to extend syn::Error * [lang/macro] add Attrs trait to extract attributes from syn types * [lang/macro] re-base error infrastructure on to syn::Error * [lang/macro] adjust unit tests for new error infrastructure * [lang/macro] remove old error types * [lang/macro] use syn::Error in ir2::Config * [lang/macro] adjust Config unit tests for syn::Error usage * [lang/macro] rename ensure_no_duplicates -> ensure_no_duplicate_attrs * [lang/macro] add AttributeArg::kind method * [lang/macro] use full type path * [lang/macro] implement InkAttribute::from_expanded * [lang/macro] implement ir2::Storage TryFrom * [lang/macro] minor refactor * [lang/macro] add InkAttribute::ensure_no_conflicts * [lang/macro] add some failure paths to TryFrom<_> for ink! Storage struct * [lang/macro] add unit tests for ink! storage struct conversion * [lang/macro] apply rustfmt * [lang/macro] fix some clippy warnings * [lang/macro] rename Storage::item_struct field to ast * [lang/macro] rename Event::item_struct -> ast * [lang/macro] add some method and an iterator to ink! event struct * [lang/macro] add initial implementation of ink! event's TryFrom * [lang/macro] add derives for Debug, PartialEq and Eq for ink! event * [lang/macro] add initial success path unit tests for TryFrom for ink! event * [lang/macro] fix bug with #[ink(topic)] annotated event fields * [lang/macro] apply rustfmt * [lang/macro] apply clippy suggestion * [lang/macro] add first bunch of failure event TryFrom unit tests * [lang/macro] normalize the current failure event unit tests * [lang/macro] add more event unit tests for topics on fields * [lang/macro] add Debug, PartialEq and Eq derives for some ir2 types * [lang/macro] add unit tests for ir2::Item * [lang/macro] add ir2::ImplBlock::is_ink_impl_block * [lang/macro] add doc comment note * [lang/macro] rename ImplBlockItem::Rust -> Other * [lang/macro] apply rustfmt * [lang/macro] add stub TryFrom impls for Constructor and Message * [lang/macro] add TryFrom impl for ir2::ImplBlockItem * [lang/macro] add initial skeleton for TryFrom impl for ir::ImplBlock * [lang/macro] implement ir2::sanitize_attributes * [lang/macro] split impl_block.rs into multiple files as sub modules * [lang/macro] apply rustfmt + remove unused imports * [lang/macro] split item module into multiple modules * [lang/macro] finalize move into multiple files from commit before * [lang/macro] add lots of error checks to TryFrom for Message * [lang/macro] improve TryFrom tests for ir2::ImplBlock * [lang/macro] make Event and Storage use ir2::sanitize_attributes * [lang/macro] add additional constructors for Iter{Constructors, Messages} * [lang/macro] add visibility check to Message TryFrom impl * [lang/macro] add Message::Visibility and getter * [lang/macro] implement Message::receiver getter * [lang/macro] extend ImplBlock doc comment note section * [lang/macro] add Message::Visibility getters * [lang/macro] refactor Receiver getters * [lang/macro] fix doc comment * [lang/macro] add unit test for Message::visibility getter * [lang/macro] add unit test for Message::receiver getter * [lang/macro] move Visibility from message.rs to impl_item.rs * [lang/macro] add Constructor::visibility getter * [lang/macro] implement callable.rs * [lang/macro] make use of new shared callable.rs utilities * [lang/macro] remove visibility from impl_item.rs * [lang/macro] fix some imports * [lang/macro] implement constructor check for missing return type * [lang/macro] implement constructor check for invalid self receiver * [lang/macro] add some ink! constructor try_from unit tests * [lang/macro] add ink! constructor visibility getter unit test * [lang/macro] fix unit test for ink! message visibility * [lang/macro] add many unit tests for ink! constructor TryFrom impl * [lang/macro] extend success TryFrom impl unit tests * [lang/macro] factor out sanitize_attributes for TryFrom impls * [lang/macro] remove salt from messages and constructors * [lang/macro] add salt extraction for ink! impl block * [lang/macro] add unit test for ink! impl block salt * [lang/macro] implement InkAttribute::{salt, selector} getters * [lang/macro] make use of InkAttribute::salt in TryFrom for ir2::ImplBlock * [lang/macro] apply rustfmt * [lang/macro] implement InkAttribute::is_payable * [lang/macro] make use of InkAttribute::{is_payable, selector} * [lang/macro] add module doc to callable.rs * [lang/macro] rename ImplBlock -> ItemImpl * [lang/macro] rename impl_block module to item_impl * [lang/macro] rename ImplBlockItem -> ImplItem * [lang/macro] add {Message, Constructor}::is_payable * [lang/macro] add doc note to ir2::ImplItem * [lang/macro] add implementation for InputsIter * [lang/macro] make use of InputsIter in ink! message and constructor * [lang/macro] add getter for the return type of an ink! message * [lang/macro] add unit test for ink! message is_payable * [lang/macro] add unit test for Constructor::is_payable * [lang/macro] rewrite receiver_works unit test for ink! message * [lang/macro] add unit test for ink! message inputs * [lang/macro] add unit test for ink! message output getter * [lang/macro] add identifier getter to ink! message and constructor * [lang/macro] apply rustfmt * [lang/macro] apply rustfmt * [lang/macro] implement clippy suggestions * [lang/macro] add unit test for Constructor::inputs * [lang/macro] refactor Storage::is_ink_storage * [lang/macro] add Event::is_ink_event * [lang/macro] add InkItem::is_ink_item * [lang/macro] apply rustfmt * [lang/macro] fix many non-dead-code warnings and allow dead-code for ir2 * [lang/macro] implement Contract::config getter * [lang/macro] allow compile failure of some in-doc tests * [lang/macro] implement TryFrom for ir2::Module * [lang/macro] re-export ImplItem from ir2 * [lang/macro] implement visibility check for ink! impl blocks * [lang/macro] fix unit test * [lang/macro] improve error message for visibility check * [lang/macro] add unit test for visibility failure * [lang/macro] apply rustfmt * [lang/macro] introduce Callable trait to unify ink! messages and constructors * [lang/macro] craft initial skeleton of compose_selector function * [lang/macro] implement ItemImpl::{self_type, trait_path, salt} * [lang/macro] extend compose_selector docs with a usage recommendation section * [lang/macro] implement initial version of compose_selector * [lang/macro] apply clippy suggestion * [lang/macro] fix some bugs in compose_selector implementation * [lang/macro] add unit tests for compose_selector * [lang/macro] rename ir2::Module -> ir2::ItemMod (syn) * [lang/macro] rename module.rs -> item_mod.rs * [lang/macro] remove some imports, use names directly * [lang/macro] rename Event::ast -> item * [lang/macro] refactor event fields iterator * rebase resolve conflict * [lang/macro] move ir2 and ast modules to new crate * [lang/ir] some general renamings after crate move * [lang/macro] no longer refer to ast and ir2 modules * [lang/macro] get rid of all bail! and bail_span! macro calls They hide significant control flow which is bad for readability. * [lang/ir] export error macros * [lang/ir] remove unused import * [lang/macro] make use of new ink_lang_ir crate * [lang/ir] improve documentation and module structure * [lang/ir] apply clippy suggestions + formatting * [lang/macro] apply clippy suggestions * [lang/ir] further improvements to the documentation * [lang/ir] fix error macro docs * [lang/ir] add missing re-export for ir::Contract * [lang/ir] improve ir::Contract docs * [lang/ir] minor refactor of ir::Contract * [lang/ir] extend docs for ir::Contract * [lang/ir] make ast::AttributeArgs::args field private * [lang/ir] apply rustfmt * [lang/ir] improve docs * [lang/ir] further documentation improvements * [lang/ir] add missing exports * [lang/ir] adjust format_err to require its expr to be T:Spanned Formerly this was T:ToTokens which is more restrictive than it should have been. * [lang/ir] refactor format_err_span and format_err macros + docs * [lang/ir] rename format_err macro -> format_err_spanned * [lang/ir] rename format_err_span macro -> format_err * [lang/ir] apply rustfmt * [lang/ir] minor improvements to format_err{_spanned} * [lang/ir] implement ToTokens for all ink! IR structures This is useful because T:ToTokens automatically implements syn::spanned::Spanned while being simpler to implement than syn::spanned::Spanned. * [lang/ir] add links to tracking issue for format_err{_spanned} * [lang/ir] minor docs improvements * [lang/ir] do not re-export everything that belongs to attributes * [lang/ir] fix compilation in test mode * [lang/ir] add ir::ItemMod checks for ink! storage, message and constructor quantities * [lang/ir] make ast module private and move ir module to root * [lang/ir] rename IterItemImpls -> IterItemImpls * [lang/ir] remove ir::EnvTypes from public API * [lang/ir] rename ir::ItemMod::impl_blocks -> item_impls * [lang/ir] rename ir::Module::item_impls -> impls * [lang/ir] make ir::Config::env_types return syn::Path * [lang/ir] move mod doc to lib doc * [lang/ir] fix event doc test * [lang/ir] make Event::is_ink_event module private * [lang/ir] apply rustfmt * [lang/ir] fix Storage doc test * [lang/ir] remove unnecessary rust annotation for doc test * [lang/ir] fix doc tests for constructor and message * [lang/ir] fix fmt todo! avoidance * [lang/ir] remove unneded let binding * [lang/ir] fix doc tests of impl_item/mod.rs * [lang/ir] make ItemImpl::is_ink_impl_block module private * [lang/ir] re-export InputsIter * [lang/ir] add getter for ir::ItemImpl::items * [lang/ir] rename salt -> namespace * add doc link in MetaNameValue doc Co-authored-by:
Michael Müller <mich@elmueller.net> * [lang/ir] rename Callable::selector -> user_provided_selector This is going to avoid confusion with composed selector concept. * [lang/ir] make Storage::is_ink_storage module private * [lang/ir] fix doc link * [lang/ir] expose composed selector through messages and constructors iter * [lang/ir] apply rustfmt * [lang/ir] fix item_mod.rs doc tests * [lang/ir] ignore contract doc test for now It is hard to test because of the unknown ink::contract attribute at the top. * [lang/ir] add item getter to CallableWithSelector * [lang/ir] add Callable::statements getter * [lang/ir] add ir::ItemMod::ensure_no_overlapping_selectors + tests * [lang/ir] remove duplicate code * fix typo Co-authored-by:
Andrew Jones <ascjones@gmail.com> * fix typo Co-authored-by:
Andrew Jones <ascjones@gmail.com> * fix typo Co-authored-by:
Andrew Jones <ascjones@gmail.com> * [lang/ir] move config.rs -> attr_args.rs * [lang/ir] update doc comments * [lang/ir] some more doc polishing * [lang/ir] fix outdated doc comment * [lang/ir] remove outdated doc comment * fix typo Co-authored-by:
Andrew Jones <ascjones@gmail.com> * fix typo Co-authored-by:
Andrew Jones <ascjones@gmail.com> * [lang/ir] remove unneeded let binding in doc test * [lang/ir] fix conflicting constructor attribute closure Co-authored-by:
Andrew Jones <ascjones@gmail.com> * [lang/ir] fix doc comment * [lang/ir] remove outdated doc comment * fix doc comment Co-authored-by:
Andrew Jones <ascjones@gmail.com> * [lang/ir] rename 'outer label to 'repeat * [ci] add lang/ir to ALL_CRATES * [lang/ir] update blake2 dependency from 0.8 -> 0.9 * [lang/macro] remove unneeded blake2 dependency * [lang/ir] take last segment of trait path * [lang/ir] slightly improve overlapping selector error message * [lang/ir] improve overlapping selector formatting * [lang/ir] add unit test for composed selector with relative trait path * [lang/ir] improve unit test for relative trait path composed selector * [lang/ir] fix bug that namespace was a valid attribute on ink! messages * [lang/ir] add unit test to check against conflicting attributes on ink! messages * [lang/ir] fix bug that namespace was an allowed attribute for ink! constructors * [lang/ir] add unit test to check against conflicting ink! constructor attributes * [lang/ir] add success tests for ir::ItemMod TryFrom * [lang/ir] fix out-of-line ink! module error message * [lang/ir] add a bunch of ink! module TryFrom failure unit tests * [lang/ir] add unit test for ink! event fields iterator * [lang/ir] apply rustfmt Co-authored-by:
Michael Müller <mich@elmueller.net> Co-authored-by:
Andrew Jones <ascjones@gmail.com>
-
- 25 Mar, 2020 1 commit
-
-
Hero Bird authored
* [core] fix unused warning * [*] bump version 2.0.0 -> 2.1.0
-
- 18 Mar, 2020 1 commit
-
-
Hero Bird authored
* [*] initial swipe over codebase to tag 2.0.0 release * [*] fix a number of issues with the previous version setup
-
- 12 Mar, 2020 1 commit
-
-
Andrew Jones authored
* Revert precise version upgrades from #343 This reverts commit 9e5a3ee0 * Use latest trybuild with fix * CI troubleshoot: completely remove trybuild * Revert "CI troubleshoot: completely remove trybuild" This reverts commit 593b7183 * Restore trybuild deps * CI troubleshoot: remove GIT_DEPTH * CI troubleshoot: remove CARGO_HOME * CI troubleshoot: revert deleting of CARGO_HOME * CI troubleshoot: restore GIT_DEPTH and delete CARGO_HOME again * CI troubleshoot: revert deleting of CARGO_HOME
-
- 10 Mar, 2020 1 commit
-
-
Denis_P authored
* test documentation for all crates * cargo upgrade to bypass trybuild
-
- 20 Nov, 2019 2 commits
-
-
Hero Bird authored
* Update some deps Signed-off-by:
koushiro <koushiro.cqx@gmail.com> * Format Signed-off-by:
koushiro <koushiro.cqx@gmail.com> * Fix clippy-wasm Signed-off-by:
koushiro <koushiro.cqx@gmail.com> * [examples] fix minor formatting issues * [examples] fix some clippy warnings * [lang2/macro] silence warning for ink! constructors named "new" * [*] replace documentation link in Cargo.toml to ink! tutorial * [abi] specify allow(clippy::trivially_copy_pass_by_ref) in a smaller scope * [abi] specify allow(clippy::new_ret_no_self) in smaller scope * [ci] adjust gitlab-ci.yml * [ci] update Travis CI to just do coverage reporting
-
Hero Bird authored
-
- 24 Jul, 2019 1 commit
-
-
Hero Bird authored
* make std crate feature default for all ink crates * adjust travis CI for builds without std feature enabled * remove incorrect usages of ink_abi * apply rustfmt * remove invalid type-metadata dependencies for ink_core * [lang] fix Cargo.toml indentations * adjust Erc20 token examples for new std crate feature * adjust template and lang example std feature and propagation
-
- 24 May, 2019 1 commit
-
-
Hero Bird authored
* [core] Factor nightly alloc parts out of core into new alloc ink crate * Further cleanup after factoring out ink_alloc crate * [alloc] Use symlinks instead of copies
-
- 23 May, 2019 1 commit
-
-
Hero Bird authored
* [ink] Update rust-toolchain from 2019-04-20 to 2019-05-21 * [core,lang] Update & fix Cargo information * [chores] Update rustfmt version to the current toolchain * [core] Clean up, fix some warnings * [core] Remove unneeded dependency * [core] Ignore return value of Key ops Fixes a warning * [core,model] Adjust warning level * [lang] Minor rustfmt run * [ink] Add topics to events For now, ink! will simply leave topics slice empty. * [core] Add ext_gas_left, ext_gas_price and ext_value_transferred bindings * [core] Clean up some code by dedup * [core] Further code clean up * [core] Simplify SrmlEnv::load impl
-
- 22 Apr, 2019 1 commit
-
-
Robin Freyler authored
-
- 28 Mar, 2019 1 commit
-
-
Robin Freyler authored
-
- 27 Mar, 2019 1 commit
-
-
Robin Freyler authored
-
- 15 Mar, 2019 1 commit
-
-
Robin Freyler authored
-
- 19 Feb, 2019 1 commit
-
-
Hero Bird authored
-
- 06 Feb, 2019 1 commit
-
-
Hero Bird authored
Note: No other changes and renamings have been done yet so the crate is currently not in a compilable state.
-
- 18 Jan, 2019 1 commit
-
-
Hero Bird authored
-
- 15 Jan, 2019 2 commits
- 10 Jan, 2019 1 commit
-
-
Hero Bird authored
Now it has the required features in a branch.
-
- 09 Jan, 2019 5 commits
-
-
Hero Bird authored
This is required because of some special impls for pDSL that while not being mandatory, they are still important enough to serve usability.
-
Hero Bird authored
-
Hero Bird authored
-
Hero Bird authored
-
Hero Bird authored
The problem is that env_logger is obviously not no_std compatible. At first you would think that this is not a problem, since it is only a dev-dependency that is allowed to pull the std lib. However, due to a Cargo "bug" all dev-dependencies and normal dependencies need to have shared feature flags. So since env_logger depends on log and pdsl_core depends on log both need to share their feature set which is chosen to be just the one that pulls std - what a mess ... We now need our own logging facilities that are no_std compatible.
-
- 08 Jan, 2019 3 commits
- 04 Jan, 2019 1 commit
-
-
Hero Bird authored
This will help writing tests with general setup and tear-down mechanics. Used to initialize env_logger for every unit test.
-
- 17 Dec, 2018 2 commits