Saltearse al contenido

slot_subfield

  • Busca el objeto en el slot parent_slot
  • Recupera el subobjeto en field_id
  • Coloca el subobjeto en el slot new_slot o en el siguiente slot disponible si new_slot es 0
  • Devuelve el número del nuevo slot
int64_t slot_subfield (
uint32_t parent_slot,
uint32_t field_id,
uint32_t new_slot
);
int64_t amt_slot =
slot_subfield(oslot, sfAmount, 0);
NombreTipoDescripción
parent_slotuint32_tSlot donde se encuentra el objeto padre
field_iduint32_t

Código sf del campo que se desea buscar.

Para calcularlo manualmente, toma el type serializado y desplázalo a los 16 bits más altos de un uint32_t, luego coloca el field en los 16 bits más bajos.

Ejemplo:
sfEmitNonce tiene type 5 y field 11, por lo que su valor es 0x050BU

new_slotuint32_tNuevo número de slot donde colocar el objeto del campo seleccionado. Si es 0, se usará el siguiente slot disponible
TipoDescripción
int64_t

Número de slot del nuevo objeto asignado

Si es negativo, error:

DOESNT_EXIST
- el campo no existe en el objeto o el slot está vacío

NO_FREE_SLOTS
- no hay slots disponibles

INVALID_FIELD
- el campo no es un sf válido

NOT_AN_OBJECT
- el objeto en el slot no es un STObject válido