Upon execution of ABI calls, i.e scripts being executed, a JSON object representing a list of receipts will be returned to the caller. Below is the JSON specification of the possible receipt types. The root will be receipts_root which will include an array of receipts.
{
"receipts_list":[
{
"type":"<receipt_type>",
...
},
...
]
} All receipts will have a type property:
type: String; the type of the receipt. Can be one of:
Then, each receipt type will have its own properties. Some of these properties are related to the FuelVM's registers, as specified in more detail here .
Important note: For the JSON representation of receipts, we represent 64-bit unsigned integers as a JSON String due to limitations around the type Number in the JSON specification, which only supports numbers up to 2^{53-1}, while the FuelVM's registers hold values up to 2^64.
type: Panic. id: Hexadecimal string representation of the 256-bit (32-byte) contract ID of the current context if in an internal context. null otherwise. reason: Optional decimal string representation of an 8-bit unsigned integer; panic reason.
Not included in canonical receipt form. pc: Hexadecimal string representation of a 64-bit unsigned integer; value of register $pc. is: Hexadecimal string representation of a 64-bit unsigned integer; value of register $is. contractId: Optional hexadecimal string representation of the 256-bit (32-byte) contract ID if applicable. null otherwise.
Not included in canonical receipt form. Primary use is for access-list estimation by SDK. {
"type": "Panic",
"id": "0x39150017c9e38e5e280432d546fae345d6ce6d8fe4710162c2e3a95a6faff051",
"reason": "1",
"pc": "0xffffffffffffffff",
"is": "0xfffffffffffffffe",
"contractId": "0x0000000000000000000000000000000000000000000000000000000000000000"
}Return Receipt type: Return. id: Hexadecimal string representation of the 256-bit (32-byte) contract ID of the current context if in an internal context; null otherwise. val: Decimal string representation of a 64-bit unsigned integer; value of register $rA. pc: Hexadecimal string representation of a 64-bit unsigned integer; value of register $pc. is: Hexadecimal string representation of a 64-bit unsigned integer; value of register $is. {
"type": "Return",
"id": "0x39150017c9e38e5e280432d546fae345d6ce6d8fe4710162c2e3a95a6faff051",
"val": "18446744073709551613",
"pc": "0xffffffffffffffff",
"is": "0xfffffffffffffffe"
}Call Receipt type: Call. id: Hexadecimal string representation of the 256-bit (32-byte) contract ID of the current context if in an internal context; null otherwise. to: Hexadecimal representation of the 256-bit (32-byte) contract ID of the callee. amount: Decimal string representation of a 64-bit unsigned integer; amount of coins to forward. asset_id: Hexadecimal string representation of the 256-bit (32-byte) asset ID of coins to forward. gas: Decimal string representation of a 64-bit unsigned integer; amount gas to forward; value in register $rD. param1: Hexadecimal string representation of a 64-bit unsigned integer; first parameter, holds the function selector. param2: Hexadecimal string representation of a 64-bit unsigned integer; second parameter, typically used for the user-specified input to the ABI function being selected. pc: Hexadecimal string representation of a 64-bit unsigned integer; value of register $pc. is: Hexadecimal string representation of a 64-bit unsigned integer; value of register $is. {
"type": "Call",
"id": "0x39150017c9e38e5e280432d546fae345d6ce6d8fe4710162c2e3a95a6faff051",
"to": "0x1c98ff5d121a6d5afc8135821acb3983e460ef0590919266d620bfc7b9b6f24d",
"amount": "10000",
"asset_id": "0xa5149ac6064222922eaa226526b0d853e7871e28c368f6afbcfd60a6ef8d6e61",
"gas": "500",
"param1": "0x28f5c28f5c28f5c",
"param2": "0x68db8bac710cb",
"pc": "0xffffffffffffffff",
"is": "0xfffffffffffffffe"
}Log Receipt type: Log. id: Hexadecimal string representation of the 256-bit (32-byte) contract ID of the current context if in an internal context. null otherwise. ra: Decimal string representation of a 64-bit unsigned integer; value of register $rA. rb: Decimal string representation of a 64-bit unsigned integer; value of register $rB. rc: Decimal string representation of a 64-bit unsigned integer; value of register $rC. rd: Decimal string representation of a 64-bit unsigned integer; value of register $rD. pc: Hexadecimal string representation of a 64-bit unsigned integer; value of register $pc. is: Hexadecimal string representation of a 64-bit unsigned integer; value of register $is. {
"type": "Log",
"id": "0x39150017c9e38e5e280432d546fae345d6ce6d8fe4710162c2e3a95a6faff051",
"ra": "1844674407370",
"rb": "1844674407371",
"rc": "1844674407372",
"rd": "1844674407373",
"pc": "0xffffffffffffffff",
"is": "0xfffffffffffffffe"
}Mint Receipt type: Mint. sub_id: Hexadecimal string representation of the 256-bit (32-byte) asset sub identifier ID; derived from register $rB. contract_id: Hexadecimal string representation of the 256-bit (32-byte) contract ID of the current context. val: Decimal string representation of a 64-bit unsigned integer; value of register $rA. pc: Hexadecimal string representation of a 64-bit unsigned integer; value of register $pc. is: Hexadecimal string representation of a 64-bit unsigned integer; value of register $is. {
"type": "Mint",
"sub_id": "0x39150017c9e38e5e280432d546fae345d6ce6d8fe4710162c2e3a95a6faff051",
"contract_id": "0x39150017c9e38e5e280432d546fae345d6ce6d8fe4710162c2e3a95a6faff051",
"val": "18446744073709551613",
"pc": "0xffffffffffffffff",
"is": "0xfffffffffffffffe"
}Burn Receipt type: Burn. sub_id: Hexadecimal string representation of the 256-bit (32-byte) asset sub identifier ID; derived from register $rB. contract_id: Hexadecimal string representation of the 256-bit (32-byte) contract ID of the current context. val: Decimal string representation of a 64-bit unsigned integer; value of register $rA. pc: Hexadecimal string representation of a 64-bit unsigned integer; value of register $pc. is: Hexadecimal string representation of a 64-bit unsigned integer; value of register $is. {
"type": "Burn",
"sub_id": "0x39150017c9e38e5e280432d546fae345d6ce6d8fe4710162c2e3a95a6faff051",
"contract_id": "0x39150017c9e38e5e280432d546fae345d6ce6d8fe4710162c2e3a95a6faff051",
"val": "18446744073709551613",
"pc": "0xffffffffffffffff",
"is": "0xfffffffffffffffe"
}LogData Receipt type: LogData. id: Hexadecimal string representation of the 256-bit (32-byte) contract ID of the current context if in an internal context. null otherwise. ra: Decimal string representation of a 64-bit unsigned integer; value of register $rA rb: Decimal string representation of a 64-bit unsigned integer; value of register $rB ptr: Hexadecimal string representation of a 64-bit unsigned integer; value of register $rC. len: Decimal string representation of a 64-bit unsigned integer; value of register $rD. digest: Hexadecimal string representation of the 256-bit (32-byte) hash of MEM[$rC, $rD]. data: Hexadecimal string representation of the value of the memory range MEM[$rC, $rD]. pc: Hexadecimal string representation of a 64-bit unsigned integer; value of register $pc. is: Hexadecimal string representation of a 64-bit unsigned integer; value of register $is. {
"type": "LogData",
"id": "0x39150017c9e38e5e280432d546fae345d6ce6d8fe4710162c2e3a95a6faff051",
"ra": "1844674407370",
"rb": "1844674407371",
"ptr": "0x1ad7f29abcc",
"len": "66544",
"digest": "0xd28b78894e493c98a196aa51b432b674e4813253257ed9331054ee8d6813b3aa",
"pc": "0xffffffffffffffff",
"data": "0xa7c5ac471b47",
"is": "0xfffffffffffffffe"
}ReturnData Receipt type: ReturnData. id: Hexadecimal string representation of the 256-bit (32-byte) contract ID of the current context if in an internal context. null otherwise. ptr: Hexadecimal string representation of a 64-bit unsigned integer; value of register $rA. len: Decimal string representation of a 64-bit unsigned integer; value of register $rB. digest: Hexadecimal string representation of 256-bit (32-byte), hash of MEM[$rA, $rB]. data: Hexadecimal string representation of the value of the memory range MEM[$rA, $rB]. pc: Hexadecimal string representation of a 64-bit unsigned integer; value of register $pc. is: Hexadecimal string representation of a 64-bit unsigned integer; value of register $is. {
"type": "ReturnData",
"id": "0x39150017c9e38e5e280432d546fae345d6ce6d8fe4710162c2e3a95a6faff051",
"ptr": "0x1ad7f29abcc",
"len": "1844",
"digest": "0xd28b78894e493c98a196aa51b432b674e4813253257ed9331054ee8d6813b3aa",
"pc": "0xffffffffffffffff",
"data": "0xa7c5ac471b47",
"is": "0xfffffffffffffffe"
}Revert Receipt type: Revert. id: Hexadecimal string representation of the 256-bit (32-byte) contract ID of the current context if in an internal context. null otherwise. val: Decimal string representation of a 64-bit unsigned integer; value of register $rA. pc: Hexadecimal string representation of a 64-bit unsigned integer; value of register $pc. is: Hexadecimal string representation of a 64-bit unsigned integer; value of register $is. {
"type": "Revert",
"id": "0x39150017c9e38e5e280432d546fae345d6ce6d8fe4710162c2e3a95a6faff051",
"val": "1844674407372",
"pc": "0xffffffffffffffff",
"is": "0xfffffffffffffffe"
}Transfer Receipt type: Transfer. id: Hexadecimal string representation of the 256-bit (32-byte) contract ID of the current context if in an internal context. null otherwise. to: Hexadecimal string representation of the 256-bit (32-byte) contract ID of the recipient contract. amount: Decimal string representation of a 64-bit unsigned integer; amount of coins to forward. asset_id: Hexadecimal string representation of the 256-bit (32-byte) asset ID of coins to forward. pc: Hexadecimal string representation of a 64-bit unsigned integer; value of register $pc. is: Hexadecimal string representation of a 64-bit unsigned integer; value of register $is. {
"type": "Transfer",
"id": "0x39150017c9e38e5e280432d546fae345d6ce6d8fe4710162c2e3a95a6faff051",
"to": "0x1c98ff5d121a6d5afc8135821acb3983e460ef0590919266d620bfc7b9b6f24d",
"amount": "10000",
"asset_id": "0xa5149ac6064222922eaa226526b0d853e7871e28c368f6afbcfd60a6ef8d6e61",
"pc": "0xffffffffffffffff",
"is": "0xfffffffffffffffe"
}TransferOut Receipt type: TransferOut. id: Hexadecimal string representation of the 256-bit (32-byte) contract ID of the current context if in an internal context. null otherwise. to: Hexadecimal string representation of the 256-bit (32-byte) address to transfer coins to. amount: Decimal string representation of a 64-bit unsigned integer; amount of coins to forward. asset_id: Hexadecimal string representation of the 256-bit (32-byte) asset ID of coins to forward. pc: Hexadecimal string representation of a 64-bit unsigned integer; value of register $pc. is: Hexadecimal string representation of a 64-bit unsigned integer; value of register $is. {
"type": "TransferOut",
"id": "0x39150017c9e38e5e280432d546fae345d6ce6d8fe4710162c2e3a95a6faff051",
"to": "0x1c98ff5d121a6d5afc8135821acb3983e460ef0590919266d620bfc7b9b6f24d",
"amount": "10000",
"asset_id": "0xa5149ac6064222922eaa226526b0d853e7871e28c368f6afbcfd60a6ef8d6e61",
"pc": "0xffffffffffffffff",
"is": "0xfffffffffffffffe"
}ScriptResult Receipt type: ScriptResult. result: Hexadecimal string representation of a 64-bit unsigned integer; 0 if script exited successfully, any otherwise. gas_used: Decimal string representation of a 64-bit unsigned integer; amount of gas consumed by the script. {
"type": "ScriptResult",
"result": "0x00",
"gas_used": "400"
}MessageOut Receipt type: MessageOut. sender: Hexadecimal string representation of the 256-bit (32-byte) address of the message sender: MEM[$fp, 32]. recipient: Hexadecimal string representation of the 256-bit (32-byte) address of the message recipient: MEM[$rA, 32]. amount: Hexadecimal string representation of a 64-bit unsigned integer; value of register $rD. nonce: Hexadecimal string representation of the 256-bit (32-byte) message nonce as described here . len: Decimal string representation of a 16-bit unsigned integer; value of register $rC. digest: Hexadecimal string representation of 256-bit (32-byte), hash of MEM[$rB, $rC]. data: Hexadecimal string representation of the value of the memory range MEM[$rB, $rC]. {
"type": "MessageOut",
"sender": "0x38e5e280432d546fae345d6ce6d8fe4710162c2e3a95a6faff05139150017c9e",
"recipient": "0x4710162c2e3a95a6faff05139150017c9e38e5e280432d546fae345d6ce6d8fe",
"amount": "0xe6d8fe4710162c2e",
"nonce": "0x47101017c9e38e5e280432d546fae345d6ce6d8fe4710162c2e3a95a6faff051",
"len": "65535",
"digest": "0xd28b78894e493c98a196aa51b432b674e4813253257ed9331054ee8d6813b3aa",
"data": "0xa7c5ac471b47"
}