Skip to content

Latest commit

 

History

History
167 lines (105 loc) · 5.25 KB

CHANGELOG.md

File metadata and controls

167 lines (105 loc) · 5.25 KB

Release Notes

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

Version 2.7.0

New

  • ABI v2.7 specification implemented:

Version 2.6.0

  • Use modern crates anyhow and thiserror instead of failure

Version 2.5.6

  • Fix build warnings
  • Remove extra crates base64, sha2

Version 2.5.0

  • the crate was renamed from ton_abi to ever_abi
  • supported renaming of other crates

Version 2.4.10

Fixed

  • Fixed decoding of a large-size elements array.

Version 2.4.0

New

  • ABI v2.4 specification implemented

  • Param in fields section extended with init: boolean

  • ref(T) – new type added

  • Default values for parameter types:

    • int<N>N zero bits.
    • uint<N>N zero bits.
    • varint<N>/varuint<N>x zero bits, where x = [log2(N)].
    • bool – equivalent to int<N>, where N = 1.
    • tuple(T1, T2, ..., Tn) – default values for each type, i.e. D(tuple(T1, T2, ..., Tn)) = tuple(D(T1), D(T2), ..., D(Tn)), where D is defined as a function that takes ABI type and returns the corresponding default value.
    • map(K,V) – 1 zero bit, i.e. b{0}.
    • cell – reference to an empty cell, i.e. ^EmptyCell.
    • addressaddr_none$00 constructor, i.e. 2 zero bits.
    • bytes – reference to an empty cell, i.e. ^EmptyCell.
    • string – reference to an empty cell, i.e. ^EmptyCell.
    • optional(T) – 1 zero bit, i.e. b{0}.
    • T[]x{00000000} b{0}, i.e. 33 zero bits.
    • T[k] – encoded as an array with k default values of type T
    • ref(T) – reference to a cell, cell is encoded as the default value of type T.

Breaking

  • data section in ABI JSON is removed.
  • fixedbytes type serialization changed. Now it is limited to 127 bytes and serialized into cell body instead of chained cells in current cell reference

Version 2.3.147

  • Use crypto functions from ever-types

Version 2.3.130

  • Revert tests

Version 2.3.124

  • Return tagged dependencies and tests

Version 2.3.83

  • Fixed max integer values serialization

Version 2.3.77

  • Supported ever-types version 2.0

Version 2.3.76

  • Fix zero varint encoding
  • Increase version number
  • Update CHANGELOG.md file

Version: 2.3.51

New

  • Fix for support internal crates

Version: 2.3.36

New

  • Fix for support internal crates
  • Bump versions of external crates

Version: 2.3.2

New

  • Automatic update project. #none

Version 2.3 - 2022-07-07

New

  • New method to calculate external inbound message body signature introduced. It is now based on the destination address, as well as all previously used parameters.

    This prevents a problem where a message to one of several contracts with identical public keys and function signatures may be duplicated and sent to any other of this set of contracts and be successful.

    This functionality is supported staring with 0.64.0 version of the Solidity compiler.

Version 2.2 - 2021-07-19

New

  • Fixed message body layout introduced in order to reduce gas consumption while parsing parameters.

    Each type gets max bit and max ref size, making message structure more predictable.

Version 2.1 - 2021-07-19

New

  • New section Fields introduced.

    It describes internal structure of the smart contracts data as a list of variables' names with corresponding data types. It includes contract state variables and some internal contract specific hidden variables. They are listed in the order in which they are stored in the data field of the contract.

  • New types introduced:

Version 2.0

  • New header JSON ABI section introduced. It contains additional parameters that are part of security measures for contracts:

  • Signature moved to the root cell.

  • Get methods placed in a separate section.

  • The last cell reference can now be used by parameter serialization, which needs reference (cell, bytes, map, array types) if all the following parameters can fit into the current cell.

Version 1

  • Array types encoding redesigned to minimize gas consumption by contracts for encoding/decoding operations and contract code size.
  • New TVM blockchain-specific types introduced:

Version 0

Initial design of Application Binary Interface for TVM blockchain: