Skip to content

Latest commit

 

History

History
268 lines (188 loc) · 14.1 KB

CHANGELOG.md

File metadata and controls

268 lines (188 loc) · 14.1 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

[1.4.0] - 2022-05-18

Changed

  • Updated cargo contract new template dependencies to ink! version = "3" - #569
  • Improved documentation on how to invoke cargo contract decode - #572

Fixed

  • Make constructor selector look for exact function name - #562 (thanks @forgetso!)
  • Fix dirty directory issue when crate installation had been interrupted - #571

[1.3.0] - 2022-05-09

Added

  • Allow hex literals for unsigned integers - #547

Fixed

  • Display H256 instances in events as hex encoded string - #550
  • Fix extrinsic params for contract chains - #523
  • Fix Vec<AccountId> args - #519
  • Fix --dry-run error deserialization and report error details - #534

[1.2.0] - 2022-04-13

Added

  • decode command for event, message and constructor data decoding - #481

Fixed

  • Fix usage of check-only and remove need for FromStr impl - #499

[1.1.1] - 2022-04-05

Fixed

  • Fix linting support for Apple Silicon (and some other architectures) - #489
  • Allow multiple args values for call and instantiate commands - #480
  • Fix event decoding - c721b1

[1.1.0] - 2022-03-18

Added

  • --skip-linting flag that allows to skip the linting step during build process - #468

[1.0.1] - 2022-03-18

  • Improved error reporting during installation - #469

[1.0.0] - 2022-03-17

Changed

  • Updated cargo contract new template dependencies to ink! 3.0 - #466

[0.18.0] - 2022-03-14

Interact with contracts: upload, instantiate and call commands

We added commands to upload, instantiate and call contracts! This allows interacting with contracts on live chains with a compatible pallet-contracts.

For command-line examples on how to use these commands see #79.

Linting rules for smart contracts

We are introducing a linter for ink! smart contracts in this release! From now on cargo-contract checks if the ink! smart contract that is build or check-ed follows certain rules.

As a starting point we've only added one linting rule so far; it asserts correct initialization of the ink_storage::Mapping data structure.

In order for the linting to work with your smart contract, the contract has to be written in at least ink! 3.0.0-rc9. If it's older the linting will just always succeed.

Added

  • Interact with contracts: upload, instantiate and call commands - #79
  • Add linting to assert correct initialization of ink_storage::Mapping - #431

Changed

  • Upgrade subxt, SCALE crates, and substrate primitive sp-* crates #451.
  • Updated cargo contract new template dependencies to ink! 3.0.0-rc9 - #443

[0.17.0] - 2022-01-19

Changed

  • Updated cargo contract new template dependencies to ink! 3.0.0-rc8 - #402
  • Reverted the disabled overflow checks in the cargo contract new template - #376
  • Migrated to 2021 edition, enforcing MSRV of 1.56.1 - #360

Added

  • For contract size optimization added workspace section to override parent workspace - #378

[0.16.0] - 2021-11-25

Changed

  • Updated cargo contract new template dependencies to ink! 3.0.0-rc7 - #374
  • Disabled overflow checks in the cargo contract new template - #372
  • Use -Clinker-plugin-lto if lto is enabled (reduces the size of a contract) - #358
  • Deserialize metadata - #368

Added

  • Added a --offline flag to build contracts without network access - #356

[0.15.0] - 2021-10-18

Changed

  • Update to scale-info 1.0 and support new metadata versioning - #342
  • Update cargo contract new template dependencies to ink! rc6 - #342

[0.14.0] - 2021-08-12

Added

  • Add option for JSON formatted output - #324

Changed

  • Use new dependency resolver for template contract - #325
  • Do not strip out panic messages in debug builds - #326

[0.13.1] - 2021-08-03

Fixed

  • Fixed a Windows issue with contract files in sub-folders - #313

[0.13.0] - 2021-07-22

Added

  • Convenient off-chain testing through cargo contract test - #283
  • Build contracts in debug mode by default, add --release flag - #298
  • Add --keep-symbols flag for better Wasm analysis capabilities - #302

Changed

  • Change default optimizations pass to focus on code size - #305

[0.12.1] - 2021-05-25

