Skip to content

Releases: FuelLabs/fuel-vm

v0.59.0

04 Dec 10:04
dd9ffb6
Compare
Choose a tag to compare

Version 0.59.0

Added

  • 871: Add expiration policy that prevent a transaction to be inserted after a given block height.
  • 870: Add 3 new ZK-related opcodes: eadd (ecAdd on EVM), emul (ecMul on EVM), epar (ecPairing on EVM)
  • 875: Updated wasm-bindgen to 0.2.97

Fixed

  • 860: Fixed missing fuzzing coverage report in CI.

Breaking

  • 863: Changed StorageRead::read to load a serialized value starting from a offset. The function returns an optional value equal to the number of bytes read when defined, or none if the offset specified in input is outside the boundaries of the serialized value read.
  • 868: Fixed error message when having a nonexistent contract in inputs. Instead of saying "contract was in inputs, but doesn't exist", the message was just "contract not in inputs". Now there's a separate error for that.
  • 837: Change diff function to get VM instance diff to a rollback_to that allow to fetch changes to make self -> previous state. However, this support the new memory management that allow memory to grow between instances instead of fixed memory size.

Changed

  • 847: Changed interpreter::blockchain::load_contract_code and interpreter::blockchain::code_copy to use the new version of StorageRead::read where the contract is loaded into a buffer starting from an offset. The contract is copied directly into the portion of memory starting at the destination address, rather than having to be copied indirectly after being fetched from storage.

What's Changed

New Contributors

Full Changelog: v0.58.2...v0.59.0

v0.58.2

07 Oct 18:32
0c6900c
Compare
Choose a tag to compare

Version v0.58.2

Fixed

  • #854: Fixed a bug where LDC mode 2 padding bytes would be copied from memory instead of using zeroes.

What's Changed

Full Changelog: v0.58.1...v0.58.2

v0.58.1

06 Oct 23:10
07f559b
Compare
Choose a tag to compare

Version v0.58.1

Fixed

  • #852: Fixed incorrect predicate estimation when max predicate gas is less than max tx gas.

What's Changed

  • Fixed incorrect predicate estimation when max predicate gas is less than max tx gas by @xgreenx in #852
  • Release v0.58.1 by @xgreenx in #853

Full Changelog: v0.58.0...v0.58.1

v0.58.0

05 Oct 21:00
4310f2e
Compare
Choose a tag to compare

Version v0.58.0

Added

  • #849: Add a new mode 2 to the LDC that allows to use the memory as a source for code.
  • #848: Allow usage of the blob opcode BSIZ, BLDD, and LDC with mode 1 in the predicates.
  • #838: Implemented AsRef<[u8]> and TryFrom<&[u8]> for DA compression types: ScriptCode, PredicateCode, RegistryKey.
  • #820: Add fuzzing in CI with ClusterFuzzLite.

Removed

Breaking

  • #848: All estimation and verification of predicate functionality is reworked and now requires the instance of the storage with predicates.
  • #843: Remove serde feature from the fuel-tx crate. It is default behaviour now if you enable alloc feature.
  • #766: Use correct gas price when validating native signatures

Changed

Breaking

  • #829: Updated add_random_fee_input() to accept an rng for true randomization. Introduced add_fee_input() to retain the previous behavior of add_random_fee_input().
  • #845: Removed Default implementation of SecretKey.
  • #844: WDCM and WQCM reset $of and $err.

