Saltearse al contenido

state_foreign

  • Lee un Account ID de 20 bytes desde aread_ptr
  • Lee una clave de Hook State de 32 bytes desde kread_ptr
  • Escribe los datos (valor) asociados a esa clave en ese Account ID en el buffer apuntado por write_ptr
int64_t state_foreign (
uint32_t write_ptr,
uint32_t write_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
);
#define SBUF(str) (uint32_t)(str), sizeof(str)
uint8_t ns[32] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int64_t lookup =
state_foreign(SBUF(blacklist_status), SBUF(otxn_accid), SBUF(ns), SBUF(blacklist_accid));
if (lookup < 0)
rollback(SBUF("Error: no se pudo encontrar la clave en el estado externo."), 1);
NombreTipoDescripción
write_ptruint32_tPuntero al buffer donde escribir los datos del Hook State
write_lenuint32_tLongitud del buffer de escritura
kread_ptruint32_tPuntero a un buffer que contiene la clave del Hook State
kread_lenuint32_tLongitud de la clave (debe ser 32)
nread_ptruint32_tPuntero al buffer que contiene el namespace de 32 bytes
nread_lenuint32_tLongitud del namespace (debe ser 32)
aread_ptruint32_tPuntero a un buffer con el Account ID de 20 bytes
aread_lenuint32_tLongitud del Account ID (debe ser 20)
TipoDescripción
int64_t

Número de bytes escritos en el buffer de salida

Si es negativo, error:
OUT_OF_BOUNDS
- punteros fuera de la memoria del hook

DOESNT_EXIST
- la clave de Hook State no tiene valor asociado

TOO_BIG
- la clave supera los 32 bytes

TOO_SMALL
- el buffer es demasiado pequeño

INVALID_ACCOUNT
- la cuenta especificada es inválida o no existe