Hello, invocation activated in testnet, and there is the first call:
{
"type": 16,
"id": "AEqxpGXRw7W1br3oLN9CtbVTKKZ3gPnN8vu7VZrBe3WP",
"sender": "3MrDis17gyNSusZDg8Eo1PuFnm5SQMda3gu",
"senderPublicKey": "2AqMAWBPbTxYdHoE9vsELWTrCFjhEJdKAACt5UEjFGLu",
"fee": 500000,
"feeAssetId": null,
"timestamp": 1553695487582,
"proofs": [
"5QzXSgkNxZdjNmR1CZfbfFWkLheUbBKjYXTuaP24n9kPjDsxQ1stztxpUP6XPK8n2CZcQn3457zk8DJy9GTLbSgu"
],
"version": 1,
"dappAddress": "3MqznbvHM2CqEVG6HKpWQmmXrWWHgBmFcAJ",
"call": {
"function": "foo",
"args": [
{
"type": "integer",
"value": 42
}
]
},
"payment": [],
"height": 554877
}
Let’s look at the app script:
{
"STDLIB_VERSION": 3,
"SCRIPT_TYPE": "ACCOUNT",
"CONTENT_TYPE": "DAPP",
"script": "{-#STDLIB_VERSION 3#-}\n{-#SCRIPT_TYPE ACCOUNT#-}\n{-#CONTENT_TYPE DAPP#-}\n\n\[email protected](inv)\nfunc foo (a) = WriteSet(cons(DataEntry(\"a\", a), cons(DataEntry(\"sender\", inv.caller.bytes), nil)))\n\n"
}
As you can see, foo() changes data state of the app at 3MrDis17gyNSusZDg8Eo1PuFnm5SQMda3gu, we can see result:
[
{
"key": "a",
"type": "string",
"value": "OOO"
},
{
"key": "sender",
"type": "binary",
"value": "base64:AVQZRkg4QetOTEjZiZV1VJP1JbG360zlf3o="
}
]
Problem
For now there is no way you can track invocation actions, at all, you only see ordinar transactions:
Conclusion
- no independent audit is possible without a fully implemented InvokeScriptTransaction mechanic
- services like independent explorers (eg. w8io.ru) will be shutdown, because InvokeScriptTransaction mechanic is too hard to implement independently
- no one can debug what is happeninig if something goes wrong
- you even can not see who calls your app
- and it is even more frustrating than: Smart Assets Proposal
Proposal
- make it possible to track data changes and payments without implementing InvokeScriptTransaction mechanic (all information should be available by (/transactions/info/)
- make incoming transactions visible at the application address