SCValTypeXdr

XDR Source: enum SCValType { SCV_BOOL = 0, SCV_VOID = 1, SCV_ERROR = 2,

// 32 bits is the smallest type in WASM or XDR; no need for u8/u16.
SCV_U32 = 3,
SCV_I32 = 4,

// 64 bits is naturally supported by both WASM and XDR also.
SCV_U64 = 5,
SCV_I64 = 6,

// Time-related u64 subtypes with their own functions and formatting.
SCV_TIMEPOINT = 7,
SCV_DURATION = 8,

// 128 bits is naturally supported by Rust and we use it for Soroban
// fixed-point arithmetic prices / balances / similar "quantities". These
// are represented in XDR as a pair of 2 u64s.
SCV_U128 = 9,
SCV_I128 = 10,

// 256 bits is the size of sha256 output, ed25519 keys, and the EVM machine
// word, so for interop use we include this even though it requires a small
// amount of Rust guest and/or host library code.
SCV_U256 = 11,
SCV_I256 = 12,

// Bytes come in 3 flavors, 2 of which have meaningfully different
// formatting and validity-checking / domain-restriction.
SCV_BYTES = 13,
SCV_STRING = 14,
SCV_SYMBOL = 15,

// Vecs and maps are just polymorphic containers of other ScVals.
SCV_VEC = 16,
SCV_MAP = 17,

// Address is the universal identifier for contracts and classic
// accounts.
SCV_ADDRESS = 18,

// The following are the internal SCVal variants that are not
// exposed to the contracts.
SCV_CONTRACT_INSTANCE = 19,

// SCV_LEDGER_KEY_CONTRACT_INSTANCE and SCV_LEDGER_KEY_NONCE are unique
// symbolic SCVals used as the key for ledger entries for a contract's
// instance and an address' nonce, respectively.
SCV_LEDGER_KEY_CONTRACT_INSTANCE = 20,
SCV_LEDGER_KEY_NONCE = 21

};

Entries

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

32 bits is the smallest type in WASM or XDR; no need for u8/u16.

Link copied to clipboard
Link copied to clipboard

64 bits is naturally supported by both WASM and XDR also.

Link copied to clipboard
Link copied to clipboard

Time-related u64 subtypes with their own functions and formatting.

Link copied to clipboard
Link copied to clipboard

128 bits is naturally supported by Rust and we use it for Soroban fixed-point arithmetic prices / balances / similar "quantities". These are represented in XDR as a pair of 2 u64s.

Link copied to clipboard
Link copied to clipboard

256 bits is the size of sha256 output, ed25519 keys, and the EVM machine word, so for interop use we include this even though it requires a small amount of Rust guest and/or host library code.

Link copied to clipboard
Link copied to clipboard

Bytes come in 3 flavors, 2 of which have meaningfully different formatting and validity-checking / domain-restriction.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Vecs and maps are just polymorphic containers of other ScVals.

Link copied to clipboard
Link copied to clipboard

Address is the universal identifier for contracts and classic accounts.

Link copied to clipboard

The following are the internal SCVal variants that are not exposed to the contracts.

Link copied to clipboard

SCV_LEDGER_KEY_CONTRACT_INSTANCE and SCV_LEDGER_KEY_NONCE are unique symbolic SCVals used as the key for ledger entries for a contract's instance and an address' nonce, respectively.

Link copied to clipboard

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard

Returns a representation of an immutable list of all enum entries, in the order they're declared.

Link copied to clipboard
expect val name: String
Link copied to clipboard
expect val ordinal: Int
Link copied to clipboard
val value: Int

Functions

Link copied to clipboard
fun encode(writer: XdrWriter)
Link copied to clipboard

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Link copied to clipboard

Returns an array containing the constants of this enum type, in the order they're declared.