This project is mirrored from https://github.com/paritytech/ink.git. Pull mirroring updated .
  1. 14 Oct, 2021 1 commit
  2. 11 Oct, 2021 1 commit
  3. 10 Oct, 2021 2 commits
  4. 09 Oct, 2021 1 commit
  5. 05 Oct, 2021 1 commit
  6. 04 Oct, 2021 1 commit
    • Robin Freyler's avatar
      Implement selector_id!, selector_bytes! and blake2x256! macros (#947) · bd4b51e3
      Robin Freyler authored
      * add selector_id! and selector_bytes! proc macros
      
      * implement blake2x256! macro
      
      * re-export blake2x256! macro from ink_lang crate
      
      * apply rustfmt
      
      * add BLAKE2b to hunspell dictionary
      
      * add UI tests for blake2x256! macro
      
      * improve span for non-literal inputs to blake2x256! macro
      
      * add non-literal input failure UI test to blake2x256! macro
      
      * improve error span for non-literal selector_{id,bytes}! macro inputs
      
      * rename UI test blake2x256 -> blake2x256_macro
      
      * rename UI test
      
      * add UI tests for selector_id! proc. macro
      
      * fix UI test
      
      * fix UI test expectation
      
      * add UI tests for seletor_bytes! macro
      
      * make flaky and broken codecov CI happy again ...
      bd4b51e3
  7. 29 Sep, 2021 1 commit
  8. 28 Sep, 2021 1 commit
  9. 27 Sep, 2021 1 commit
    • tash-2s's avatar
      [storage] Allow one variant enum to derive SpreadLayout (#942) · fd94d383
      tash-2s authored
      
      
      * [storage] Allow one variant enum to derive SpreadLayout
      
      I have an enum that has only one variant, and I want to store the enum value in the storage. I might add new variants later in development, so the enum is not useless.
      
      The current implementation doesn't allow to derive the `SpreadLayout` trait for one variant enums, and I fixed it on this PR.
      
      # Sample code
      
      ```rust
      #![cfg_attr(not(feature = "std"), no_std)]
      
      use ink_lang as ink;
      
      #[derive(
          Copy,
          Clone,
          scale::Encode,
          scale::Decode,
          ink_storage::traits::SpreadLayout,
          ink_storage::traits::PackedLayout,
      )]
      #[cfg_attr(
          feature = "std",
          derive(scale_info::TypeInfo, ink_storage::traits::StorageLayout)
      )]
      pub enum MyEnum {
          A,
      }
      
      #[ink::contract]
      mod enum_test {
          use super::MyEnum;
      
          #[ink(storage)]
          pub struct EnumTest {
              value: MyEnum,
          }
      
          impl EnumTest {
              #[ink(constructor)]
              pub fn new() -> Self {
                  Self { value: MyEnum::A }
              }
      
              #[ink(message)]
              pub fn get(&self) -> MyEnum {
                  self.value
              }
          }
      }
      ```
      
      Without this change, I get this error.
      
      ```
      $ cargo +nightly contract build
       [1/5] Building cargo project
          Updating crates.io index
         Compiling enum_test v0.1.0 (/private/var/folders/zn/l2f569z56vnghtt524x1mv6w0000gn/T/cargo-contract_FM50JF)
      error: proc-macro derive panicked
        --> /snip/enum_test/lib.rs:10:5
         |
      10 |     ink_storage::traits::SpreadLayout,
         |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         |
         = help: message: can only operate on enums
      ```
      
      * Update crates/storage/derive/src/spread_layout.rs
      Co-authored-by: Hero Bird's avatarRobin Freyler <robbepop@web.de>
      
      * cargo fmt
      Co-authored-by: Hero Bird's avatarRobin Freyler <robbepop@web.de>
      fd94d383
  10. 23 Sep, 2021 2 commits
  11. 22 Sep, 2021 2 commits
    • Robin Freyler's avatar
    • Michael Müller's avatar
      Fix code coverage (#917) · 511b9c68
      Michael Müller authored
      * Add `-Clink-dead-code`
      
      * Test trait cross-call only when not measuring code coverage
      
      Otherwise a linker error will happen due
      to `__ink_enforce_error` being included.
      
      * Fix `clippy::derivable_impls`
      
      * Fix `dead_code`
      
      The `struct` is only a public-facing API.
      
      * Fix yaml
      
      * Remove `allow(dead_code)`
      
      * Actually use `$POLL_SLEEP`
      
      * Produce `unreachable!` instead of linker error for `codecov` CI stage
      
      * Move `if` condition outside of `quote`
      
      * Improve macro hygiene
      
      * Reduce code duplication
      511b9c68
  12. 21 Sep, 2021 7 commits
    • Robin Freyler's avatar
      Misc cleanups in ink! codegen (#935) · b4e2781c
      Robin Freyler authored
      * remove some duplicated AsRef impl code in generators
      
      * improve #[ink::test] macro hygiene and error message upon failure
      
      * import standard ink! traits anonymously in codegen
      
      * modernize and improve macro hygiene of metadata codegen
      
      * modernize and simplify and improve macro hygiene of storage codegen
      
      * extend selector_works unit test
      
      * fix minor error in item impl error message
      b4e2781c
    • Robin Freyler's avatar
      Move ink_lang_macro UI tests into macro-specific folders (#934) · 87867ef8
      Robin Freyler authored
      * move ink_lang_macro UI tests into macro-specific folders
      
      * fix GitLab CI formatting pass
      
      * migrate back to a single trybuild test case
      
      This is because our CI currently fails if we have multiple test cases.
      87867ef8
    • Robin Freyler's avatar
      Add trait-incrementer example smart contract (#932) · 7577c678
      Robin Freyler authored
      * add trait-incrementer example smart contract
      
      * apply review comments
      7577c678
    • Robin Freyler's avatar
      Refactor and modernize dispatch codegen (#933) · 0270add0
      Robin Freyler authored
      * implement Display for ink_lang::Error
      
      * re-export HexLiteral trait from ink_lang_ir crate
      
      * use big-letters for hex-encoded message and constructor identifiers in codegen
      
      * improve panic messages in dispatch codegen for call and deploy fns
      
      * improve macro hygiene in dispatch codegen
      
      * add ir::Selector::into_be_u32 method
      
      * improve and modernize dispatch selector namespace codegen
      0270add0
    • Michael Müller's avatar
      Fix script which triggers downstream pipelines (#929) · b9eb9bec
      Michael Müller authored
      * Exit with 1 in case of timeout
      
      * Increase timeout to 1h, make configuration easier
      
      * Echo timeout
      b9eb9bec
    • Robin Freyler's avatar
      Check namespace argument is identifier (#931) · 41b0a1c0
      Robin Freyler authored
      * check that argument in #[ink(namespace = "argument")] is a Rust identifier
      
      * add UI tests for #[ink(namespace = "..")] ink! property
      
      # Conflicts:
      #	crates/lang/macro/tests/compile_tests.rs
      #	crates/lang/macro/tests/ui/fail/N-01-namespace-invalid-identifier.rs
      #	crates/lang/macro/tests/ui/fail/N-01-namespace-invalid-identifier.stderr
      #	crates/lang/macro/tests/ui/fail/N-02-namespace-invalid-type.rs
      #	crates/lang/macro/tests/ui/fail/N-02-namespace-invalid-type.stderr
      #	crates/lang/macro/tests/ui/fail/N-03-namespace-missing-argument.rs
      #	crates/lang/macro/tests/ui/fail/N-03-namespace-missing-argument.stderr
      
      * fix error message for non-identifier namespace argument
      41b0a1c0
    • Robin Freyler's avatar
      09ec050e
  13. 20 Sep, 2021 3 commits
    • Robin Freyler's avatar
      Expand selectors as hex-encoded literals in metadata (#927) · 725c2f70
      Robin Freyler authored
      * add HexLiteral utility trait to expand hex-encoded integer literals
      
      * add ir::Selector::hex_lits method
      
      * expand into hex-encoded integer literals for metadata selectors
      
      * simplify Selector::hex_lits method using array::map API
      
      * add unit test for Selector::hex_lits method
      725c2f70
    • Robin Freyler's avatar
      Improve SpreadLayout and StorageLayout derive macro hygiene (#926) · 9bab4838
      Robin Freyler authored
      * miscellaneous improvements to macro hygiene in derive macros
      
      * fix storage_derive UI tests
      9bab4838
    • Robin Freyler's avatar
      Make #[ink(selector = ..)] take a u32 parameter instead of a string (#928) · c9a97bbe
      Robin Freyler authored
      * make #[ink(selector = ..)] take an integer instead of a string
      
      Also warn about deprecation if a user still uses the old string parameter.
      
      * update tests for new selector int parameter
      
      * update contract examples for new selector int parameter
      
      * remove unused regex dependency from ink_lang_ir
      
      Also remove unnecessary regex dependency from ink_lang_codegen
      
      * update README for new selector int parameter
      
      Also update namespace parameter description.
      
      * update preliminary release notes
      
      * update spellcheck dict
      c9a97bbe
  14. 17 Sep, 2021 2 commits
    • Michael Müller's avatar
      Fix nightly clippy warnings (#925) · 4155ebe2
      Michael Müller authored
      * Derive `Default`
      
      * Fix `field is never read`
      4155ebe2
    • Michael Müller's avatar
      Fix nightly clippy errors (#921) · c2ea64b5
      Michael Müller authored
      * Fix `clippy::derivable_impls`
      
      * Fix `dead_code`
      
      The `struct` is only a public-facing API.
      
      * Get rid of `allow(dead_code)`
      
      * Revert "Get rid of `allow(dead_code)`"
      
      This reverts commit 6b9a95f9.
      
      * Revert "Fix `dead_code`"
      
      This reverts commit 42ab18be.
      
      * New approach to fix `dead_code`
      
      * Fix naming
      
      * Reflect that `return_type` never needs to be read
      
      * Fix typo
      c2ea64b5
  15. 14 Sep, 2021 1 commit
  16. 13 Sep, 2021 2 commits
  17. 10 Sep, 2021 3 commits
  18. 09 Sep, 2021 1 commit
  19. 07 Sep, 2021 1 commit
  20. 06 Sep, 2021 1 commit
  21. 03 Sep, 2021 1 commit
  22. 02 Sep, 2021 1 commit
  23. 30 Aug, 2021 1 commit
  24. 25 Aug, 2021 2 commits