state_foreign_set
Behaviour
Section titled “Behaviour”- Read a 32 byte Hook State key from the
kread_ptr - Read an arbitrary amount of data from
read_ptr(the value) - Read a 32 byte Namespace from the
nread_ptr - Read a 20 byte Account ID from
aread_ptr - Update the Hook State key on the specified account within the specified namespace with the value
- But only if a Grant on that account allows this.
- If the Hook Account is specified in
aread_ptrthen the behaviour is that of state_set but still allows specification of namespace throughnread_ptr
- Sets the Foreign Hook State with the specified value, key, namespace, and account ID.
- This operation requires authorization and a Grant to allow this action.
- Returns the number of bytes written to Hook State (the length of the data), negative on error.
Definition
Section titled “Definition”int64_t state_foreign_set ( uint32_t read_ptr, uint32_t read_len, uint32_t kread_ptr, uint32_t kread_len, uint32_t nread_ptr, uint32_t nread_len, uint32_t aread_ptr, uint32_t aread_len);function state_foreign_set( value: ByteArray | HexString | undefined | null, key: ByteArray | HexString, namespace: ByteArray | HexString | undefined | null, accountid: ByteArray | HexString | undefined | null ): ErrorCode | numberExample
Section titled “Example”#define SBUF(str) (uint32_t)(str), sizeof(str)if (state_foreign_set(SBUF(vault), SBUF(vault_key), SBUF(namespace), SBUF(account)) < 0) rollback(SBUF("Error: could not set foreign state!"), 1);if (state_foreign_set(vault, vault_key, namespace, account) < 0) rollback("Error: could not set foreign state!", 1);Parameters
Section titled “Parameters”| Name | Type | Description |
|---|---|---|
| read_ptr | uint32_t | Pointer to the data (value) to write into Hook State. |
| read_len | uint32_t | The length of the data. |
| kread_ptr | uint32_t | A pointer to the Hook State key at which to store the value. |
| kread_len | uint32_t | The length of the key. (Should always be 32.) |
| nread_ptr | uint32_t | A pointer to the namespace which the key belongs to. |
| nread_len | uint32_t | The length of the namespace. (Should always be 32.) |
| aread_ptr | uint32_t | A pointer to the Account ID whose state we are trying to modify. |
| aread_len | uint32_t | The length of the Account ID. (Should always be 20.) |
| Name | Type | Description |
|---|---|---|
| value | ByteArray or HexString | The value of data to persist. |
| key | ByteArray or HexString | The key of the Hook State to set the value for. |
| namespace | ByteArray or HexString | The Hook namespace to look in. |
| accountid | ByteArray or HexString | The owner of the state. |
Return Code
Section titled “Return Code”| Type | Description |
|---|---|
| int64_t | The number of bytes written to Hook State (the length of the data.) |
| Type | Description |
|---|---|
| number or ErrorCode | Returns the number of bytes written to Hook State (the length of the data), negative on error. |