getapplicationlog method
Returns the contract event information based on the specified txid. The contract event information is stored under the ApplicationLogs directory.
note
You must install the plugins ApplicationLogs and LevelDBStore before you can invoke the method.
#
Parameter Descriptiontxid: Transaction ID
trigger type: Optional. It has the following options:
- OnPersist
- PostPersist
- Application
- Verification
- System: OnPersist | PostPersist
- All: OnPersist | PostPersist | Verification | Application
It defaults to All. You can specify a trigger type.
#
ExampleRequest body:
{ "jsonrpc": "2.0", "id": 1, "method": "getapplicationlog", "params": [ "0x7da6ae7ff9d0b7af3d32f3a2feb2aa96c2a27ef8b651f9a132cfaad6ef20724c" ]}
This transaction transfers 100 GAS from NgaiKFjurmNmiRzDRQGs44yzByXuSkdGPF to NikhQp1aAD1YFCiwknhM5LQQebj4464bCJ.
Response body 1:
{ "jsonrpc": "2.0", "id": 1, "result": { "txid": "0x7da6ae7ff9d0b7af3d32f3a2feb2aa96c2a27ef8b651f9a132cfaad6ef20724c", "executions": [ { "trigger": "Application", "vmstate": "HALT", "exception": null, "gasconsumed": "9999540", "stack": [], "notifications": [ { "contract": "0x70e2301955bf1e74cbb31d18c2f96972abadb328", "eventname": "Transfer", "state": { "type": "Array", "value": [ { "type": "ByteString", "value": "4rZTInKT6ZxPKQbVNVOrtKZy34Y=" }, { "type": "ByteString", "value": "+on7LBTfD1nd3wT25WUX8rNKrus=" }, { "type": "Integer", "value": "10000000000" } ] } } ] } ] }}
Response description:
txid: Transaction ID.
trigger: Triggers.
vmstate: VM execution state. HALT represents success, and FAULT represents failure.
gasconsumed: The transaction fee, which means the GAS consumed in the transaction execution.
notifications: The notification sent by the smart contract. If no notifications is returned it indicates the transfer is not successful. See the Note below.
contract: The contract sending the notification. Here is GasToken.
eventname: Event name of the notification.
state: Notification content, where ByteString is Base64-encoded wallet address and can be converted at https://neo.org/converter/index.
note
This example shows the log of a successful token transfer, however, in case of a failed transfer or NeoVM exception, the outcomes can be:
Failed transfer: no Transfer notification event is returned, execution ends in a
HALT
state with a stack value ofFalse
.NeoVM exception: a Transfer notification event may or may not be returned, but execution ends in a
FAULT
state.