Pular para o conteúdo

Hook

[Fonte]

(Adicionado pela [emenda Hooks][].)

Um objeto Hook descreve um contrato inteligente, que pode ser acionado por uma transação para realizar operações predefinidas. As operações são definidas pelo criador do Hook e podem interagir com o ledger e as transações.

{
"Account": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo",
"OwnerNode": "0000000000000000",
"PreviousTxnID": "5463C6E08862A1FAE5EDAC12D70ADB16546A1F674930521295BC082494B62924",
"PreviousTxnLgrSeq": 6,
"Hooks": [
{
"HookHash": "46060241FABCF692D4D934BA2A6C4427CD4279083E38C77CBE642243E43BE291",
"HookParameters": []
}
],
"LedgerEntryType": "Hook",
"index": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0"
}

Um objeto Hook tem os seguintes campos:

CampoTipo JSON[Tipo Interno][]Obrigatório?Descrição
AccountStringAccountSimA conta que criou o Hook.
OwnerNodeStringUInt64SimUma dica indicando qual página do diretório do proprietário aponta para este objeto, caso o diretório consista em múltiplas páginas.
PreviousTxnIDStringHash256SimO ID da transação que mais recentemente modificou este objeto.
PreviousTxnLgrSeqNumberUInt32SimO [índice do ledger][] do ledger que contém a transação que mais recentemente modificou este objeto.
HooksArrayArraySimUm array de objetos hook. Cada objeto tem os seguintes campos: HookHash, CreateCode, HookGrants, HookNamespace, HookParameters, HookOn, HookApiVersion, Flags.
LedgerEntryTypeStringUInt16SimO valor 0x0043, mapeado para a string Hook, indica que este objeto é um objeto Hook.

Os seguintes campos são utilizados no objeto hook:

CampoTipo JSONTipo InternoDescrição
HookHashStringHash256O hash do hook.
HookParametersArrayArrayOs parâmetros do hook.
FlagsNumberUInt32Flags adicionais para o hook.

O ID de um objeto Hook é o SHA-512Half dos seguintes valores, concatenados em ordem:

  • A chave de espaço Hook (0x0048)
  • O AccountID do remetente da [transação SetHook][] que criou o objeto Hook