Pular para o conteúdo

Terminologia

Hooks são módulos de web assembly pequenos e eficientes projetados especificamente para o Xahau. Os Hooks podem ser escritos em qualquer linguagem (compilável para WebAssembly) e a maioria das lógicas de negócios e conceitos de contratos inteligentes podem ser implementados em um hook. Tipicamente os Hooks são escritos em C.

Os Hooks são instalados em uma conta Xahau usando uma transação SetHook. Uma vez instalado em uma conta, um hook pode:

  1. Bloquear ou permitir transações de entrada e saída na conta,
  2. Modificar e manter estado interno e lógica específicos ao hook naquela conta, e
  3. Emitir novas transações em nome da conta.

Esta documentação de Hooks e a API de Hooks usam um conjunto de termos não familiares. Use a tabela de consulta abaixo se se encontrar perdido.

TermoExplicação
Hook

Este termo se refere a um conjunto de coisas dependendo do contexto
1. Um binário webassembly que pode ser enviado ao Xahau com o tipo Transação SetHook.
2. Um binário webassembly já enviado e instalado ou configurado em uma conta Xahau.
3. O código fonte de tal binário.

Transação de OrigemA transação que acionou o Hook. Esta pode ser uma transação enviada para fora ou para dentro de uma conta com um Hook instalado.
Conta de OrigemA conta que enviou uma Transação de Origem.
Conta HookA conta onde o Hook atualmente em execução está. Esta é a conta que possui o Hook, a conta que realizou a Transação SetHook que criou o Hook e a conta à qual pertence o Estado do Hook para o Hook atualmente em execução.
InstaladorA conta que está atualmente instalando um Hook usando a transação SetHook.
Transação EmitidaUma nova transação criada por um Hook durante a execução do Hook que não é a Transação de Origem. Estas são tipicamente usadas para enviar fundos de volta para a Conta de Origem. Veja: Transações Emitidas.
EstadoUm mapa chave-valor por conta de chaves de 32 bytes para dados arbitrários. Todos os Hooks presentes em uma conta têm acesso ao mesmo Estado do Hook e podem modificá-lo. Note que o Estado do Hook vive na Conta Hook não na Conta de Origem. Veja: Gerenciamento de Estado.
SetHookUm novo Tipo de Transação introduzido na emenda de Hooks que instala um Hook em uma conta Xahau. Veja: Transação SetHook.
GuardasUm mecanismo de controle especial que você precisa usar se escrever um loop em um Hook. Veja: Loops e Guardas.
ConcessõesPermissão especial que um Instalador de Hook pode dar a outra conta ou a um Hook específico (independentemente de onde está instalado) para modificar o Estado do Hook na conta do Instalador.
NamespaceUm código único de 32 bytes delimitando um conjunto de chaves de estado de outro. A mesma chave de estado pode ser usada por dois Hooks diferentes sem interferir um com o outro se os namespaces definidos nos Hooks forem diferentes.
ParâmetrosParâmetros de tempo de instalação que podem ser opcionalmente definidos em um Hook.
Contagem de ReferênciaUm objeto não proprietário no ledger pode ter contagem de referência, significando que é excluído quando a última conta que o referenciou (usou) remove sua referência a ele.
XFL ou Ponto FlutuanteUma forma de fazer matemática de alta precisão em Hooks, como para cálculo de taxas de câmbio. Veja: Números de Ponto Flutuante (XFL).
Objetos Serializados (STO)A forma como o xahaud transmite e armazena objetos do ledger. Veja: Objetos Serializados.
Slots e KeyletsSlots podem conter objetos do ledger e keylets identificam esses objetos. Veja: Slots e Keylets.
TraceUma forma de imprimir uma linha de log para a saída do xrpld a partir de um Hook. Veja: Depurando Hooks.