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