1. 13 Jun, 2020 3 commits
    • Hero Bird's avatar
      Avoid heap memory allocations for cross-contract calls and instantiations (#439) · 870095c8
      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
      870095c8
    • Hero Bird's avatar
      Make ink! lang use ink_core::storage2 module (#422) · 1e312d1e
      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
      1e312d1e
    • Andrew Jones's avatar
      New metadata format (#296) · 5a7b7e5e
      Andrew Jones authored
      * Move spec tests to separate file
      
      * Add contract spec serialization test
      
      * Camel case field names
      
      * Encode selector as hex string
      
      * Move specs module back to top level
      
      * Move layout test to tests.rs
      
      * Layout externally tagged enums & camelCase
      
      * Format code
      
      * Rename TypeSpec::ty -> TypeSpec::id
      
      * TEMPORARY: Use my type-metadata branch
      
      * Derive TypeInfo for Key
      
      * Switch from type_metadata to scale_info
      
      * Convert layout to using scale-info
      
      * Fix scale-info optional dependencies
      
      * Fmt
      
      * Fix up straggling type-metadata dependency
      
      * scake-info master
      
      * Use scale-info from crates.io
      
      * oops
      
      * Fix compilation errors
      
      * Fmt
      
      * Fix examples manifests
      
      * Remove redundant into()
      5a7b7e5e
  2. 23 Apr, 2020 1 commit
  3. 11 Mar, 2020 1 commit
    • Alexander Theißen's avatar
      Add plain multisig wallet example (#327) · 5beaab44
      Alexander Theißen authored
      
      
      * Added a multisig example contract
      
      * Added crate documentation
      
      * Update examples/multisig_plain/lib.rs
      
      shortcut for iter over references
      
      Co-Authored-By: default avatarHero Bird <robin.freyler@gmail.com>
      
      * Update examples/multisig_plain/lib.rs
      
      rename ensure_from_owner
      
      Co-Authored-By: default avatarHero Bird <robin.freyler@gmail.com>
      
      * Update examples/multisig_plain/lib.rs
      
      renaming
      
      Co-Authored-By: default avatarHero Bird <robin.freyler@gmail.com>
      
      * Update examples/multisig_plain/lib.rs
      
      renaming
      
      Co-Authored-By: default avatarHero Bird <robin.freyler@gmail.com>
      
      * Update examples/multisig_plain/lib.rs
      
      renaming
      
      Co-Authored-By: default avatarHero Bird <robin.freyler@gmail.com>
      
      * renamings
      
      * Better name for internal_confirm
      
      * Renamed id -> trans_id
      
      * Better name for ensure_requirement
      
      * Renamed to confirm_by_caller
      
      * Reformat conform_by_caller
      
      * Remove unwraps in favor of expect
      
      * More documentation
      
      * Added license header
      
      * Fix style issue in documentation
      
      * Updated documentation
      
      * Add warning about not using this in production
      
      * Remove run_test for now as it's not working
      
      * Fix metadata generation
      
      * Use the EnvTypes type alias provided by the contract macro
      
      * fix typo
      
      * Emit Events
      
      * Fix doc typos
      
      * Do actual checking in contract_works test
      
      * Added more tests (currently failing)
      
      * Replace HashMap with BTreeMap
      
      * Add docs regarding privileged wallet messages
      
      * Added tests
      
      * Update examples/multisig_plain/lib.rs
      
      Co-Authored-By: default avatarHero Bird <robin.freyler@gmail.com>
      
      * Update examples/multisig_plain/lib.rs
      
      Co-Authored-By: default avatarHero Bird <robin.freyler@gmail.com>
      
      * Remove superflous .cargo/config
      
      * Add proper author information to manifest
      
      * Update examples/multisig_plain/lib.rs
      
      Co-Authored-By: default avatarHero Bird <robin.freyler@gmail.com>
      
      * Update examples/multisig_plain/lib.rs
      
      Co-Authored-By: default avatarHero Bird <robin.freyler@gmail.com>
      
      * Apply suggestions from code review
      
      Co-Authored-By: default avatarHero Bird <robin.freyler@gmail.com>
      
      * gas_limit is not measured in Balance
      
      * Update examples/multisig_plain/lib.rs
      
      Co-Authored-By: default avatarHero Bird <robin.freyler@gmail.com>
      
      * Switch owners, requirement argument position
      
      * Remove mutate_map and use entry api instead
      
      * Split execute into invoke and eval
      
      This allows for evaluating the result of a call if needed.
      
      * Remove superflous self argument of ensure_requirement_is_valid
      
      * Switch parameterize_call arguments
      
      * Return ConfirmationStatus after doing a confirmation
      
      * Remove superflous insert into confirmation_count
      
      * Rework public documentation
      
      * Missing empty line in docs
      
      Co-Authored-By: default avatarHero Bird <robin.freyler@gmail.com>
      
      * Unify exection Events
      
      * Rework add_owner example to have an actual chance of compiling
      
      * Remove redundant closure
      
      Co-authored-by: default avatarHero Bird <robin.freyler@gmail.com>
      5beaab44