Saltearse al contenido

Hook

[Source]

(Añadido por la enmienda [Hooks][].)

Un objeto Hook describe un contrato inteligente que puede activarse por una transacción para realizar operaciones predefinidas. Las operaciones son definidas por el creador del Hook y pueden interactuar con el ledger y las transacciones.

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

Un objeto Hook tiene los siguientes campos:

CampoTipo JSON[Tipo Interno][]¿Requerido?Descripción
AccountStringAccountLa cuenta que creó el Hook.
OwnerNodeStringUInt64Una pista que indica qué página del directorio del propietario enlaza a este objeto, en caso de que el directorio consista de múltiples páginas.
PreviousTxnIDStringHash256El ID de la transacción que modificó más recientemente este objeto.
PreviousTxnLgrSeqNumberUInt32El [índice del ledger][] del ledger que contiene la transacción que modificó más recientemente este objeto.
HooksArrayArrayUn arreglo de objetos hook. Cada objeto tiene los siguientes campos: HookHash, CreateCode, HookGrants, HookNamespace, HookParameters, HookOn, HookApiVersion, Flags.
LedgerEntryTypeStringUInt16El valor 0x0043, mapeado a la cadena Hook, indica que este objeto es un objeto Hook.

Los siguientes campos se usan en el objeto hook:

CampoTipo JSONTipo InternoDescripción
HookHashStringHash256El hash del hook.
HookParametersArrayArrayLos parámetros del hook.
FlagsNumberUInt32Indicadores adicionales para el hook.

El ID de un objeto Hook es el SHA-512Half de los siguientes valores, concatenados en orden:

  • La clave de espacio Hook (0x0048)
  • El AccountID del remitente de la [transacción SetHook][] que creó el objeto Hook