Skip to content

Latest commit

 

History

History
43 lines (32 loc) · 2.18 KB

File metadata and controls

43 lines (32 loc) · 2.18 KB
description
An Invoke transaction is used to call a hook, which is a piece of code that is executed in response to certain ledger operations.

Invoke

[Source]

(Added by the [Hooks amendment][].)

Example

{
    "TransactionType": "Invoke",
    "Account": "rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm",
    "Blob": "697066733A2F2F4445414442454546",
    "Destination": "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe"
}
Field JSON Type [Internal Type][] Description
Account String AccountID The address of the account that is invoking the hook.
Blob String Blob (Optional) A blob of data that is passed to the hook. (512 byte max)
Destination String AccountID (Optional) The address of the account that is the target of the hook.
InvoiceID String Hash256 (Optional) Arbitrary 256-bit hash representing a specific reason or identifier for this payment.

Special Transaction Cost

The Invoke transaction has a standard transaction cost, plus an additional cost based on the size of the Blob and HookParameters fields.

Error Cases

Besides errors that can occur for all transactions, Invoke transactions can result in the following transaction result codes:

Error Code Description
temDISABLED Occurs if the Hooks amendment is not enabled.
temMALFORMED Occurs if the Blob field is larger than 128 KiB.
terNO_ACCOUNT Occurs if the sending account or the destination account does not exist.