Releases: use-ink/cargo-contract
v4.0.0
This cargo-contract
release is compatible with Rust versions >=1.70
and ink! versions >=5.0.0
_ℹ️ We have created a migration guide from ink! 4 to ink! 5. It also contains an
overview over newly added features in this release of cargo-contract
and explains
e.g. the newly added contract verification in more detail.
You can view it here._
Notable changes:
- Verifiable builds inside a docker container - #1148
- Extrinsics extracted to separate crate - #1181
- Fix building contracts with Rust >= 1.70: enable
sign_ext
Wasm opcode - #1189 - Support for multiple versions of
pallet-contracts
- #1399
Added
- Export
ink_metadata
types intranscode
crate - #1522 - Improved error message for Strings as CLI arguments - #1492
- Add a user-friendly view of contract storage data in the form of a table - #1414
- Add
rpc
command - #1458 - Add schema generation and verification - #1404
- Compare
Environment
types against the node - #1377 - Detect
INK_STATIC_BUFFER_SIZE
env var - #1310 - Add
verify
command - #1306 - Add
--binary
flag forinfo
command - #1311 - Add
--all
flag forinfo
command - #1319 - Add contract language detection feature for
info
command - #1329 - Add warning message when using incompatible contract's ink! version - #1334
- Add workspace support -#1358
- Add
Storage Total Deposit
toinfo
command output - #1347 - Add dynamic types support - #1399
- Basic storage inspection command - #1395
- Standardised verifiable builds - #1148
- Enable Wasm sign_ext #1189
- Expose extrinsics operations as a library - #1181
- Suggest valid message or constructor name, when misspelled - #1162
- Add flag -y as a shortcut for --skip-confirm - #1127
- Add command line argument --max-memory-pages - #1128
- Show Gas consumption by default for dry-runs - #1121
Changed
- Print type comparison warning only on
--verbose
- #1483 - Mandatory dylint-based lints - #1412
- Add a new tabular layout for the contract storage data - #1485
- Run wasm-opt first, remove sign_ext feature - #1416
- Bump
subxt
to0.32.0
- #1352 - Remove check for compatible
scale
andscale-info
versions - #1370 - Dry-run result output improvements - 1123
- Display build progress with --output-json, print to stderr - 1211
- Upgrade wasm-opt to 0.113 - #1188
- Update substrate dependencies - #1149
- Make output format of cargo contract info consistent with other subcommands - #1120
- set minimum supported
rust-version
to1.70
- #1241
Fixed
- Fix parsing of docker STDOUT - #1526
- Remove docker container on build failure - #1531
- Fix build
--verifiable
command #1511 - Do not allow to execute calls on immutable contract messages - #1397
- Improve JSON Output for Upload and Remove Commands - #1389
- Fix for a Url to String conversion in
info
command - #1330 - Configure tty output correctly - #1209
- Set
lto = "thin"
for metadata build to fixlinkme
on macOS - #1200 - fix(build): An error when running with
--lint
- #1174 - Dry-run result output improvements - #1123
- feat: use
CARGO_ENCODED_RUSTFLAGS
instead ofRUSTFLAGS
- #1124
v4.0.0-rc.4
v4.0.0-rc.3
v4.0.0-rc.2
v4.0.0-rc.1
Changed
- Run wasm-opt first, remove sign_ext feature - #1416
v4.0.0-rc
Added
- Add schema generation and verification - #1404
- Compare
Environment
types against the node - #1377 - Detect
INK_STATIC_BUFFER_SIZE
env var - #1310 - Add
verify
command - #1306 - Add
--binary
flag forinfo
command - #1311 - Add
--all
flag forinfo
command - #1319 - Add contract language detection feature for
info
command - #1329 - Add warning message when using incompatible contract's ink! version - #1334
- Add workspace support -#1358
- Add
Storage Total Deposit
toinfo
command output - #1347 - Add dynamic types support - #1399
- Basic storage inspection command - #1395
Changed
- Bump
subxt
to0.32.0
- #1352 - Remove check for compatible
scale
andscale-info
versions - #1370 - Bump
ink
to5.0.0-rc
- #1415
Fixed
v3.2.0
[3.2.0]
This release allows building contracts with recent (> 1.69) Rust toolchains which can emit
signext
Wasm instructions. An extra pass is added to wasm-opt
which "lowers" signext
instructions to MVP compatible instructions. The resulting binaries can therefore be
deployed to chains with an older version of pallet-contracts
which does not yet support
those instructions.
Changed
v4.0.0-alpha
Replaces the yanked 3.1.0
due to issues with supporting both Rust versions < 1.70
and >= 1.70
.
If you intend to use cargo-contract
with Rust >= 1.70
, and deploy to a node with a
version of pallet-contracts
at least polkadot-1.0.0
, then this is the release to use.
If you still want to compile with 1.69
and target an older version of pallet-contracts
then use the previous 3.0.1
release.
Notable changes:
- Verifiable builds inside a docker container - #1148
- Extrinsics extracted to separate crate - #1181
- Fix building contracts with Rust >= 1.70: enable
sign_ext
Wasm opcode - #1189
Added
- Standardised verifiable builds - #1148
- Enable Wasm sign_ext #1189
- Expose extrinsics operations as a library - #1181
- Suggest valid message or constructor name, when misspelled - #1162
- Add flag -y as a shortcut for --skip-confirm - #1127
- Add command line argument --max-memory-pages - #1128
- Show Gas consumption by default for dry-runs - #1121
Changed
- Dry-run result output improvements - 1123
- Display build progress with --output-json, print to stderr - 1211
- Update
subxt
to0.30.1
with newsubxt-signer
crate - #1236 - Upgrade wasm-opt to 0.113 - #1188
- Update substrate dependencies - #1149
- Make output format of cargo contract info consistent with other subcommands - #1120
- set minimum supported
rust-version
to1.70
- #1241 [extrinsics]
update metadata tosubstrate-contracts-node 0.29
- #1242
Fixed
v3.0.1
v3.0.0
Added
- Experimental support for RISC-V contracts - #1076
Changed
- Contracts are build as
bin
crate now (we usedcdylib
before) - #1076- BREAKING CHANGE: Make sure that your contract is
no_main
by having this on top of your contract:#![cfg_attr(not(feature = "std"), no_std, no_main)]
- This will be detected and suggested for
error[E0601]
#1113
- BREAKING CHANGE: Make sure that your contract is
- Update contracts node metadata (#1105)
- Compatible with
substrate-contracts-node 0.25.0-a2b09462c7c
- Compatible with
Fixed
- Fix original Wasm artifact path #1116