Added

  • Suggest binaryen installation from GitHub release on outdated version - #274

Fixed

  • Always use library targets name for contract artifacts - #277

[0.12.0] - 2021-04-21

Fixed

  • Fixed ERROR: The workspace root package should be a workspace member when building a contract under Windows - #261

Removed

  • Remove support for --binaryen-as-dependency - #251
  • Remove support for the deprecated cargo contract generate-metadata command - #265
  • Remove pinned funty dependency from "new project" template - #260

[0.11.1] - 2021-04-06

Fixed

  • Fix wasm-opt --version parsing - #248

[0.11.0] - 2021-03-31

Added

  • Improve error output for wasm-opt interaction - #244
  • Check optimized Wasm output file exists - #243
  • Detect wasm-opt version compatibility and improve error messages - #242
  • Detect version mismatches of parity-scale-codec in contract and ink! dependency - #237
  • Support specifying optimization-passes in the release profile - #231
  • Support specifying optimization-passes on the CLI - #216
  • Use ink::test attribute in "new project" template - #190

Fixed

  • Only allow new contract names beginning with an alphabetic character - #219
  • Upgrade cargo-metadata and fix usages - #210

[0.10.0] - 2021-03-02

Fixed

  • no periods in new contract names - #192

Changed

  • Update cargo contract new template dependencies for ink! rc3 - #204

[0.9.1] - 2021-02-24

Fixed

  • Fix linker error when building complex contracts - #199

[0.9.0] - 2021-02-22

Added

  • Implement Wasm validation for known issues/markers - #171

Changed

  • Use either binaryen-rs dep or wasm-opt binary - #168
  • Update to scale-info 0.5 and codec 2.0 - #164
  • Put build artifacts under target/ink/ - #122

Fixed

  • Fix wasm-opt regression - #187
  • Generate metadata explicitly for the contract which is build - #174
  • Fix bug with empty Wasm file when using system binaryen for optimization - #179
  • Suppress output on --quiet - #165
  • Do not generate build artifacts under target for check - #124
  • update wasm-path usage name - #135

[0.8.0] - 2020-11-27

  • Exit with 1 on Err #109
  • Use package name instead of lib name for metadata dependency #107
  • Do not prettify JSON for bundle #105
  • Make source.hash non-optional, remove metadata-only #104
  • Implement new commands build and check + introduce bundles (.contract files) #97
  • Replace xbuild with cargo build-std #99
  • Use binaryen-rs as dep instead of requiring manual wasm-opt installation #95
  • Specify optional --manifest-path for build and generate-metadata #93

[0.7.1] - 2020-10-26

  • Update new command template to ink! 3.0-rc2 #85

[0.7.0] - 2020-10-13

  • Fix deprecation warnings #82
  • Use ink 3.0.0-rc1 #82
  • [template] now uses ink_env and ink_storage #81
  • Update new command template to ink! 3.0 syntax #80
  • Extract contract metadata to its own crate #69
  • Fix ManifestPath compiler errors #73
  • Upgrade cargo-xbuild and other dependencies #71
  • Update subxt and async-std dependencies #66
  • Generate extended contract metadata #62
  • Autogenerate abi/metadata package #58
  • Extract workspace to module directory #59
  • Add preferred default release profile settings #55
  • Add option to build with unmodified original manifest #51
  • Update cargo-xbuild #54

[0.6.1] - 2020-05-12

  • Fix LTO regressions in nightly toolchain #52

[0.6.0] - 2020-03-25

  • First release to crates.io
  • Use subxt release from crates.io

[0.5.0] - 2020-03-18

  • Upgrades dependencies #45
  • Update template to ink! 2.0 dependencies #47

[0.4.1] - 2020-02-26

  • Fix: fail the whole build process if the contract build fails.

[0.4.0] - 2020-02-26

  • Minimize contract wasm binary size:
    • Run wasm-opt on the contract Wasm binary.
    • Uses cargo-xbuild to build custom sysroot crates without panic string bloat.
    • Automatically removes the rlib crate type from Cargo.toml, removing redundant metadata.
  • Removes requirement for linker args specified in .cargo/config.
  • Added --verbose and --quiet flags for build and generate-metadata commands.