What's Changed

  • Add fn add_fee_input() and make fn add_random_fee_input() truly random by @rafal-ch in #829
  • Add Display and Error impls to custom error type SettingBlockTransactionSizeLimitNotSupported by @rafal-ch in #833
  • Fixing WASM-NPM packaging and publishing by @arboleya in #835
  • Implemented AsRef<[u8]> and TryFrom<&[u8]> for DA compression types by @xgreenx in #838
  • Update changelog to cover breaking changes around add_random_fee_input() by @rafal-ch in #836
  • Remove serde feature from the fuel-tx crate by @xgreenx in #843
  • Cherry pick Release v0.57.1 (#840) by @xgreenx in #841
  • fix(SecretKey): remove Default implementation by @rymnc in #845
  • WDCM and WQCM: reset $of and $err by @acerone85 in #844
  • Add ClusterFuzzLite in CI featuring PR fuzzing, batch fuzzing and fuzz coverage reports by @netrome in #820
  • Correct the price to verify native signatures by @Voxelot in #766
  • LDC support in predicates by @Voxelot in #848
  • Add a new mode 2 to the LDC that allows to use the memory as a source for code by @xgreenx in #849
  • Release v0.58.0 by @xgreenx in #850
  • Update CODEOWNERS by @Voxelot in #851

New Contributors

Full Changelog: v0.57.0...v0.58.0

v0.57.1

26 Sep 18:19
ee72b8d
Compare
Choose a tag to compare

Version v0.57.1

Fixed

  • #835: Fixing WASM-NPM packaging and publishing

What's Changed

Full Changelog: v0.57.0...v0.57.1

v0.57.0

17 Sep 08:55
4718845
Compare
Choose a tag to compare

Version v0.57.0

Added

  • #670: Add DA compression functionality to Transaction and any types within
  • #733: Add LibAFL based fuzzer and update secp256k1 version to 0.29.1.
  • #825: Avoid leaking partially allocated memory when array deserialization fails

Changed

  • #824: Use self instead of &self during decompression.
  • #823: Returned the old behaviour of the json serialization for policies.

Breaking

  • #826: Skip the panic reason from canonical serialization of the panic receipt.
  • #821: Added block_transaction_size_limit to ConsensusParameters. It adds a new ConensusParametersV2 as a variant of the ConsensusParameters.
  • #670: The predicate field of fuel_tx::input::Coin is now a wrapper struct PredicateCode.

Fixed

  • #822: Return recipient as an owner for the message inputs.

What's Changed

New Contributors

Full Changelog: v0.56.0...v0.57.0

v0.56.0

27 Jul 02:57
7366db6
Compare
Choose a tag to compare

Version 0.56.0

Added

  • #796: Added implementation of the MerkleRootStorage for references.

Breaking

  • #780: Added Blob transaction, and BSIZ and BLDD instructions. Also allows LDC to load blobs.
  • #795: Fixed ed19 instruction to take variable length message instead of a fixed-length one. Changed the gas cost to be DependentCost.

v0.55.0

04 Jul 20:38
2604237
Compare
Choose a tag to compare

Version v0.55.0

Added

  • #781: Added base_asset_id to checked metadata.

Changed

  • #784: Avoid storage lookups for side nodes in the SMT.
  • #787: Fixed charge functions to profile cost before charging.

Breaking

  • #783: Remove unnecessary look up for old values by adding new methods to the StorageMutate trait. The old insert and remove are now replace and take. The new insert and remove don't return a value.
  • #783: Renamed methods of StorageWrite trait from write, replace, take to write_bytes, replace_bytes, take_bytes.
  • #788: Fix truncating sp to MEM_SIZE in grow_stack, and allow empty writes to zero-length ranges at $hp.

Fixed

Breaking

  • #789: Avoid conversion into usize type and use u32 or u64 instead. The change is breaking since could return other errors for 32-bit systems.
  • #786: Fixed the CCP opcode to charge for the length from the input arguments.
  • #785: Require ContractCreated output in the Create transaction. The TransactionBuilder<Create> has a add_contract_created method to simplify the creation of the ContractCreated output for tests.

What's Changed

  • Test ALU opcodes using only the external interface by @Dentosal in #754
  • Store the base asset id in the metadata by @xgreenx in #781
  • Use companies fork of the publish-crates action by @xgreenx in #782
  • Refactor coin-based contract instruction tests by @Dentosal in #779
  • Require ContractCreated output in the Create transaction by @xgreenx in #785
  • Fixed the CCP opcode to charge for the length of the input by @xgreenx in #786
  • Remove unnecessary look up for old values by @xgreenx in #783
  • Fixed charge functions to profile cost before charging by @xgreenx in #787
  • grow_stack and empty $hp range write fixes by @Dentosal in #788
  • Optimized storage lookups for side nodes in the SMT by @xgreenx in #784
  • Avoid conversion into usize type and use u32 or u64 instead by @xgreenx in #789
  • Release v0.55.0 by @xgreenx in #790

Full Changelog: v0.54.1...v0.55.0

v0.54.1

16 Jun 17:42
0e46d32
Compare
Choose a tag to compare

Version v0.54.1

Changed

  • #776: Charge for max length in LDC opcode.

What's Changed

Full Changelog: v0.54.0...v0.54.1

v0.54.0

15 Jun 21:08
9d7dd97
Compare
Choose a tag to compare

Version v0.54.0

Added

  • #770: Cache contract inputs in the VM.

Changed

  • #768: Charge for LDC opcode before loading the contract into memory.

  • #771: Take into account spent gas during synchronous predicates estimation.

Breaking

  • #769: Use DependentCost for CFE and CFEI opcodes.
  • #767: Fixed no zeroing malleable fields for Create transaction.
  • #765: Corrected the gas units for WDOP and WQOP.

Removed

  • #772: Removed redundant self.receipts.root() call.

What's Changed

  • use the correct gas units for wdop and wqop by @Voxelot in #765
  • Fixed no zeroing malleable fields for Create transaction by @xgreenx in #767
  • Removed redundant self.receipts.root() call by @xgreenx in #772
  • Charge for LDC opcode before loading the contract into memory by @xgreenx in #768
  • Use DependentCost for CFE and CFEI opcodes by @xgreenx in #769
  • Cache contract inputs in the VM by @xgreenx in #770
  • Take into account spent gas during synchronous predicates estimation by @xgreenx in #771
  • Removed dead code from the codebase by @xgreenx in #774
  • Release v0.54.0 by @xgreenx in #775

Full Changelog: v0.53.0...v0.54.0