intellij-ton icon indicating copy to clipboard operation
intellij-ton copied to clipboard

Support Tact 1.5.0

Open anton-trunov opened this issue 1 year ago • 0 comments
trafficstars

The following is the list of IDE-relevant changes for Tact v1.5.0 which has been released. This issue is a follow-up on https://github.com/ton-blockchain/intellij-ton/issues/180.

Full changelog for Tact v1.5.0: https://github.com/tact-lang/tact/blob/main/CHANGELOG.md#150---2024-09-15

New Tact features

  • asm functions: asm fun keccak256(s: Slice): Int { 1 INT HASHEXT_KECCAK256 };
  • Wider range of serialization options for integers — uint1 through uint256 and int1 through int257: counter: Int as uint48;
  • Constant evaluator now supports calls to user-defined functions and references to declared global constants;
  • Allow omitting last semicolons in contract/trait declarations and definitions: trait Test { abstract fun foo() } -- the semicolon after foo() is not required anymore.

New builtin and stdlib functions and methods

  • The exists method for the Map type: m.exists(key), equivalent to m.get(key) != null;
  • The deepEquals method for the Map type: m1.deepEquals(m2);
  • The toSlice method for structs and messages: struct.toSlice();
  • The storeBit method for Builder type and the loadBit method for Slice type (aliases for storeBool and loadBool respectively): b.storeBit(true), sl.loadBit();
  • slice, rawSlice, ascii and crc32 built-in functions;
  • Corresponding stdlib functions for the new TVM instructions from 2023.07 and 2024.04 upgrades: storeBuilder extension function and gasConsumed, getComputeFee, getStorageFee, getForwardFee, getSimpleComputeFee, getSimpleForwardFee, getOriginalFwdFee, myStorageDue functions.
  • Builder.storeMaybeRef, parseStdAddress and parseVarAddress stdlib functions.

anton-trunov avatar Sep 15 '24 13:09 anton-trunov