⚡️ Breaking changes
reply
is now a method ofContract
instead of global context and changed it's behaviour if storage reserve is non-zero in contract.- Logical expressions are now calculated differently:
&&
now does not execute right expression if left isfalse
and||
does not execute right expression if left istrue
. Before it was executed in any case. This change is made in attempt to reduce unexpected behaviour. OwnableTransferable
is now sends response to the sender.overwrites
was renamed tooverride
Deployable
trait now sends non-bounceable notifications instead of bounceable ones.
Features
Address
toAddress
maps- Ability to define key and value serializations for maps
sha256
hashingforward
andnotify
functions that can be used to send messages to other contracts using remaining value of incoming messagevirtual
andabstract
constants that can be shared between traitsstorageReserve
constant in every contract that can be used to reserve some storage space by any traitabstract
functions that can be implemented in contractsFactoryDeployable
trait for deploying from factory contract@stdlib/dns
for easier DNS resolution- Opt-in
external
message support - Typed
bounce
receiver andbounce<T>
type modifier commit
for committing state changesinline
modifier for functions for inlining them into the caller- Ability to define empty messages (but not structs)
- Some string-related operations are now computed at compile time if possible
Fixed
- Signature of
preloadBits
function - Fixed
readForwardFee
function