Will be renamed to AsyncCall
and AsyncCall
to AsyncCallLegacy
when the promises end up on the mainnet.
Holding back-transfer data, as retrieved from the VM.
Object that encodes full async callback data.
Similar object to CallbackClosure
, but only used for deserializing from storage
the callback data with the old async call mechanism.
Helps the callback macro expansion to perform callback name matching more efficiently.
The current implementation hashes by callback name length,
but in principle further optimizations are possible.
Contains code for a deploy or upgrade.
Handlers that return nothing.
Zero-sized constant number of decimals.
Holds metadata for calling another contract, without payments.
Holds data for calling another contract, with any type of payment: none, EGLD, Multi-ESDT.
Holds data for calling another contract, with EGLD payment only.
Holds data for calling another contract, with a single payment, either EGLD or a single ESDT token.
Holds deploy data: code, code metadata, and arguments.
Indicates the system SC address, which is the same on any MultiversX blockchain.
Indicates the EGLD payment in a transaction.
Specialized type for handling either EGLD or ESDT token identifiers.
Thin wrapper around EgldOrEsdtTokenPayment, which has different I/O behaviour:
Similar to EgldOrEsdtTokenPayment
, but only contains references.
Thin wrapper around EsdtTokenPayment, which has different I/O behaviour:
The version of EsdtTokenPayment
that contains referrences instead of owned fields.
Indicates the source of a “deploy from source” or “upgrade from source”.
Encodes a function call on the blockchain, composed of a function name and its encoded arguments.
Indicates that all remaining gas should be sent to a transaction.
A byte buffer managed by an external API.
Basic implementation of a ManagedBuffer builder, no caching.
A ManagedBuffer builder implementation that caches data to the static cache locally in the contract.
Nested decode buffer based on a managed buffer.
Uses the load/copy slice API to extract pieces of the managed buffer for deserialization.
A wrapper over a ManagedBuffer with different decode properties. It reads until the end of the buffer.
A list of items that lives inside a managed buffer.
Items can be either stored there in full (e.g. u32
),
or just via handle (e.g. BigUint<M>
).
Fixed-point decimal numbers that accept either a constant or variable number of decimals.
Fixed-point decimal numbers that accept either a constant or variable number of decimals.
A byte buffer managed by an external API.
A very efficient optional managed type.
A very efficient reference to a managed type, with copy semantics.
A very efficient mutable reference to a managed type.
Smart contract error that can concatenate multiple message pieces.
The message is kept as a managed buffer in the VM.
A list of items that lives inside a managed buffer.
Items can be either stored there in full (e.g. u32
),
or just via handle (e.g. BigUint<M>
).
Empty ManagedVecItem.
The main ManagedVecItemPayload implementation. Uses an array in its implementation.
A multi-value container, that keeps raw values as ManagedBuffer
It allows encoding and decoding of multi-values.
A multi-value container, that keeps raw values as ManagedBuffer, and which encodes and decodes its length explicitly.
Iterator for MultiValueEncoded
and MultiValueEncodedCounted
.
Argument or result that is made up of the argument count, followed by the arguments themselves.
Think of it as a VarArgs
preceded by the count.
Unlike MultiValueManagedVec
it deserializes eagerly.
Transaction marker, which indicates that a transaction should never have any payment added to it.
Contains no data.
Simply passes a value to the result.
Indicates that back-transfers will be returned.
Indicates that back-transfers will be returned.
Indicates that back-transfers will be returned.
Indicates that back-transfers will be returned.
Indicates that the newly deployed address will be returned after a deploy.
Indicates that the newly deployed address will be returned after a deploy as a ManagedAddress.
Indicates that the raw result data will be returned.
Indicates that result will be returned.
Indicates that result will be returned.
Indicates that the unmanaged version of the result will be returned.
A special type of array that initially holds the values from 0 to N
If array[i] == i, then the default value (0) is stored instead
Contains a smart contract execution error message.
Encodes a dummy address, to be used for tests.
Syntactic sugar for quickly writing ESDT transfers in tests.
Encodes a dummy SC address, to be used for tests.
Encodes a dummy address, to be used for tests.
Indicates that transaction should be sent to the caller (the sender of the current transaction).
Indicates that transaction should be sent to itself.
Specialized type for handling token identifiers.
It wraps a BoxedBytes with the full ASCII name of the token.
EGLD is stored as an empty name.
Universal representation of a blockchain transaction.
The transaction environment used in calls launched from a SC.
Old attempt at grouping FunctionCall + OriginalTypeMarker.
Holds deploy data: code, code metadata, and arguments.
Defines a lambda function to be called on the newly deployed address, after a deploy.
Defines a lambda function to be called on the raw result of the transaction.
Defines a lambda function to be called on the decoded result.
Defines a lambda function to be called on the decoded result.
Describes a value can also have a custom representation in a mandos scenario.
Defines a contract call object, which is the basis for all calls to other contracts.
Converts into a legacy contract call.
Implemented by all decimal types usable in ManagedDecimal
.
Used when merging is done through an external SC call.
Generally, these only need to have the same token ID, with different nonces.
Commonalities between all managed types.
Types that implement this trait can be items inside a ManagedVec
.
All these types need a payload, i.e a representation that gets stored
in the underlying managed buffer.
Not all data needs to be stored as payload, for instance for most managed types
the payload is just the handle, whereas the mai ndata is kept by the VM.
Syntactic sugar, that allows us to more easily represent composite payloads as nested tuples.
Describes the binary represetnation of a ManagedVecItem.
Describes concatantion of smaller payloads into a larger one.
Used for types that can be merged locally.
Trait that is automatically implemented for all types that are allowed as proxy inputs.
Indicates how result processing will undergo for an ensemble of result handlers.
Result handler list item.
Indicates how result processing will undergo for one specific result handler.
Any type that implements this trait can be used to signal errors
when returning from a SC endpoint.
Marks the data field of a transaction in Tx
.
Indicates that given result handler is empty, i.e. doesn’t cause any side effects and returns nothing.
Marks the sender of any transaction.
Marks the non-empty sender of a transaction.
All typed that populate the gas field of a transaction need to implement this trait.
Marker trait that indicates that payment field contains no payment.
Describes a payment that is part of a transaction.
Marks a payment object that only contains EGLD or nothing at all.
Indicates that a payment object contains a multi-ESDT payment.
Defines a proxy object for a smart contract.
Marks a general result handler, to be used in the transaction unified syntax.
Marks the recipient of any transaction.
Marks the non-empty recipient of a transaction.