Simulation contexts¶
This is a reference of how the init- and receive-context is specified as JSON, when simulating contract functions locally.
Init context¶
The context accessible in an init function.
Example of context
{
"metadata": {
"slotTime": "2021-01-01T00:00:01Z"
},
"initOrigin": "3uxeCZwa3SxbksPWHwXWxCsaPucZdzNaXsRbkztqUUYRo1MnvF",
"senderPolicies": [{
"identityProvider": 1,
"createdAt": "202012",
"validTo": "202109"
}]
}
metadata
¶
JSON Object containing the chain meta data, see Chain meta data for a reference of the fields.
initOrigin
¶
The account address which triggered the invocation of the init function, by instantiating the smart contract.
Example:
"3uxeCZwa3SxbksPWHwXWxCsaPucZdzNaXsRbkztqUUYRo1MnvF"
Receive context¶
The context accessible in a receive function.
Example of context:
{
"metadata": {
"slotTime": "2021-01-01T00:00:01Z"
},
"invoker": "3uxeCZwa3SxbksPWHwXWxCsaPucZdzNaXsRbkztqUUYRo1MnvF",
"selfAddress": {"index": 0, "subindex": 0},
"selfBalance": "0",
"sender": {
"type": "account",
"address": "3uxeCZwa3SxbksPWHwXWxCsaPucZdzNaXsRbkztqUUYRo1MnvF"
},
"senderPolicies": [{
"identityProvider": 1,
"createdAt": "202012",
"validTo": "202109"
}],
"owner": "3uxeCZwa3SxbksPWHwXWxCsaPucZdzNaXsRbkztqUUYRo1MnvF"
}
metadata
¶
JSON Object containing the chain meta data, see Chain meta data for a reference of the fields.
invoker
¶
The account address which made the transaction triggering the invocation of the receive function, by updating a smart contract instance.
Example:
"3uxeCZwa3SxbksPWHwXWxCsaPucZdzNaXsRbkztqUUYRo1MnvF"
sender
¶
The address of the sender of the message triggering the receive function. Can be either a smart contract instance or an account address, given as a JSON object.
Example of account address:
{ "type": "account", "address": "3uxeCZwa3SxbksPWHwXWxCsaPucZdzNaXsRbkztqUUYRo1MnvF" }
Example of contract address:
{ "type": "contract", "address": { "index": 0, "subindex": 0 } }
owner
¶
JSON string containing the account address of the owner of the smart contract instance.
Example:
"3uxeCZwa3SxbksPWHwXWxCsaPucZdzNaXsRbkztqUUYRo1MnvF"
selfAddress
¶
JSON object describing the contract address of the current smart contract
instance.
Must contain the index
and subindex
fields with JSON numbers.
Example:
{ "index": 0, "subindex": 0 }
selfBalance
¶
A JSON string with the balance of the smart contract instance in micro GTU.
Example:
"100"
Chain meta data¶
Both the init- and receive-context contains a metadata
section containing
information of the blockchain at the block the smart contract is executed in.
Below we refer to this block as the current block.
Example:
{
"slotTime": "2021-01-01T00:00:01Z"
}
Policy¶
Both the init- and receive-context contain a list of policies of the sender. Such a policy is represented as a JSON Object.
Example:
{
"identityProvider": 1,
"createdAt": "202012",
"validTo": "202109"
}
identityProvider
¶
The id of the identity provider as a JSON number.
createdAt
¶
The year and month of the date this policy was created at, given as a JSON string in the format YYYYMM.
validTo
¶
The year and month of the date this policy is valid to, given as a JSON string in the format YYYYMM.