(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.
A Hook
object has the following fields:
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.
The following fields are used in the hook object:
HookHash
String
Hash256
The hash of the hook.
HookParameters
Array
Array
The parameters of the hook.
Flags
Number
UInt32
Additional flags for the hook.
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