- Managed types used extensively. Because of this, the recommended Arwen minimum version is
v1.4.10
.- Redesigned parts of the elrond-codec, so as to allow custom type specializations. These specializations allow serializers and types to bypass the limitations of the codec traits to provide optimized implementations. Managed type serialization relies on this.
- Redesigned existing managed types:
BigInt
,BigUint
,EllipticCurve
. - Added the
ManagedBuffer
type, which can be used to store anything on the VM side. - Support for complex operations using managed buffers, such as storing lists of elements in a managed buffer via the
ManagedVec
type. - There are
ManagedAddress
es now. They rely on another managed type, theManagedByteArray
, which is a fixed size managed structure. TokenIdentifier
is now a managed type.- Serializer based on a managed buffer.
- Storage keys are now based on managed buffers.
- All error messages generated by the framework are assembled using a managed buffer.
- The blockchain API uses managed types for most interactions.
- The contract call API uses managed types for most interactions.
- The call value API supports multi transfer via managed
EsdtTokenPayment
objects. - Event logs are sent to the VM via managed types (
ManagedVec<ManagedBuffer>
for topics,ManagedBuffer
for data). - Type conversion traits for managed types:
ManagedFrom
andManagedInto
. - There are now 2 types of
SCError
:StaticSCError
for static messages andManagedSCError
, which is backed by a managed buffer. - Contract errors can now be triggered immediately, without the need to return them from an endpoint.
- Improved macro preprocessor: more complex patterns can now be substituted.
- Generic API parameter needs not be specified every time.
- Substitutions available for most managed types and storage mappers.
- Separated contract API into low-level VM API connectors and high-level utility objects to be used in the contracts.
- Mandos-rs improvements:
- Self tests synchronized with mandos-go. Some missing features needed to be added to make them pass.
- Support for ESDT tokens.
- Support for ESDT multi-transfer.