sto_subfield
Conceitos
Seção intitulada “Conceitos”Comportamento
Seção intitulada “Comportamento”- Analisa um STObject apontado por
read_ptr - Encontra o campo especificado por
field_id - Se o campo for encontrado, e:
-
- For um array, então retorna o início e o tamanho do array incluindo os bytes de leadin/leadout, ou
-
- Não for um array, então retorna o início e o tamanho do PAYLOAD do campo (excluindo os bytes de leadin).
- Analisa um STObject na variável
sto - Encontra o campo especificado por
field_id
Definição
Seção intitulada “Definição”int64_t sto_subfield ( uint32_t read_ptr, uint32_t read_len, uint32_t field_id);function sto_subfield( sto: ByteArray | HexString, field_id: number ): ErrorCode | bigintExemplo
Seção intitulada “Exemplo”#define SUB_OFFSET(x) ((int32_t)(x >> 32))#define SUB_LENGTH(x) ((int32_t)(x & 0xFFFFFFFFULL))int64_t memos_lookup = sto_subfield(txn_ptr, txn_len, sfMemos);if (memos_lookup < 0){ // sfMemos was not found in the STObject pointed at by memo_ptr}else{ // sfMemos was found and its location is as follows: uint8_t* memos_ptr = SUB_OFFSET(memos_lookup) + memos_ptr; int64_t memos_len = SUB_LENGTH(memos_lookup);}const SUB_OFFSET = (x) => Number(x >> 32n)const SUB_LENGTH = (x) => Number(x & 0xFFFFFFFFn)const memos_lookup = sto_subfield(txn, sfMemos);if (typeof memos_lookup === 'number'){ // sfMemos was not found in the STObject pointed at by memo_ptr}else{ // sfMemos was found and its location is as follows: const memo_start = SUB_OFFSET(memos_lookup) const memo_len = SUB_LENGTH(memos_lookup) const memo = txn.slice(memo_start, memo_len)}Parâmetros
Seção intitulada “Parâmetros”| Nome | Tipo | Descrição |
|---|---|---|
| read_ptr | uint32_t | Ponteiro para o buffer contendo o STObject |
| read_len | uint32_t | Tamanho do STObject |
| field_id | uint32_t | O código |
| Nome | Tipo | Descrição |
|---|---|---|
| sto | ByteArray or HexString | O objeto STO (dados de ledger codificados em binário) do qual o subcampo será extraído. |
| field_id | number | O ID do campo a ser extraído. |
Código de Retorno
Seção intitulada “Código de Retorno”| Tipo | Descrição |
|---|---|
| int64_t | A localização do campo dentro do buffer especificado: |
| Tipo | Descrição |
|---|---|
| bigint / ErrorCode | A localização do campo dentro do buffer especificado: ou um código de erro se a extração falhar. |