Web IDE, powered by Nujan, is your ultimate browser-based IDE designed to simplify the journey of writing, testing, compiling, deploying, and interacting with smart contracts on TON. Write smart contracts from anywhere, No setups, no downloads, just pure convenience and versatility.
And here are a summary of editor/IDE-relevant Tact features.
New or fixed syntax
[x] Fixed precedence levels for bitwise operators, equality and comparisons. Now the precedence levels match common languages like JS/TS.
[x] Support for string escape sequences: \\, \", \n, \r, \t, \v, \b, \f, \u{0} through \u{FFFFFF}, \u0000 through \uFFFF, \x00 through \xFF.
[x] Allow chaining method calls with !!, for instance, map.asCell()!!.hash() is grammatically correct now.
[x] Trailing commas are allowed in struct instantiations, initOf arguments, init() parameters, inherited traits via with, function arguments and parameters.
[x] Struct fields punning, i.e. {foo, bar} is syntactic sugar for { foo: foo, bar: bar }.
[x] Inherited trait lists now must be non-empty if with is used.
[x] Bitwise XOR (^) operator.
[x] The implicit empty init function is now present by default in the contract if not declared.
[x] try {...} and try {...} catch {...} statements.
[x] foreach loop for the Map type: foreach (k, v in map) {...}.
New stdlib functions
[x] pow2, log2 and log math functions in @stdlib/math.
The Tact team has just release Tact v1.3.0 on NPM.
The full CHANGELOG for Tact v1.3.0 can be found here: https://github.com/tact-lang/tact/blob/main/CHANGELOG.md#130---2024-05-03
And here are a summary of editor/IDE-relevant Tact features.
New or fixed syntax
\\
,\"
,\n
,\r
,\t
,\v
,\b
,\f
,\u{0}
through\u{FFFFFF}
,\u0000
through\uFFFF
,\x00
through\xFF
.!!
, for instance,map.asCell()!!.hash()
is grammatically correct now.initOf
arguments,init()
parameters, inherited traits viawith
, function arguments and parameters.{foo, bar}
is syntactic sugar for{ foo: foo, bar: bar }
.with
is used.^
) operator.init
function is now present by default in the contract if not declared.try {...}
andtry {...} catch {...}
statements.foreach
loop for theMap
type:foreach (k, v in map) {...}
.New stdlib functions
pow2
,log2
andlog
math functions in@stdlib/math
.@stdlib/reserve
, namelyReserveExact
,ReserveAllExcept
,ReserveAtMost
,ReserveAddOriginalBalance
,ReserveInvertSign
,ReserveBounceIfActionFail
.New methods
concat
non-modifyingStringBuilder
's extension function for chained string concatenations:foo.concat(bar).concat(baz)
.toString
extension function forAddress
type:addr.toString
.isEmpty
anddel
extension functions for theMap
type:map.isEmpty
,map.del(key)
.Related issue https://github.com/nujan-io/nujan-ide/issues/34