1. 29 Sep, 2021 1 commit
  2. 28 Sep, 2021 1 commit
  3. 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
  4. 23 Sep, 2021 2 commits
  5. 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
  6. 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
  7. 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
  8. 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
  9. 14 Sep, 2021 1 commit
  10. 13 Sep, 2021 2 commits
  11. 10 Sep, 2021 3 commits
  12. 09 Sep, 2021 1 commit
  13. 07 Sep, 2021 1 commit
  14. 06 Sep, 2021 1 commit
  15. 03 Sep, 2021 1 commit
  16. 02 Sep, 2021 1 commit
  17. 30 Aug, 2021 1 commit
  18. 25 Aug, 2021 2 commits
  19. 19 Aug, 2021 1 commit
    • Sergejs Kostjucenko's avatar
      Change CI variables source to Vault (#890) · 45800385
      Sergejs Kostjucenko authored
      * Change pipeline to use vault secrets
      
      Add more vault CI variables
      
      Add more vault CI variables
      
      Add comment line
      
      Pass Vault url var to downstream job
      
      Pass Vault path and role vars to downstream job
      
      Comment out vault-secrets from ink-waterfall
      
      Test vault-secrets on another job
      
      Revert last change
      
      Hardcoded Vault variables
      
      Remove hardcoded vars
      
      Try to get vault vars from another stage
      
      Populate secrets directly in the job
      
      Move Vault access variables to the top
      
      Add secrets to non related jobs for test
      
      Add secrets to non related jobs for test purpose
      
      From secrets from non related jobs
      
      Fix typo
      
      Move vault vars to anchor
      
      Move anchor call after job vars
      
      * Move vault access vars to the top
      45800385
  20. 16 Aug, 2021 1 commit
  21. 12 Aug, 2021 1 commit
  22. 11 Aug, 2021 1 commit
  23. 05 Aug, 2021 2 commits
    • Michael Müller's avatar
      Import quickcheck macro only for bump allocator (#887) · 3c8b1030
      Michael Müller authored
      * Import quickcheck macro only for bump allocator
      
      The fuzz tests exist only in the bump allocator.
      
      * Apply `cargo fmt`
      3c8b1030
    • Michael Müller's avatar
      Run clippy with `--all-targets` (#884) · 4b909706
      Michael Müller authored
      * Add clippy flag `--all-targets`
      
      * Fix `redundant_closure`
      
      * Fix `redundant_clone`
      
      * Fix `clone_on_copy`
      
      * Fix `needless_borrow`
      
      * Fix `bool_assert_comparison`
      
      * Fix `len_zero`
      
      * Fix `stable_sort_primitive`
      
      * Forward feature
      
      * Allow `type_complexity`
      
      * Fix `unnecessary_mut_passed`
      
      * Fix `manual_map`
      
      * Fix `match_like_matches_macro`
      
      * Remove duplicate test
      
      * Fix `new_without_default`
      
      * Fix `match_ref_pats`
      
      * Allow clippy rules for  tests
      
      * Fix `unit_arg`
      
      * Apply `cargo fmt`
      
      * Add explanatory comments
      
      * Remove `--all-targets` for Wasm tests
      
      * Fix `or_fun_call`
      
      * Fix `bool_comparison`
      
      * Fix `needless_collect`
      
      * Revert "Forward feature"
      
      This reverts commit 472c50ed.
      
      * Fix `bool_assert_comparison`
      
      * Deactivate test because of feature issue with dev-dependencies
      
      * Add flag
      
      * Fix `unique_topics` tests
      
      * Allow `clippy:bool_assert_comparison`
      
      * Revert "Fix `bool_assert_comparison`"
      
      This reverts commit bceb2dc2.
      
      * Revert "Fix `bool_comparison`"
      
      This reverts commit 02960f98.
      
      * Fix flags positioning
      
      * Add comment for clarification
      
      * Fix comparison
      
      * Do not check all targets for target = wasm32
      
      * Adapt `check-workspace.sh` with clippy flag
      
      * Add clarification comment
      
      * Ignore test
      
      * Revert `CLIPPY_FLAGS` hack
      
      * Link ink! issue
      
      * Fix `assert`'s
      
      * Fix `assert`'s
      4b909706
  24. 02 Aug, 2021 1 commit