Hook Definition
(Added by the [Hooks amendment][].)
A HookDefinition
object describes a hook, which is a piece of code that is executed in response to certain transactions. The hook can modify the transaction, emit new transactions, or perform other actions.
Example JSON
Section titled “Example JSON”{ "HookHash": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0", "HookOn": "0000000000000000000000000000000000000000000000000000000000000000", "HookNamespace": "0000000000000000000000000000000000000000000000000000000000000000", "HookParameters": { "HookParameter": { "HookParameterName": "DEADBEEF", "HookParameterValue": "DEADBEEF", } }, "HookApiVersion": 1, "CreateCode": "5463C6E08862A1FAE5EDAC12D70ADB16546A1F674930521295BC082494B62924", "HookSetTxnID": "0000000000000000", "ReferenceCount": "6", "Fee": "100000000", "HookCallbackFee": "200000000", "LedgerEntryType": "HookDefinition", "index": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0"}
Fields
Section titled “Fields”A HookDefinition
object has the following fields:
Field | JSON Type | [Internal Type][] | Required? | Description |
---|---|---|---|---|
HookHash | String | Hash256 | Yes | The unique identifier of the hook. |
HookOn | String | Hash256 | Yes | The transaction/s on which the hook is triggered. |
HookCanEmit | String | Hash256 | No | The transaction/s which the hook can emit. |
HookNamespace | String | Hash256 | Yes | The namespace of the hook. |
HookParameters | String | Vector | Yes | The parameters that the hook accepts. |
HookApiVersion | Number | UInt16 | Yes | The version of the hook API that the hook uses. |
CreateCode | String | VL | Yes | The code that is executed when the hook is created. |
HookSetTxnID | String | Hash256 | Yes | The ID of the transaction that set the hook. |
ReferenceCount | String | UInt64 | Yes | The number of references to the hook. |
Fee | String | Amount | Yes | The fee for executing the hook. |
HookCallbackFee | String | Amount | No | The fee for executing the hook’s callback function. |
LedgerEntryType | String | UInt16 | Yes | The value 0x0043 , mapped to the string HookDefinition , indicates that this object is a HookDefinition object. |
Hook Definition ID Format
Section titled “Hook Definition ID Format”The ID of a HookDefinition
object is the [SHA-512Half][] of the following values, concatenated in order:
- The HookDefinition space key (
0x0044
) - The
HookHash
of the hook