Hook
(Added by the [Hooks amendment][].)
A Hook
object describes a smart contract, which can be triggered by a transaction to perform predefined operations. The operations are defined by the Hook
creator and can interact with the ledger and transactions.
Example JSON
Section titled “Example JSON”{ "Account": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo", "OwnerNode": "0000000000000000", "PreviousTxnID": "5463C6E08862A1FAE5EDAC12D70ADB16546A1F674930521295BC082494B62924", "PreviousTxnLgrSeq": 6, "Hooks": [ { "HookHash": "46060241FABCF692D4D934BA2A6C4427CD4279083E38C77CBE642243E43BE291", "HookParameters": [] } ], "LedgerEntryType": "Hook", "index": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0"}
Fields
Section titled “Fields”A Hook
object has the following fields:
Field | JSON Type | [Internal Type][] | Required? | Description |
---|---|---|---|---|
Account | String | Account | Yes | The account that created the Hook. |
OwnerNode | String | UInt64 | Yes | A hint indicating which page of the owner’s directory links to this object, in case the directory consists of multiple pages. |
PreviousTxnID | String | Hash256 | Yes | The ID of the transaction that most recently modified this object. |
PreviousTxnLgrSeq | Number | UInt32 | Yes | The [ledger index][] of the ledger that contains the transaction that most recently modified this object. |
Hooks | Array | Array | Yes | An array of hook objects. Each object has the following fields: HookHash , CreateCode , HookGrants , HookNamespace , HookParameters , HookOn , HookApiVersion , Flags . |
LedgerEntryType | String | UInt16 | Yes | The value 0x0043 , mapped to the string Hook , indicates that this object is a Hook object. |
Hook Fields
Section titled “Hook Fields”The following fields are used in the hook object:
Field | JSON Type | Internal Type | Description |
---|---|---|---|
HookHash | String | Hash256 | The hash of the hook. |
HookParameters | Array | Array | The parameters of the hook. |
Flags | Number | UInt32 | Additional flags for the hook. |
Hook ID Format
Section titled “Hook ID Format”The ID of a Hook
object is the [SHA-512Half][] of the following values, concatenated in order:
- The Hook space key (
0x0048
) - The AccountID of the sender of the [SetHook transaction][] that created the
Hook
object