pub struct Guest;
Expand description

The Guest is the implementation of the Env interface seen and used by contracts built into WASM for execution within a WASM VM. It is a 0-sized “stub” type implementation of the Env interface that forwards each Env method to an external function, imported from its runtime environment. This implementation is automatically generated and has no interesting content.

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Returns the “default value” for a type. Read more
Get the contractID Bytes of the contract which invoked the running contract. Traps if the running contract was not invoked by a contract. Read more
Records a contract event. topics is expected to be a SCVec with length <= 4 that cannot contain Vec, Map, or Bytes with length > 32 On success, returns an SCStatus::Ok. Read more
Get the contractID Bytes of the contract which invoked the running contract. Traps if the running contract was not invoked by a contract. Read more
Return the protocol version of the current ledger as a u32.
Return the sequence number of the current ledger as a u32.
Return the timestamp number of the current ledger as a u64.
Return the network passphrase of the current ledger as Bytes.
Returns the full call stack from the first contract call to the current one as a vector of vectors, where the inside vector contains the contract id as Hash, and a function as a Symbol. Read more
Causes the currently executing contract to fail immediately with a provided status code, which must be of error-type ScStatusType::ContractError. Does not actually return. Read more
Get whether the contract invocation is from an account or another contract. Returns 0 for account, 1 for contract. Read more
Get the AccountID object type of the account which invoked the running contract. Traps if the running contract was not invoked by an account. Read more
Return the network id (sha256 hash of network passphrase) of the current ledger as Bytes. The value is always 32 bytes in length. Read more
Convert an i64 to an object containing an i64.
Convert an object containing an i64 to an i64.
Create an empty new map.
Insert a key/value mapping into an existing map, and return the map object handle. If the map already has a mapping for the given key, the previous value is overwritten. Read more
Get the value for a key from a map. Traps if key is not found.
Remove a key/value mapping from a map if it exists, traps if doesn’t.
Get the size of a map.
Test for the presence of a key in a map. Returns (SCStatic) TRUE/FALSE.
Given a key, find the first key less than itself in the map’s sorted order. If such a key does not exist, return an SCStatus containing the error code (TBD). Read more
Given a key, find the first key greater than itself in the map’s sorted order. If such a key does not exist, return an SCStatus containing the error code (TBD). Read more
Find the minimum key from a map. If the map is empty, return an SCStatus containing the error code (TBD). Read more
Find the maximum key from a map. If the map is empty, return an SCStatus containing the error code (TBD). Read more
Return a new vector containing all the keys in a map. The new vector is ordered in the original map’s key-sorted order. Read more
Return a new vector containing all the values in a map. The new vector is ordered in the original map’s key-sorted order. Read more
Creates a new vector with an optional capacity hint c. If c is ScStatic::Void, no hint is assumed and the new vector is empty. Otherwise, c is parsed as an u32 that represents the initial capacity of the new vector. Read more
Update the value at index i in the vector. Return the new vector. Trap if the index is out of bounds. Read more
Returns the element at index i of the vector. Traps if the index is out of bound.
Delete an element in a vector at index i, shifting all elements after it to the left. Return the new vector. Traps if the index is out of bound. Read more
Returns length of the vector.
Push a value to the front of a vector.
Removes the first element from the vector and returns the new vector. Traps if original vector is empty. Read more
Appends an element to the back of the vector.
Removes the last element from the vector and returns the new vector. Traps if original vector is empty. Read more
Return the first element in the vector. Traps if the vector is empty
Return the last element in the vector. Traps if the vector is empty
Inserts an element at index i within the vector, shifting all elements after it to the right. Traps if the index is out of bound Read more
Clone the vector v1, then moves all the elements of vector v2 into it. Return the new vector. Traps if number of elements in the vector overflows a u32. Read more
Copy the elements from start index until end index, exclusive, in the vector and create a new vector from it. Return the new vector. Traps if the index is out of bound. Read more
Get the index of the first occurrence of a given element in the vector. Returns the u32 index of the value if it’s there. Otherwise, it returns ScStatic::Void. Read more
Get the index of the last occurrence of a given element in the vector. Returns the u32 index of the value if it’s there. Otherwise, it returns ScStatic::Void. Read more
Binary search a sorted vector for a given element. If it exists, the high-32 bits of the return value is 0x0001 and the low-32 bits contain the u32 index of the element. If it does not exist, the high-32 bits of the return value is 0x0000 and the low-32 bits contain the u32 index at which the element would need to be inserted into the vector to maintain sorted order. Read more
Create a contract using the source account and salt as input to the contract ID that gets created. Pass as arguments a Bytes for the wasm code and a Bytes for the salt. Returned will be a Bytes of length 32 bytes. Read more
Create a token contract using the source account and salt as input to the contract ID that gets created. Pass as arguments a Bytes for the salt. Returned will be a Bytes of length 32 bytes. Read more
Calls a function in another contract with arguments contained in vector args. If the call is successful, forwards the result of the called function. Traps otherwise. Read more
Calls a function in another contract with arguments contained in vector args. Returns: Read more
Constructs a BigInt from an u64.
Converts a BigInt to an u64. Traps if the value cannot fit into u64.
Constructs a BigInt from an i64.
Converts a BigInt to an i64. Traps if the value cannot fit into i64.
Performs the + operation.
Performs the - operation.
Performs the * operation.
Performs the / operation. Traps if y is zero.
Performs the % operation. Traps if y is zero.
Performs the & operation.
Performs the | operation.
Performs the ^ operation.
Performs the << operation. Traps if y is negative or larger than the size of u64.
Performs the >> operation. Traps if y is negative or larger than the size of u64.
Returns true if x is equal to the additive identity.
Performs the unary - operation.
Performs the unary ! operation.
Calculates the Greatest Common Divisor (GCD) of x and y.
Calculates the Lowest Common Multiple (LCM) of x and y.
Calculates x to the power y. Traps if y is negative or larger than the size of u64.
Calculates (p ^ q) mod m. Note that this rounds like mod_floor, not like the % operator, which makes a difference when given a negative p or m. The result will be in the interval [0, m) for m > 0, or in the interval (m, 0] for m < 0. Traps if the q is negative or the m is zero. Read more
Calculates the truncated principal square root of x. Traps if x is negative.
Determines the fewest bits necessary to express x, not including the sign.
Outputs the BigInt’s magnitude in big-endian byte order into a byte array. The sign is dropped.
Outputs the BigInt’s magnitude in the requested base in big-endian digit order into a byte array. The sign is dropped. Radix must be in the range 2…256. Read more
Creates a BigInt from a byte array and i32 sign. Bytes are in big-endian order. Sign is interpreted: -1 as negative, 0 as zero, 1 as positive If sign is 0, then the input bytes are ignored and will return a BigInt of 0. Read more
Creates a BigInt from a byte array buf, an i32 sign and an u32 radix. Each u8 of the byte array is interpreted as one digit of the number and must therefore be less than the radix. The bytes are in big-endian byte order. Radix must be in the range 2..=256. Sign follows same rule as in bigint_from_bytes_be. Read more
Serializes an (SC)Val into XDR opaque Bytes object.
Deserialize a Bytes object to get back the (SC)Val.
Copies a slice of bytes from a Bytes object specified at offset b_pos with length len into the linear memory at position lm_pos. Traps if either the Bytes object or the linear memory doesn’t have enough bytes. Read more
Copies a segment of the linear memory specified at position lm_pos with length len, into a Bytes object at offset b_pos. The Bytes object may grow in size to accommodate the new bytes. Traps if the linear memory doesn’t have enough bytes. Read more
Constructs a new Bytes object initialized with bytes copied from a linear memory slice specified at position lm_pos with length len.
Create an empty new Bytes object.
Update the value at index i in the Bytes object. Return the new Bytes. Trap if the index is out of bounds. Read more
Returns the element at index i of the Bytes object. Traps if the index is out of bound.
Delete an element in a Bytes object at index i, shifting all elements after it to the left. Return the new Bytes. Traps if the index is out of bound. Read more
Returns length of the Bytes object.
Appends an element to the back of the Bytes object.
Removes the last element from the Bytes object and returns the new Bytes. Traps if original Bytes is empty. Read more
Return the first element in the Bytes object. Traps if the Bytes is empty
Return the last element in the Bytes object. Traps if the Bytes is empty
Inserts an element at index i within the Bytes object, shifting all elements after it to the right. Traps if the index is out of bound Read more
Clone the Bytes object b1, then moves all the elements of Bytes object b2 into it. Return the new Bytes. Traps if its length overflows a u32. Read more
Copies the elements from start index until end index, exclusive, in the Bytes object and creates a new Bytes from it. Returns the new Bytes. Traps if the index is out of bound. Read more
Get the low threshold for the account with ID a (a is AccountId). Traps if no such account exists. Read more
Get the medium threshold for the account with ID a (a is AccountId). Traps if no such account exists. Read more
Get the high threshold for the account with ID a (a is AccountId). Traps if no such account exists. Read more
Get the signer weight for the signer with ed25519 public key s (s is Bytes) on the account with ID a (a is AccountId). Returns the master weight if the signer is the master, and returns 0 if no such signer exists. Traps if no such account exists. Read more
Given an ID a (a is AccountId) of an account, check if it exists. Returns (SCStatic) TRUE/FALSE. Read more
Used for recovering the concrete type of the Host.
Used to check two environments are the same, trapping if not.
Used to clone an environment deeply, not just a handle to it.
Copy a slice of bytes from the caller’s memory into an existing Bytes object the host, returning a new Bytes. Read more
Copy a slice of bytes from a Bytes object in the host into the caller’s memory. Read more
Form a new Bytes object in the host from a slice of memory in the caller. Read more
Log a formatted debugging message to the debug log (if present), passing a simplified format string (supporting only positional {} markers) and a single RawVal argument that will be inserted at the marker in the format string. Read more
Log a formatted debugging message to the debug log (if present), passing a simplified format string (supporting only positional {} markers) and a single string-slice argument that will be inserted at the marker in the format string. Read more
Log a formatted debugging message to the debug log (if present), passing a simplified format string (supporting only positional {} markers) and both a RawVal and a string-slice argument, that will each be inserted at markers in the format string. Read more
Log a formatted debugging message to the debug log (if present), passing a simplified format string (supporting only positional {} markers) and both a slice of RawVals and a slice of string-slice argument, that will be sequentially inserted at markers in the format string. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.