abel-ghost-sdk 0.0.4 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/generated/AbelReaderSDK.d.ts +506 -17
- package/dist/generated/AbelReaderSDK.js +254 -2
- package/dist/index.d.ts +7 -1
- package/dist/index.js +23 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getArc56ReturnValue, getABIStructFromABITuple } from '@algorandfoundation/algokit-utils/types/app-arc56';
|
|
2
2
|
import { AppClient as _AppClient, } from '@algorandfoundation/algokit-utils/types/app-client';
|
|
3
3
|
import { AppFactory as _AppFactory } from '@algorandfoundation/algokit-utils/types/app-factory';
|
|
4
|
-
export const APP_SPEC = { "name": "AbelReader", "structs": { "AssetTinyLabels": [{ "name": "name", "type": "string" }, { "name": "unitName", "type": "string" }, { "name": "decimals", "type": "uint8" }, { "name": "labels", "type": "string[]" }] }, "methods": [{ "name": "getAssetsTiny", "args": [{ "type": "uint64[]", "name": "assetIds" }, { "type": "uint64", "name": "abelAppId" }], "returns": { "type": "(string,string,uint8,string[])", "struct": "AssetTinyLabels" }, "actions": { "create": ["NoOp"], "call": ["NoOp"] }, "readonly": true, "events": [], "recommendations": {} }, { "name": "get_asset_labels", "args": [{ "type": "asset", "name": "assetId" }], "returns": { "type": "string[]" }, "actions": { "create": ["NoOp"], "call": ["NoOp"] }, "readonly": true, "events": [], "recommendations": {} }], "arcs": [22, 28], "networks": {}, "state": { "schema": { "global": { "ints": 0, "bytes": 0 }, "local": { "ints": 0, "bytes": 0 } }, "keys": { "global": {}, "local": {}, "box": {} }, "maps": { "global": {}, "local": {}, "box": {} } }, "bareActions": { "create": [], "call": ["DeleteApplication", "UpdateApplication"] }, "sourceInfo": { "approval": { "sourceInfo": [{ "pc": [212], "errorMessage": "Bytes has valid prefix" }, { "pc": [8], "errorMessage": "OnCompletion must be NoOp" }, { "pc": [41], "errorMessage": "OnCompletion must be one of UpdateApplication, DeleteApplication && can only call when not creating" }, { "pc": [227, 234, 237], "errorMessage": "asset exists" }, { "pc": [116], "errorMessage": "index access is out of bounds" }, { "pc": [75], "errorMessage": "invalid array length header" }, { "pc": [87], "errorMessage": "invalid number of bytes for arc4.dynamic_array<asset>" }, { "pc": [95, 217], "errorMessage": "invalid number of bytes for arc4.uint64" }, { "pc": [365], "errorMessage": "invalid number of bytes for arc4.uint8" }, { "pc": [243], "errorMessage": "overflow" }], "pcOffsetMethod": "cblocks" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMSAwIDggVE1QTF9VUERBVEFCTEUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjEyCiAgICAvLyBleHBvcnQgY2xhc3MgQWJlbFJlYWRlciBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBieiBtYWluX2FkbWluT25seUA5CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIG11c3QgYmUgTm9PcAogICAgcHVzaGJ5dGVzcyAweGQ1YWIzMzY2IDB4YzJlZDc0M2YgLy8gbWV0aG9kICJnZXRBc3NldHNUaW55KHVpbnQ2NFtdLHVpbnQ2NCkoc3RyaW5nLHN0cmluZyx1aW50OCxzdHJpbmdbXSkiLCBtZXRob2QgImdldF9hc3NldF9sYWJlbHMoYXNzZXQpc3RyaW5nW10iCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBtYXRjaCBnZXRBc3NldHNUaW55IGdldEFzc2V0TGFiZWxzCiAgICBlcnIKCm1haW5fYWRtaW5Pbmx5QDk6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czoxMwogICAgLy8gQGJhcmVtZXRob2QoeyBhbGxvd0FjdGlvbnM6IFsiVXBkYXRlQXBwbGljYXRpb24iLCAiRGVsZXRlQXBwbGljYXRpb24iXSB9KQogICAgaW50Y18wIC8vIDEKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIHNobAogICAgcHVzaGludCA0OCAvLyA0OAogICAgJgogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgICYmCiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIG11c3QgYmUgb25lIG9mIFVwZGF0ZUFwcGxpY2F0aW9uLCBEZWxldGVBcHBsaWNhdGlvbiAmJiBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czoxNQogICAgLy8gbG9nKCIxIikKICAgIHB1c2hieXRlcyAiMSIKICAgIGxvZwogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6MTYKICAgIC8vIGFzc2VydChUZW1wbGF0ZVZhcjx1aW50NjQ+KCJVUERBVEFCTEUiKSA9PT0gMSAmJiBUeG4uc2VuZGVyID09PSBHbG9iYWwuY3JlYXRvckFkZHJlc3MpOwogICAgaW50Y18zIC8vIFRNUExfVVBEQVRBQkxFCiAgICBpbnRjXzAgLy8gMQogICAgPT0KICAgIGJ6IG1haW5fYm9vbF9mYWxzZUAxMwogICAgdHhuIFNlbmRlcgogICAgZ2xvYmFsIENyZWF0b3JBZGRyZXNzCiAgICA9PQogICAgYnogbWFpbl9ib29sX2ZhbHNlQDEzCiAgICBpbnRjXzAgLy8gMQogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6MTMKICAgIC8vIEBiYXJlbWV0aG9kKHsgYWxsb3dBY3Rpb25zOiBbIlVwZGF0ZUFwcGxpY2F0aW9uIiwgIkRlbGV0ZUFwcGxpY2F0aW9uIl0gfSkKICAgIHJldHVybgoKbWFpbl9ib29sX2ZhbHNlQDEzOgogICAgaW50Y18xIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjEzCiAgICAvLyBAYmFyZW1ldGhvZCh7IGFsbG93QWN0aW9uczogWyJVcGRhdGVBcHBsaWNhdGlvbiIsICJEZWxldGVBcHBsaWNhdGlvbiJdIH0pCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czo6QWJlbFJlYWRlci5nZXRBc3NldHNUaW55W3JvdXRpbmddKCkgLT4gdm9pZDoKZ2V0QXNzZXRzVGlueToKICAgIGludGNfMSAvLyAwCiAgICBkdXBuIDMKICAgIHB1c2hieXRlcyAiIgogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6MTkKICAgIC8vIEBhYmltZXRob2QoeyByZWFkb25seTogdHJ1ZSwgb25DcmVhdGU6ICJhbGxvdyIgfSkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cG4gMgogICAgaW50Y18xIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGR1cAogICAgY292ZXIgMgogICAgaW50Y18yIC8vIDgKICAgICoKICAgIHB1c2hpbnQgMiAvLyAyCiAgICArCiAgICBzd2FwCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuZHluYW1pY19hcnJheTxhc3NldD4KICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzIgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC51aW50NjQKICAgIGJ0b2kKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjIxCiAgICAvLyBmb3IgKGxldCBpZHg6IHVpbnQ2NCA9IDA7IGlkeCA8IGFzc2V0SWRzLmxlbmd0aDsgaWR4KyspIHsKICAgIGludGNfMSAvLyAwCgpnZXRBc3NldHNUaW55X3doaWxlX3RvcEAyOgogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6MjEKICAgIC8vIGZvciAobGV0IGlkeDogdWludDY0ID0gMDsgaWR4IDwgYXNzZXRJZHMubGVuZ3RoOyBpZHgrKykgewogICAgZHVwCiAgICBkaWcgMwogICAgPAogICAgYnogZ2V0QXNzZXRzVGlueV9hZnRlcl93aGlsZUAxNAogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6MjIKICAgIC8vIGNvbnN0IGFzc2V0ID0gYXNzZXRJZHNbaWR4XTsKICAgIGRpZyAzCiAgICBleHRyYWN0IDIgMAogICAgZGlnIDEKICAgIGludGNfMiAvLyA4CiAgICAqCiAgICBkdXAyCiAgICBpbnRjXzIgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBidXJ5IDExCiAgICBleHRyYWN0X3VpbnQ2NAogICAgZHVwCiAgICBidXJ5IDYKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjIzCiAgICAvLyBjb25zdCBbXywgZXhpc3RzXSA9IG9wLkFzc2V0UGFyYW1zLmFzc2V0Q3JlYXRvcihhc3NldC5pZCk7CiAgICBhc3NldF9wYXJhbXNfZ2V0IEFzc2V0Q3JlYXRvcgogICAgYnVyeSAxCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czoyNAogICAgLy8gaWYgKCFleGlzdHMpIHsKICAgIGJueiBnZXRBc3NldHNUaW55X2Vsc2VfYm9keUA1CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czo0Ny01MgogICAgLy8gcmV0dXJuIHsKICAgIC8vICAgbmFtZTogIiIsCiAgICAvLyAgIHVuaXRfbmFtZTogIiIsCiAgICAvLyAgIGRlY2ltYWxzOiBuZXcgVWludDgoMCksCiAgICAvLyAgIGxhYmVsczogW10sCiAgICAvLyB9OwogICAgcHVzaGJ5dGVzIDB4MDAwNzAwMDkwMDAwMGIwMDAwMDAwMDAwMDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjI1CiAgICAvLyBsb2coZW5jb2RlQXJjNCh0aGlzLmdldEVtcHR5QXNzZXRUaW55TGFiZWxzKCkpKTsKICAgIGxvZwoKZ2V0QXNzZXRzVGlueV9hZnRlcl9pZl9lbHNlQDEzOgogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6MjEKICAgIC8vIGZvciAobGV0IGlkeDogdWludDY0ID0gMDsgaWR4IDwgYXNzZXRJZHMubGVuZ3RoOyBpZHgrKykgewogICAgZHVwCiAgICBpbnRjXzAgLy8gMQogICAgKwogICAgYnVyeSAxCiAgICBiIGdldEFzc2V0c1Rpbnlfd2hpbGVfdG9wQDIKCmdldEFzc2V0c1RpbnlfZWxzZV9ib2R5QDU6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czoyNwogICAgLy8gY29uc3QgcHY6IHVpbnQ2NCA9IGFiZWxBcHBJZCAhPT0gMCA/IGNvbXBpbGVBcmM0KEFiZWxTdHViKS5jYWxsLmhhc19hc3NldF9sYWJlbCh7IGFwcElkOiBhYmVsQXBwSWQsIGFyZ3M6IFthc3NldC5pZCwgInB2Il0gfSkucmV0dXJuVmFsdWUgOiAwCiAgICBkaWcgMQogICAgYnogZ2V0QXNzZXRzVGlueV90ZXJuYXJ5X2ZhbHNlQDgKICAgIGl0eG5fYmVnaW4KICAgIHB1c2hieXRlcyAweDk3ZjQwYThhIC8vIG1ldGhvZCAiaGFzX2Fzc2V0X2xhYmVsKHVpbnQ2NCxzdHJpbmcpdWludDY0IgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIGRpZyA4CiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgcHVzaGJ5dGVzIDB4MDAwMjcwNzYKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICBpbnRjXzEgLy8gMAogICAgaXR4bl9maWVsZCBPbkNvbXBsZXRpb24KICAgIGRpZyAxCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKICAgIHB1c2hpbnQgNiAvLyBhcHBsCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzEgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIGl0eG5fc3VibWl0CiAgICBpdHhuIExhc3RMb2cKICAgIGR1cAogICAgZXh0cmFjdCA0IDAKICAgIHN3YXAKICAgIGV4dHJhY3QgMCA0CiAgICBwdXNoYnl0ZXMgMHgxNTFmN2M3NQogICAgPT0KICAgIGFzc2VydCAvLyBCeXRlcyBoYXMgdmFsaWQgcHJlZml4CiAgICBkdXAKICAgIGxlbgogICAgaW50Y18yIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWludDY0CiAgICBidG9pCgpnZXRBc3NldHNUaW55X3Rlcm5hcnlfbWVyZ2VAOToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjI5CiAgICAvLyBuYW1lOiBhc3NldC5uYW1lLnRvU3RyaW5nKCksCiAgICBkaWcgNQogICAgZHVwCiAgICBhc3NldF9wYXJhbXNfZ2V0IEFzc2V0TmFtZQogICAgc3dhcAogICAgYnVyeSAxMAogICAgYXNzZXJ0IC8vIGFzc2V0IGV4aXN0cwogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6MzAKICAgIC8vIHVuaXRfbmFtZTogYXNzZXQudW5pdE5hbWUudG9TdHJpbmcoKSwKICAgIGR1cAogICAgYXNzZXRfcGFyYW1zX2dldCBBc3NldFVuaXROYW1lCiAgICBzd2FwCiAgICBidXJ5IDkKICAgIGFzc2VydCAvLyBhc3NldCBleGlzdHMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjMxCiAgICAvLyBkZWNpbWFsczogbmV3IFVpbnQ4KGFzc2V0LmRlY2ltYWxzKSwKICAgIGFzc2V0X3BhcmFtc19nZXQgQXNzZXREZWNpbWFscwogICAgYXNzZXJ0IC8vIGFzc2V0IGV4aXN0cwogICAgaXRvYgogICAgZHVwCiAgICBiaXRsZW4KICAgIGludGNfMiAvLyA4CiAgICA8PQogICAgYXNzZXJ0IC8vIG92ZXJmbG93CiAgICBleHRyYWN0IDcgMQogICAgYnVyeSA5CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czozMgogICAgLy8gbGFiZWxzOiBwdiA9PT0gMCA/IFtdIGFzIHN0cmluZ1tdIDogWyJwdiJdLAogICAgYm56IGdldEFzc2V0c1RpbnlfdGVybmFyeV9mYWxzZUAxMQogICAgcHVzaGJ5dGVzIDB4MDAwMAoKZ2V0QXNzZXRzVGlueV90ZXJuYXJ5X21lcmdlQDEyOgogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6MjgtMzMKICAgIC8vIGNvbnN0IGFzc2V0SW5mbzogQXNzZXRUaW55TGFiZWxzID0gewogICAgLy8gICBuYW1lOiBhc3NldC5uYW1lLnRvU3RyaW5nKCksCiAgICAvLyAgIHVuaXRfbmFtZTogYXNzZXQudW5pdE5hbWUudG9TdHJpbmcoKSwKICAgIC8vICAgZGVjaW1hbHM6IG5ldyBVaW50OChhc3NldC5kZWNpbWFscyksCiAgICAvLyAgIGxhYmVsczogcHYgPT09IDAgPyBbXSBhcyBzdHJpbmdbXSA6IFsicHYiXSwKICAgIC8vIH07CiAgICBkaWcgNwogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGR1cAogICAgbGVuCiAgICBwdXNoaW50IDcgLy8gNwogICAgKwogICAgZGlnIDgKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBkaWcgMQogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHB1c2hieXRlcyAweDAwMDcKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZGlnIDEKICAgIGxlbgogICAgdW5jb3ZlciAzCiAgICArCiAgICBzd2FwCiAgICBkaWcgMTIKICAgIGNvbmNhdAogICAgc3dhcAogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czozNAogICAgLy8gbG9nKGVuY29kZUFyYzQoYXNzZXRJbmZvKSk7CiAgICBsb2cKICAgIGIgZ2V0QXNzZXRzVGlueV9hZnRlcl9pZl9lbHNlQDEzCgpnZXRBc3NldHNUaW55X3Rlcm5hcnlfZmFsc2VAMTE6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czozMgogICAgLy8gbGFiZWxzOiBwdiA9PT0gMCA/IFtdIGFzIHN0cmluZ1tdIDogWyJwdiJdLAogICAgcHVzaGJ5dGVzIDB4MDAwMTAwMDIwMDAyNzA3NgogICAgYiBnZXRBc3NldHNUaW55X3Rlcm5hcnlfbWVyZ2VAMTIKCmdldEFzc2V0c1RpbnlfdGVybmFyeV9mYWxzZUA4OgogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6MjcKICAgIC8vIGNvbnN0IHB2OiB1aW50NjQgPSBhYmVsQXBwSWQgIT09IDAgPyBjb21waWxlQXJjNChBYmVsU3R1YikuY2FsbC5oYXNfYXNzZXRfbGFiZWwoeyBhcHBJZDogYWJlbEFwcElkLCBhcmdzOiBbYXNzZXQuaWQsICJwdiJdIH0pLnJldHVyblZhbHVlIDogMAogICAgaW50Y18xIC8vIDAKICAgIGIgZ2V0QXNzZXRzVGlueV90ZXJuYXJ5X21lcmdlQDkKCmdldEFzc2V0c1RpbnlfYWZ0ZXJfd2hpbGVAMTQ6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czoxOQogICAgLy8gQGFiaW1ldGhvZCh7IHJlYWRvbmx5OiB0cnVlLCBvbkNyZWF0ZTogImFsbG93IiB9KQogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUwMDA3MDAwOTAwMDAwYjAwMDAwMDAwMDAwMAogICAgbG9nCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgoKLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6OkFiZWxSZWFkZXIuZ2V0QXNzZXRMYWJlbHNbcm91dGluZ10oKSAtPiB2b2lkOgpnZXRBc3NldExhYmVsczoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjQwCiAgICAvLyBAYWJpbWV0aG9kKHsgcmVhZG9ubHk6IHRydWUsIG9uQ3JlYXRlOiAiYWxsb3ciICwgbmFtZTogImdldF9hc3NldF9sYWJlbHMiLCByZXNvdXJjZUVuY29kaW5nOiAiaW5kZXgiIH0pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBsZW4KICAgIGludGNfMCAvLyAxCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ4CiAgICBwdXNoYnl0ZXMgMHgxNTFmN2M3NTAwMDAKICAgIGxvZwogICAgaW50Y18wIC8vIDEKICAgIHJldHVybgo=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CyAEAQAIADEbQQAaMRkURIICBNWrM2YEwu10PzYaAI4CACIBSQAiMRmQgTAaMRgQRIABMbAlIhJBAAoxADIJEkEAAiJDI0MjRwOAADYaAUcCI1lJTgIkC4ECCEwVEkQ2GgJJFSQSRBcjSUsDDEEA6EsDVwIASwEkC0okWEULW0lFBnELRQFAABiADQAHAAkAAAsAAAAAAACwSSIIRQFC/8hLAUEArrGABJf0CoqyGksIshqABAACcHayGiOyGUsBshiBBrIQI7IBs7Q+SVcEAExXAASABBUffHUSREkVJBJEF0sFSXEETEUKRElxA0xFCURxAUQWSZMkDkRXBwFFCUAARIACAABLB0kVFlcGAkxQSRWBBwhLCEkVFlcGAkxQSwEWVwYCgAIAB0xQSwEVTwMITEsMUEwWVwYCUE8CUExQTFCwQv9SgAgAAQACAAJwdkL/syNC/4qAERUffHUABwAJAAALAAAAAAAAsCJDNhoBFSISRIAGFR98dQAAsCJD", "clear": "C4EBQw==" }, "events": [], "templateVariables": { "UPDATABLE": { "type": "AVMUint64" } } };
|
|
4
|
+
export const APP_SPEC = { "name": "AbelReader", "structs": { "AssetTinyLabels": [{ "name": "name", "type": "string" }, { "name": "unitName", "type": "string" }, { "name": "decimals", "type": "uint8" }, { "name": "labels", "type": "string[]" }], "BalanceInfo": [{ "name": "balance", "type": "uint64" }, { "name": "minBalance", "type": "uint64" }], "BlockTimeAndTc": [{ "name": "ts", "type": "uint32" }, { "name": "tc", "type": "uint64" }] }, "methods": [{ "name": "getBalanceInfo", "args": [{ "type": "address[]", "name": "accounts" }], "returns": { "type": "(uint64,uint64)", "struct": "BalanceInfo" }, "actions": { "create": ["NoOp"], "call": ["NoOp"] }, "readonly": true, "events": [], "recommendations": {} }, { "name": "getAssetsTiny", "args": [{ "type": "uint64[]", "name": "assetIds" }, { "type": "uint64", "name": "abelAppId" }], "returns": { "type": "(string,string,uint8,string[])", "struct": "AssetTinyLabels" }, "actions": { "create": ["NoOp"], "call": ["NoOp"] }, "readonly": true, "events": [], "recommendations": {} }, { "name": "get_asset_labels", "args": [{ "type": "asset", "name": "assetId" }], "returns": { "type": "string[]" }, "actions": { "create": ["NoOp"], "call": ["NoOp"] }, "readonly": true, "events": [], "recommendations": {} }, { "name": "getBlockTimesAndTc", "args": [{ "type": "uint64", "name": "firstRound" }, { "type": "uint64", "name": "lastRound" }], "returns": { "type": "(uint32,uint64)", "struct": "BlockTimeAndTc" }, "actions": { "create": ["NoOp"], "call": ["NoOp"] }, "readonly": true, "events": [], "recommendations": {} }], "arcs": [22, 28], "networks": {}, "state": { "schema": { "global": { "ints": 0, "bytes": 0 }, "local": { "ints": 0, "bytes": 0 } }, "keys": { "global": {}, "local": {}, "box": {} }, "maps": { "global": {}, "local": {}, "box": {} } }, "bareActions": { "create": [], "call": ["DeleteApplication", "UpdateApplication"] }, "sourceInfo": { "approval": { "sourceInfo": [{ "pc": [339], "errorMessage": "Bytes has valid prefix" }, { "pc": [8], "errorMessage": "OnCompletion must be NoOp" }, { "pc": [55], "errorMessage": "OnCompletion must be one of UpdateApplication, DeleteApplication && can only call when not creating" }, { "pc": [354, 361, 364], "errorMessage": "asset exists" }, { "pc": [115, 243], "errorMessage": "index access is out of bounds" }, { "pc": [84, 202], "errorMessage": "invalid array length header" }, { "pc": [96], "errorMessage": "invalid number of bytes for arc4.dynamic_array<account>" }, { "pc": [214], "errorMessage": "invalid number of bytes for arc4.dynamic_array<asset>" }, { "pc": [222, 344, 511, 520], "errorMessage": "invalid number of bytes for arc4.uint64" }, { "pc": [492], "errorMessage": "invalid number of bytes for arc4.uint8" }, { "pc": [370, 539], "errorMessage": "overflow" }], "pcOffsetMethod": "cblocks" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMSAwIDggMzIgVE1QTF9VUERBVEFCTEUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjM1CiAgICAvLyBleHBvcnQgY2xhc3MgQWJlbFJlYWRlciBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4biBOdW1BcHBBcmdzCiAgICBieiBtYWluX2FkbWluT25seUAxMQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBtdXN0IGJlIE5vT3AKICAgIHB1c2hieXRlc3MgMHg0ODc3YTk2NyAweGQ1YWIzMzY2IDB4YzJlZDc0M2YgMHhhNzBlNjJhMCAvLyBtZXRob2QgImdldEJhbGFuY2VJbmZvKGFkZHJlc3NbXSkodWludDY0LHVpbnQ2NCkiLCBtZXRob2QgImdldEFzc2V0c1RpbnkodWludDY0W10sdWludDY0KShzdHJpbmcsc3RyaW5nLHVpbnQ4LHN0cmluZ1tdKSIsIG1ldGhvZCAiZ2V0X2Fzc2V0X2xhYmVscyhhc3NldClzdHJpbmdbXSIsIG1ldGhvZCAiZ2V0QmxvY2tUaW1lc0FuZFRjKHVpbnQ2NCx1aW50NjQpKHVpbnQzMix1aW50NjQpIgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgbWF0Y2ggZ2V0QmFsYW5jZUluZm8gZ2V0QXNzZXRzVGlueSBnZXRBc3NldExhYmVscyBnZXRCbG9ja1RpbWVzQW5kVGMKICAgIGVycgoKbWFpbl9hZG1pbk9ubHlAMTE6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czozNgogICAgLy8gQGJhcmVtZXRob2QoeyBhbGxvd0FjdGlvbnM6IFsiVXBkYXRlQXBwbGljYXRpb24iLCAiRGVsZXRlQXBwbGljYXRpb24iXSB9KQogICAgaW50Y18wIC8vIDEKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIHNobAogICAgcHVzaGludCA0OCAvLyA0OAogICAgJgogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgICYmCiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIG11c3QgYmUgb25lIG9mIFVwZGF0ZUFwcGxpY2F0aW9uLCBEZWxldGVBcHBsaWNhdGlvbiAmJiBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czozOAogICAgLy8gYXNzZXJ0KFRlbXBsYXRlVmFyPHVpbnQ2ND4oIlVQREFUQUJMRSIpID09PSAxICYmIFR4bi5zZW5kZXIgPT09IEdsb2JhbC5jcmVhdG9yQWRkcmVzcyk7CiAgICBpbnRjIDQgLy8gVE1QTF9VUERBVEFCTEUKICAgIGludGNfMCAvLyAxCiAgICA9PQogICAgYnogbWFpbl9ib29sX2ZhbHNlQDE1CiAgICB0eG4gU2VuZGVyCiAgICBnbG9iYWwgQ3JlYXRvckFkZHJlc3MKICAgID09CiAgICBieiBtYWluX2Jvb2xfZmFsc2VAMTUKICAgIGludGNfMCAvLyAxCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czozNgogICAgLy8gQGJhcmVtZXRob2QoeyBhbGxvd0FjdGlvbnM6IFsiVXBkYXRlQXBwbGljYXRpb24iLCAiRGVsZXRlQXBwbGljYXRpb24iXSB9KQogICAgcmV0dXJuCgptYWluX2Jvb2xfZmFsc2VAMTU6CiAgICBpbnRjXzEgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6MzYKICAgIC8vIEBiYXJlbWV0aG9kKHsgYWxsb3dBY3Rpb25zOiBbIlVwZGF0ZUFwcGxpY2F0aW9uIiwgIkRlbGV0ZUFwcGxpY2F0aW9uIl0gfSkKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjpBYmVsUmVhZGVyLmdldEJhbGFuY2VJbmZvW3JvdXRpbmddKCkgLT4gdm9pZDoKZ2V0QmFsYW5jZUluZm86CiAgICBpbnRjXzEgLy8gMAogICAgcHVzaGJ5dGVzICIiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czo0MQogICAgLy8gQGFiaW1ldGhvZCh7IHJlYWRvbmx5OiB0cnVlLCBvbkNyZWF0ZTogImFsbG93IiB9KQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwbiAyCiAgICBpbnRjXzEgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgZHVwCiAgICBjb3ZlciAyCiAgICBpbnRjXzMgLy8gMzIKICAgICoKICAgIHB1c2hpbnQgMiAvLyAyCiAgICArCiAgICBzd2FwCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuZHluYW1pY19hcnJheTxhY2NvdW50PgogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6NDMKICAgIC8vIGZvciAobGV0IGlkeDogdWludDY0ID0gMDsgaWR4IDwgYWNjb3VudHMubGVuZ3RoOyBpZHgrKykgewogICAgaW50Y18xIC8vIDAKCmdldEJhbGFuY2VJbmZvX3doaWxlX3RvcEAyOgogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6NDMKICAgIC8vIGZvciAobGV0IGlkeDogdWludDY0ID0gMDsgaWR4IDwgYWNjb3VudHMubGVuZ3RoOyBpZHgrKykgewogICAgZHVwCiAgICBkaWcgMgogICAgPAogICAgYnogZ2V0QmFsYW5jZUluZm9fYWZ0ZXJfd2hpbGVANwogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6NDQKICAgIC8vIGNvbnN0IGFjY291bnQgPSBhY2NvdW50c1tpZHhdOwogICAgZGlnIDIKICAgIGV4dHJhY3QgMiAwCiAgICBkaWcgMQogICAgaW50Y18zIC8vIDMyCiAgICAqCiAgICBpbnRjXzMgLy8gMzIKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgZHVwCiAgICBidXJ5IDYKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjQ1CiAgICAvLyBjb25zdCBiYWxhbmNlID0gb3AuYmFsYW5jZShhY2NvdW50KTsKICAgIGJhbGFuY2UKICAgIGR1cAogICAgYnVyeSA1CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czo0NgogICAgLy8gaWYgKGJhbGFuY2UgPiAwKSB7CiAgICBieiBnZXRCYWxhbmNlSW5mb19lbHNlX2JvZHlANQogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6NDcKICAgIC8vIGNvbnN0IG1pbkJhbGFuY2UgPSBvcC5taW5CYWxhbmNlKGFjY291bnQpOwogICAgZGlnIDQKICAgIG1pbl9iYWxhbmNlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czo0OAogICAgLy8gY29uc3QgYmFsYW5jZUluZm86IEJhbGFuY2VJbmZvID0geyBiYWxhbmNlLCBtaW5CYWxhbmNlIH07CiAgICBkaWcgNAogICAgaXRvYgogICAgc3dhcAogICAgaXRvYgogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czo0OQogICAgLy8gbG9nKGVuY29kZUFyYzQoYmFsYW5jZUluZm8pKTsKICAgIGxvZwoKZ2V0QmFsYW5jZUluZm9fYWZ0ZXJfaWZfZWxzZUA2OgogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6NDMKICAgIC8vIGZvciAobGV0IGlkeDogdWludDY0ID0gMDsgaWR4IDwgYWNjb3VudHMubGVuZ3RoOyBpZHgrKykgewogICAgZHVwCiAgICBpbnRjXzAgLy8gMQogICAgKwogICAgYnVyeSAxCiAgICBiIGdldEJhbGFuY2VJbmZvX3doaWxlX3RvcEAyCgpnZXRCYWxhbmNlSW5mb19lbHNlX2JvZHlANToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjU4CiAgICAvLyByZXR1cm4geyBiYWxhbmNlOiAwLCBtaW5CYWxhbmNlOiAwIH07CiAgICBwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6NTEKICAgIC8vIGxvZyhlbmNvZGVBcmM0KHRoaXMuZ2V0RW1wdHlCYWxhbmNlSW5mbygpKSk7CiAgICBsb2cKICAgIGIgZ2V0QmFsYW5jZUluZm9fYWZ0ZXJfaWZfZWxzZUA2CgpnZXRCYWxhbmNlSW5mb19hZnRlcl93aGlsZUA3OgogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6NDEKICAgIC8vIEBhYmltZXRob2QoeyByZWFkb25seTogdHJ1ZSwgb25DcmVhdGU6ICJhbGxvdyIgfSkKICAgIHB1c2hieXRlcyAweDE1MWY3Yzc1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKICAgIGxvZwogICAgaW50Y18wIC8vIDEKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjpBYmVsUmVhZGVyLmdldEFzc2V0c1Rpbnlbcm91dGluZ10oKSAtPiB2b2lkOgpnZXRBc3NldHNUaW55OgogICAgaW50Y18xIC8vIDAKICAgIGR1cG4gMwogICAgcHVzaGJ5dGVzICIiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czo2MQogICAgLy8gQGFiaW1ldGhvZCh7IHJlYWRvbmx5OiB0cnVlLCBvbkNyZWF0ZTogImFsbG93IiB9KQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwbiAyCiAgICBpbnRjXzEgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgZHVwCiAgICBjb3ZlciAyCiAgICBpbnRjXzIgLy8gOAogICAgKgogICAgcHVzaGludCAyIC8vIDIKICAgICsKICAgIHN3YXAKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5keW5hbWljX2FycmF5PGFzc2V0PgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBsZW4KICAgIGludGNfMiAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6NjMKICAgIC8vIGZvciAobGV0IGlkeDogdWludDY0ID0gMDsgaWR4IDwgYXNzZXRJZHMubGVuZ3RoOyBpZHgrKykgewogICAgaW50Y18xIC8vIDAKCmdldEFzc2V0c1Rpbnlfd2hpbGVfdG9wQDI6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czo2MwogICAgLy8gZm9yIChsZXQgaWR4OiB1aW50NjQgPSAwOyBpZHggPCBhc3NldElkcy5sZW5ndGg7IGlkeCsrKSB7CiAgICBkdXAKICAgIGRpZyAzCiAgICA8CiAgICBieiBnZXRBc3NldHNUaW55X2FmdGVyX3doaWxlQDE0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czo2NAogICAgLy8gY29uc3QgYXNzZXQgPSBhc3NldElkc1tpZHhdOwogICAgZGlnIDMKICAgIGV4dHJhY3QgMiAwCiAgICBkaWcgMQogICAgaW50Y18yIC8vIDgKICAgICoKICAgIGR1cDIKICAgIGludGNfMiAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGJ1cnkgMTEKICAgIGV4dHJhY3RfdWludDY0CiAgICBkdXAKICAgIGJ1cnkgNgogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6NjUKICAgIC8vIGNvbnN0IFtfLCBleGlzdHNdID0gb3AuQXNzZXRQYXJhbXMuYXNzZXRDcmVhdG9yKGFzc2V0LmlkKTsKICAgIGFzc2V0X3BhcmFtc19nZXQgQXNzZXRDcmVhdG9yCiAgICBidXJ5IDEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjY2CiAgICAvLyBpZiAoIWV4aXN0cykgewogICAgYm56IGdldEFzc2V0c1RpbnlfZWxzZV9ib2R5QDUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjkwLTk1CiAgICAvLyByZXR1cm4gewogICAgLy8gICBuYW1lOiAiIiwKICAgIC8vICAgdW5pdF9uYW1lOiAiIiwKICAgIC8vICAgZGVjaW1hbHM6IG5ldyBVaW50OCgwKSwKICAgIC8vICAgbGFiZWxzOiBbXSwKICAgIC8vIH07CiAgICBwdXNoYnl0ZXMgMHgwMDA3MDAwOTAwMDAwYjAwMDAwMDAwMDAwMAogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6NjcKICAgIC8vIGxvZyhlbmNvZGVBcmM0KHRoaXMuZ2V0RW1wdHlBc3NldFRpbnlMYWJlbHMoKSkpOwogICAgbG9nCgpnZXRBc3NldHNUaW55X2FmdGVyX2lmX2Vsc2VAMTM6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czo2MwogICAgLy8gZm9yIChsZXQgaWR4OiB1aW50NjQgPSAwOyBpZHggPCBhc3NldElkcy5sZW5ndGg7IGlkeCsrKSB7CiAgICBkdXAKICAgIGludGNfMCAvLyAxCiAgICArCiAgICBidXJ5IDEKICAgIGIgZ2V0QXNzZXRzVGlueV93aGlsZV90b3BAMgoKZ2V0QXNzZXRzVGlueV9lbHNlX2JvZHlANToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjcwCiAgICAvLyBhYmVsQXBwSWQgIT09IDAgPyBjb21waWxlQXJjNChBYmVsU3R1YikuY2FsbC5oYXNfYXNzZXRfbGFiZWwoeyBhcHBJZDogYWJlbEFwcElkLCBhcmdzOiBbYXNzZXQuaWQsICJwdiJdIH0pLnJldHVyblZhbHVlIDogMDsKICAgIGRpZyAxCiAgICBieiBnZXRBc3NldHNUaW55X3Rlcm5hcnlfZmFsc2VAOAogICAgaXR4bl9iZWdpbgogICAgcHVzaGJ5dGVzIDB4OTdmNDBhOGEgLy8gbWV0aG9kICJoYXNfYXNzZXRfbGFiZWwodWludDY0LHN0cmluZyl1aW50NjQiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgZGlnIDgKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICBwdXNoYnl0ZXMgMHgwMDAyNzA3NgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIGludGNfMSAvLyAwCiAgICBpdHhuX2ZpZWxkIE9uQ29tcGxldGlvbgogICAgZGlnIDEKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25JRAogICAgcHVzaGludCA2IC8vIGFwcGwKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMSAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgaXR4bl9zdWJtaXQKICAgIGl0eG4gTGFzdExvZwogICAgZHVwCiAgICBleHRyYWN0IDQgMAogICAgc3dhcAogICAgZXh0cmFjdCAwIDQKICAgIHB1c2hieXRlcyAweDE1MWY3Yzc1CiAgICA9PQogICAgYXNzZXJ0IC8vIEJ5dGVzIGhhcyB2YWxpZCBwcmVmaXgKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzIgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC51aW50NjQKICAgIGJ0b2kKCmdldEFzc2V0c1RpbnlfdGVybmFyeV9tZXJnZUA5OgogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6NzIKICAgIC8vIG5hbWU6IGFzc2V0Lm5hbWUudG9TdHJpbmcoKSwKICAgIGRpZyA1CiAgICBkdXAKICAgIGFzc2V0X3BhcmFtc19nZXQgQXNzZXROYW1lCiAgICBzd2FwCiAgICBidXJ5IDEwCiAgICBhc3NlcnQgLy8gYXNzZXQgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czo3MwogICAgLy8gdW5pdF9uYW1lOiBhc3NldC51bml0TmFtZS50b1N0cmluZygpLAogICAgZHVwCiAgICBhc3NldF9wYXJhbXNfZ2V0IEFzc2V0VW5pdE5hbWUKICAgIHN3YXAKICAgIGJ1cnkgOQogICAgYXNzZXJ0IC8vIGFzc2V0IGV4aXN0cwogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6NzQKICAgIC8vIGRlY2ltYWxzOiBuZXcgVWludDgoYXNzZXQuZGVjaW1hbHMpLAogICAgYXNzZXRfcGFyYW1zX2dldCBBc3NldERlY2ltYWxzCiAgICBhc3NlcnQgLy8gYXNzZXQgZXhpc3RzCiAgICBpdG9iCiAgICBkdXAKICAgIGJpdGxlbgogICAgaW50Y18yIC8vIDgKICAgIDw9CiAgICBhc3NlcnQgLy8gb3ZlcmZsb3cKICAgIGV4dHJhY3QgNyAxCiAgICBidXJ5IDkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjc1CiAgICAvLyBsYWJlbHM6IHB2ID09PSAwID8gKFtdIGFzIHN0cmluZ1tdKSA6IFsicHYiXSwKICAgIGJueiBnZXRBc3NldHNUaW55X3Rlcm5hcnlfZmFsc2VAMTEKICAgIHB1c2hieXRlcyAweDAwMDAKCmdldEFzc2V0c1RpbnlfdGVybmFyeV9tZXJnZUAxMjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjcxLTc2CiAgICAvLyBjb25zdCBhc3NldEluZm86IEFzc2V0VGlueUxhYmVscyA9IHsKICAgIC8vICAgbmFtZTogYXNzZXQubmFtZS50b1N0cmluZygpLAogICAgLy8gICB1bml0X25hbWU6IGFzc2V0LnVuaXROYW1lLnRvU3RyaW5nKCksCiAgICAvLyAgIGRlY2ltYWxzOiBuZXcgVWludDgoYXNzZXQuZGVjaW1hbHMpLAogICAgLy8gICBsYWJlbHM6IHB2ID09PSAwID8gKFtdIGFzIHN0cmluZ1tdKSA6IFsicHYiXSwKICAgIC8vIH07CiAgICBkaWcgNwogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGR1cAogICAgbGVuCiAgICBwdXNoaW50IDcgLy8gNwogICAgKwogICAgZGlnIDgKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBkaWcgMQogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHB1c2hieXRlcyAweDAwMDcKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZGlnIDEKICAgIGxlbgogICAgdW5jb3ZlciAzCiAgICArCiAgICBzd2FwCiAgICBkaWcgMTIKICAgIGNvbmNhdAogICAgc3dhcAogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czo3NwogICAgLy8gbG9nKGVuY29kZUFyYzQoYXNzZXRJbmZvKSk7CiAgICBsb2cKICAgIGIgZ2V0QXNzZXRzVGlueV9hZnRlcl9pZl9lbHNlQDEzCgpnZXRBc3NldHNUaW55X3Rlcm5hcnlfZmFsc2VAMTE6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czo3NQogICAgLy8gbGFiZWxzOiBwdiA9PT0gMCA/IChbXSBhcyBzdHJpbmdbXSkgOiBbInB2Il0sCiAgICBwdXNoYnl0ZXMgMHgwMDAxMDAwMjAwMDI3MDc2CiAgICBiIGdldEFzc2V0c1RpbnlfdGVybmFyeV9tZXJnZUAxMgoKZ2V0QXNzZXRzVGlueV90ZXJuYXJ5X2ZhbHNlQDg6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czo3MAogICAgLy8gYWJlbEFwcElkICE9PSAwID8gY29tcGlsZUFyYzQoQWJlbFN0dWIpLmNhbGwuaGFzX2Fzc2V0X2xhYmVsKHsgYXBwSWQ6IGFiZWxBcHBJZCwgYXJnczogW2Fzc2V0LmlkLCAicHYiXSB9KS5yZXR1cm5WYWx1ZSA6IDA7CiAgICBpbnRjXzEgLy8gMAogICAgYiBnZXRBc3NldHNUaW55X3Rlcm5hcnlfbWVyZ2VAOQoKZ2V0QXNzZXRzVGlueV9hZnRlcl93aGlsZUAxNDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjYxCiAgICAvLyBAYWJpbWV0aG9kKHsgcmVhZG9ubHk6IHRydWUsIG9uQ3JlYXRlOiAiYWxsb3ciIH0pCiAgICBwdXNoYnl0ZXMgMHgxNTFmN2M3NTAwMDcwMDA5MDAwMDBiMDAwMDAwMDAwMDAwCiAgICBsb2cKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czo6QWJlbFJlYWRlci5nZXRBc3NldExhYmVsc1tyb3V0aW5nXSgpIC0+IHZvaWQ6CmdldEFzc2V0TGFiZWxzOgogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6ODMKICAgIC8vIEBhYmltZXRob2QoeyByZWFkb25seTogdHJ1ZSwgb25DcmVhdGU6ICJhbGxvdyIsIG5hbWU6ICJnZXRfYXNzZXRfbGFiZWxzIiwgcmVzb3VyY2VFbmNvZGluZzogImluZGV4IiB9KQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgbGVuCiAgICBpbnRjXzAgLy8gMQogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC51aW50OAogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUwMDAwCiAgICBsb2cKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czo6QWJlbFJlYWRlci5nZXRCbG9ja1RpbWVzQW5kVGNbcm91dGluZ10oKSAtPiB2b2lkOgpnZXRCbG9ja1RpbWVzQW5kVGM6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJlbF9yZWFkZXIvY29udHJhY3QuYWxnby50czo5OAogICAgLy8gQGFiaW1ldGhvZCh7IHJlYWRvbmx5OiB0cnVlLCBvbkNyZWF0ZTogImFsbG93IiB9KQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBsZW4KICAgIGludGNfMiAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBsZW4KICAgIGludGNfMiAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgc3dhcAoKZ2V0QmxvY2tUaW1lc0FuZFRjX3doaWxlX3RvcEAyOgogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6MTAwCiAgICAvLyBmb3IgKGxldCByb3VuZDogdWludDY0ID0gZmlyc3RSb3VuZDsgcm91bmQgPD0gbGFzdFJvdW5kOyByb3VuZCsrKSB7CiAgICBkdXAKICAgIGRpZyAyCiAgICA8PQogICAgYnogZ2V0QmxvY2tUaW1lc0FuZFRjX2FmdGVyX3doaWxlQDQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjEwMgogICAgLy8gdHM6IG5ldyBVaW50MzIob3AuQmxvY2suYmxrVGltZXN0YW1wKHJvdW5kKSksCiAgICBkdXBuIDIKICAgIGJsb2NrIEJsa1RpbWVzdGFtcAogICAgaXRvYgogICAgZHVwCiAgICBiaXRsZW4KICAgIGludGNfMyAvLyAzMgogICAgPD0KICAgIGFzc2VydCAvLyBvdmVyZmxvdwogICAgZXh0cmFjdCA0IDQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjEwMwogICAgLy8gdGM6IG9wLkJsb2NrLmJsa1R4bkNvdW50ZXIocm91bmQpLAogICAgZGlnIDEKICAgIGJsb2NrIEJsa1R4bkNvdW50ZXIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjEwMS0xMDQKICAgIC8vIGNvbnN0IGJsa0RhdGE6IEJsb2NrVGltZUFuZFRjID0gewogICAgLy8gICB0czogbmV3IFVpbnQzMihvcC5CbG9jay5ibGtUaW1lc3RhbXAocm91bmQpKSwKICAgIC8vICAgdGM6IG9wLkJsb2NrLmJsa1R4bkNvdW50ZXIocm91bmQpLAogICAgLy8gfTsKICAgIGl0b2IKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6MTA1CiAgICAvLyBsb2coZW5jb2RlQXJjNChibGtEYXRhKSk7CiAgICBsb2cKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYmVsX3JlYWRlci9jb250cmFjdC5hbGdvLnRzOjEwMAogICAgLy8gZm9yIChsZXQgcm91bmQ6IHVpbnQ2NCA9IGZpcnN0Um91bmQ7IHJvdW5kIDw9IGxhc3RSb3VuZDsgcm91bmQrKykgewogICAgaW50Y18wIC8vIDEKICAgICsKICAgIGJ1cnkgMQogICAgYiBnZXRCbG9ja1RpbWVzQW5kVGNfd2hpbGVfdG9wQDIKCmdldEJsb2NrVGltZXNBbmRUY19hZnRlcl93aGlsZUA0OgogICAgLy8gc21hcnRfY29udHJhY3RzL2FiZWxfcmVhZGVyL2NvbnRyYWN0LmFsZ28udHM6OTgKICAgIC8vIEBhYmltZXRob2QoeyByZWFkb25seTogdHJ1ZSwgb25DcmVhdGU6ICJhbGxvdyIgfSkKICAgIHB1c2hieXRlcyAweDE1MWY3Yzc1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiAgICBsb2cKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4K", "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CyAFAQAIIAAxG0EAKDEZFESCBARId6lnBNWrM2YEwu10PwSnDmKgNhoAjgQAHwCTAboBzAAiMRmQgTAaMRgQRCEEIhJBAAoxADIJEkEAAiJDI0MjgAA2GgFHAiNZSU4CJQuBAghMFRJEI0lLAgxBAD1LAlcCAEsBJQslWElFBmBJRQVBABJLBHhLBBZMFlCwSSIIRQFC/9KAEAAAAAAAAAAAAAAAAAAAAACwQv/igBQVH3x1AAAAAAAAAAAAAAAAAAAAALAiQyNHA4AANhoBRwIjWUlOAiQLgQIITBUSRDYaAkkVJBJEFyNJSwMMQQDoSwNXAgBLASQLSiRYRQtbSUUGcQtFAUAAGIANAAcACQAACwAAAAAAALBJIghFAUL/yEsBQQCusYAEl/QKirIaSwiyGoAEAAJwdrIaI7IZSwGyGIEGshAjsgGztD5JVwQATFcABIAEFR98dRJESRUkEkQXSwVJcQRMRQpESXEDTEUJRHEBRBZJkyQORFcHAUUJQABEgAIAAEsHSRUWVwYCTFBJFYEHCEsISRUWVwYCTFBLARZXBgKAAgAHTFBLARVPAwhMSwxQTBZXBgJQTwJQTFBMULBC/1KACAABAAIAAnB2Qv+zI0L/ioARFR98dQAHAAkAAAsAAAAAAACwIkM2GgEVIhJEgAYVH3x1AACwIkM2GgFJFSQSRBc2GgJJFSQSRBdMSUsCDkEAG0cC0QEWSZMlDkRXBARLAdEIFlCwIghFAUL/3oAQFR98dQAAAAAAAAAAAAAAALAiQw==", "clear": "C4EBQw==" }, "events": [], "templateVariables": { "UPDATABLE": { "type": "AVMUint64" } } };
|
|
5
5
|
class BinaryStateValue {
|
|
6
6
|
value;
|
|
7
7
|
constructor(value) {
|
|
@@ -20,6 +20,18 @@ class BinaryStateValue {
|
|
|
20
20
|
export function AssetTinyLabelsFromTuple(abiTuple) {
|
|
21
21
|
return getABIStructFromABITuple(abiTuple, APP_SPEC.structs.AssetTinyLabels, APP_SPEC.structs);
|
|
22
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Converts the ABI tuple representation of a BalanceInfo to the struct representation
|
|
25
|
+
*/
|
|
26
|
+
export function BalanceInfoFromTuple(abiTuple) {
|
|
27
|
+
return getABIStructFromABITuple(abiTuple, APP_SPEC.structs.BalanceInfo, APP_SPEC.structs);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Converts the ABI tuple representation of a BlockTimeAndTc to the struct representation
|
|
31
|
+
*/
|
|
32
|
+
export function BlockTimeAndTcFromTuple(abiTuple) {
|
|
33
|
+
return getABIStructFromABITuple(abiTuple, APP_SPEC.structs.BlockTimeAndTc, APP_SPEC.structs);
|
|
34
|
+
}
|
|
23
35
|
/**
|
|
24
36
|
* Exposes methods for constructing `AppClient` params objects for ABI calls to the AbelReader smart contract
|
|
25
37
|
*/
|
|
@@ -31,15 +43,34 @@ export class AbelReaderParamsFactory {
|
|
|
31
43
|
return {
|
|
32
44
|
_resolveByMethod(params) {
|
|
33
45
|
switch (params.method) {
|
|
46
|
+
case 'getBalanceInfo':
|
|
47
|
+
case 'getBalanceInfo(address[])(uint64,uint64)':
|
|
48
|
+
return AbelReaderParamsFactory.create.getBalanceInfo(params);
|
|
34
49
|
case 'getAssetsTiny':
|
|
35
50
|
case 'getAssetsTiny(uint64[],uint64)(string,string,uint8,string[])':
|
|
36
51
|
return AbelReaderParamsFactory.create.getAssetsTiny(params);
|
|
37
52
|
case 'get_asset_labels':
|
|
38
53
|
case 'get_asset_labels(asset)string[]':
|
|
39
54
|
return AbelReaderParamsFactory.create.getAssetLabels(params);
|
|
55
|
+
case 'getBlockTimesAndTc':
|
|
56
|
+
case 'getBlockTimesAndTc(uint64,uint64)(uint32,uint64)':
|
|
57
|
+
return AbelReaderParamsFactory.create.getBlockTimesAndTc(params);
|
|
40
58
|
}
|
|
41
59
|
throw new Error(`Unknown ' + verb + ' method`);
|
|
42
60
|
},
|
|
61
|
+
/**
|
|
62
|
+
* Constructs create ABI call params for the AbelReader smart contract using the getBalanceInfo(address[])(uint64,uint64) ABI method
|
|
63
|
+
*
|
|
64
|
+
* @param params Parameters for the call
|
|
65
|
+
* @returns An `AppClientMethodCallParams` object for the call
|
|
66
|
+
*/
|
|
67
|
+
getBalanceInfo(params) {
|
|
68
|
+
return {
|
|
69
|
+
...params,
|
|
70
|
+
method: 'getBalanceInfo(address[])(uint64,uint64)',
|
|
71
|
+
args: Array.isArray(params.args) ? params.args : [params.args.accounts],
|
|
72
|
+
};
|
|
73
|
+
},
|
|
43
74
|
/**
|
|
44
75
|
* Constructs create ABI call params for the AbelReader smart contract using the getAssetsTiny(uint64[],uint64)(string,string,uint8,string[]) ABI method
|
|
45
76
|
*
|
|
@@ -66,6 +97,32 @@ export class AbelReaderParamsFactory {
|
|
|
66
97
|
args: Array.isArray(params.args) ? params.args : [params.args.assetId],
|
|
67
98
|
};
|
|
68
99
|
},
|
|
100
|
+
/**
|
|
101
|
+
* Constructs create ABI call params for the AbelReader smart contract using the getBlockTimesAndTc(uint64,uint64)(uint32,uint64) ABI method
|
|
102
|
+
*
|
|
103
|
+
* @param params Parameters for the call
|
|
104
|
+
* @returns An `AppClientMethodCallParams` object for the call
|
|
105
|
+
*/
|
|
106
|
+
getBlockTimesAndTc(params) {
|
|
107
|
+
return {
|
|
108
|
+
...params,
|
|
109
|
+
method: 'getBlockTimesAndTc(uint64,uint64)(uint32,uint64)',
|
|
110
|
+
args: Array.isArray(params.args) ? params.args : [params.args.firstRound, params.args.lastRound],
|
|
111
|
+
};
|
|
112
|
+
},
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Constructs a no op call for the getBalanceInfo(address[])(uint64,uint64) ABI method
|
|
117
|
+
*
|
|
118
|
+
* @param params Parameters for the call
|
|
119
|
+
* @returns An `AppClientMethodCallParams` object for the call
|
|
120
|
+
*/
|
|
121
|
+
static getBalanceInfo(params) {
|
|
122
|
+
return {
|
|
123
|
+
...params,
|
|
124
|
+
method: 'getBalanceInfo(address[])(uint64,uint64)',
|
|
125
|
+
args: Array.isArray(params.args) ? params.args : [params.args.accounts],
|
|
69
126
|
};
|
|
70
127
|
}
|
|
71
128
|
/**
|
|
@@ -94,6 +151,19 @@ export class AbelReaderParamsFactory {
|
|
|
94
151
|
args: Array.isArray(params.args) ? params.args : [params.args.assetId],
|
|
95
152
|
};
|
|
96
153
|
}
|
|
154
|
+
/**
|
|
155
|
+
* Constructs a no op call for the getBlockTimesAndTc(uint64,uint64)(uint32,uint64) ABI method
|
|
156
|
+
*
|
|
157
|
+
* @param params Parameters for the call
|
|
158
|
+
* @returns An `AppClientMethodCallParams` object for the call
|
|
159
|
+
*/
|
|
160
|
+
static getBlockTimesAndTc(params) {
|
|
161
|
+
return {
|
|
162
|
+
...params,
|
|
163
|
+
method: 'getBlockTimesAndTc(uint64,uint64)(uint32,uint64)',
|
|
164
|
+
args: Array.isArray(params.args) ? params.args : [params.args.firstRound, params.args.lastRound],
|
|
165
|
+
};
|
|
166
|
+
}
|
|
97
167
|
}
|
|
98
168
|
/**
|
|
99
169
|
* A factory to create and deploy one or more instance of the AbelReader smart contract and to create one or more app clients to interact with those (or other) app instances
|
|
@@ -170,6 +240,15 @@ class AbelReaderFactory {
|
|
|
170
240
|
* Gets available create methods
|
|
171
241
|
*/
|
|
172
242
|
create: {
|
|
243
|
+
/**
|
|
244
|
+
* Creates a new instance of the AbelReader smart contract using the getBalanceInfo(address[])(uint64,uint64) ABI method.
|
|
245
|
+
*
|
|
246
|
+
* @param params The params for the smart contract call
|
|
247
|
+
* @returns The create params
|
|
248
|
+
*/
|
|
249
|
+
getBalanceInfo: (params) => {
|
|
250
|
+
return this.appFactory.params.create(AbelReaderParamsFactory.create.getBalanceInfo(params));
|
|
251
|
+
},
|
|
173
252
|
/**
|
|
174
253
|
* Creates a new instance of the AbelReader smart contract using the getAssetsTiny(uint64[],uint64)(string,string,uint8,string[]) ABI method.
|
|
175
254
|
*
|
|
@@ -188,6 +267,15 @@ class AbelReaderFactory {
|
|
|
188
267
|
getAssetLabels: (params) => {
|
|
189
268
|
return this.appFactory.params.create(AbelReaderParamsFactory.create.getAssetLabels(params));
|
|
190
269
|
},
|
|
270
|
+
/**
|
|
271
|
+
* Creates a new instance of the AbelReader smart contract using the getBlockTimesAndTc(uint64,uint64)(uint32,uint64) ABI method.
|
|
272
|
+
*
|
|
273
|
+
* @param params The params for the smart contract call
|
|
274
|
+
* @returns The create params
|
|
275
|
+
*/
|
|
276
|
+
getBlockTimesAndTc: (params) => {
|
|
277
|
+
return this.appFactory.params.create(AbelReaderParamsFactory.create.getBlockTimesAndTc(params));
|
|
278
|
+
},
|
|
191
279
|
},
|
|
192
280
|
/**
|
|
193
281
|
* Gets available deployUpdate methods
|
|
@@ -226,6 +314,15 @@ class AbelReaderFactory {
|
|
|
226
314
|
* Gets available create methods
|
|
227
315
|
*/
|
|
228
316
|
create: {
|
|
317
|
+
/**
|
|
318
|
+
* Creates a new instance of the AbelReader smart contract using the getBalanceInfo(address[])(uint64,uint64) ABI method.
|
|
319
|
+
*
|
|
320
|
+
* @param params The params for the smart contract call
|
|
321
|
+
* @returns The create transaction
|
|
322
|
+
*/
|
|
323
|
+
getBalanceInfo: (params) => {
|
|
324
|
+
return this.appFactory.createTransaction.create(AbelReaderParamsFactory.create.getBalanceInfo(params));
|
|
325
|
+
},
|
|
229
326
|
/**
|
|
230
327
|
* Creates a new instance of the AbelReader smart contract using the getAssetsTiny(uint64[],uint64)(string,string,uint8,string[]) ABI method.
|
|
231
328
|
*
|
|
@@ -244,6 +341,15 @@ class AbelReaderFactory {
|
|
|
244
341
|
getAssetLabels: (params) => {
|
|
245
342
|
return this.appFactory.createTransaction.create(AbelReaderParamsFactory.create.getAssetLabels(params));
|
|
246
343
|
},
|
|
344
|
+
/**
|
|
345
|
+
* Creates a new instance of the AbelReader smart contract using the getBlockTimesAndTc(uint64,uint64)(uint32,uint64) ABI method.
|
|
346
|
+
*
|
|
347
|
+
* @param params The params for the smart contract call
|
|
348
|
+
* @returns The create transaction
|
|
349
|
+
*/
|
|
350
|
+
getBlockTimesAndTc: (params) => {
|
|
351
|
+
return this.appFactory.createTransaction.create(AbelReaderParamsFactory.create.getBlockTimesAndTc(params));
|
|
352
|
+
},
|
|
247
353
|
},
|
|
248
354
|
};
|
|
249
355
|
/**
|
|
@@ -254,6 +360,16 @@ class AbelReaderFactory {
|
|
|
254
360
|
* Gets available create methods
|
|
255
361
|
*/
|
|
256
362
|
create: {
|
|
363
|
+
/**
|
|
364
|
+
* Creates a new instance of the AbelReader smart contract using an ABI method call using the getBalanceInfo(address[])(uint64,uint64) ABI method.
|
|
365
|
+
*
|
|
366
|
+
* @param params The params for the smart contract call
|
|
367
|
+
* @returns The create result
|
|
368
|
+
*/
|
|
369
|
+
getBalanceInfo: async (params) => {
|
|
370
|
+
const result = await this.appFactory.send.create(AbelReaderParamsFactory.create.getBalanceInfo(params));
|
|
371
|
+
return { result: { ...result.result, return: result.result.return }, appClient: new AbelReaderClient(result.appClient) };
|
|
372
|
+
},
|
|
257
373
|
/**
|
|
258
374
|
* Creates a new instance of the AbelReader smart contract using an ABI method call using the getAssetsTiny(uint64[],uint64)(string,string,uint8,string[]) ABI method.
|
|
259
375
|
*
|
|
@@ -274,6 +390,16 @@ class AbelReaderFactory {
|
|
|
274
390
|
const result = await this.appFactory.send.create(AbelReaderParamsFactory.create.getAssetLabels(params));
|
|
275
391
|
return { result: { ...result.result, return: result.result.return }, appClient: new AbelReaderClient(result.appClient) };
|
|
276
392
|
},
|
|
393
|
+
/**
|
|
394
|
+
* Creates a new instance of the AbelReader smart contract using an ABI method call using the getBlockTimesAndTc(uint64,uint64)(uint32,uint64) ABI method.
|
|
395
|
+
*
|
|
396
|
+
* @param params The params for the smart contract call
|
|
397
|
+
* @returns The create result
|
|
398
|
+
*/
|
|
399
|
+
getBlockTimesAndTc: async (params) => {
|
|
400
|
+
const result = await this.appFactory.send.create(AbelReaderParamsFactory.create.getBlockTimesAndTc(params));
|
|
401
|
+
return { result: { ...result.result, return: result.result.return }, appClient: new AbelReaderClient(result.appClient) };
|
|
402
|
+
},
|
|
277
403
|
},
|
|
278
404
|
};
|
|
279
405
|
}
|
|
@@ -377,6 +503,17 @@ class AbelReaderClient {
|
|
|
377
503
|
clearState: (params) => {
|
|
378
504
|
return this.appClient.params.bare.clearState(params);
|
|
379
505
|
},
|
|
506
|
+
/**
|
|
507
|
+
* Makes a call to the AbelReader smart contract using the `getBalanceInfo(address[])(uint64,uint64)` ABI method.
|
|
508
|
+
*
|
|
509
|
+
* This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction.
|
|
510
|
+
*
|
|
511
|
+
* @param params The params for the smart contract call
|
|
512
|
+
* @returns The call params
|
|
513
|
+
*/
|
|
514
|
+
getBalanceInfo: (params) => {
|
|
515
|
+
return this.appClient.params.call(AbelReaderParamsFactory.getBalanceInfo(params));
|
|
516
|
+
},
|
|
380
517
|
/**
|
|
381
518
|
* Makes a call to the AbelReader smart contract using the `getAssetsTiny(uint64[],uint64)(string,string,uint8,string[])` ABI method.
|
|
382
519
|
*
|
|
@@ -399,6 +536,17 @@ class AbelReaderClient {
|
|
|
399
536
|
getAssetLabels: (params) => {
|
|
400
537
|
return this.appClient.params.call(AbelReaderParamsFactory.getAssetLabels(params));
|
|
401
538
|
},
|
|
539
|
+
/**
|
|
540
|
+
* Makes a call to the AbelReader smart contract using the `getBlockTimesAndTc(uint64,uint64)(uint32,uint64)` ABI method.
|
|
541
|
+
*
|
|
542
|
+
* This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction.
|
|
543
|
+
*
|
|
544
|
+
* @param params The params for the smart contract call
|
|
545
|
+
* @returns The call params
|
|
546
|
+
*/
|
|
547
|
+
getBlockTimesAndTc: (params) => {
|
|
548
|
+
return this.appClient.params.call(AbelReaderParamsFactory.getBlockTimesAndTc(params));
|
|
549
|
+
},
|
|
402
550
|
};
|
|
403
551
|
/**
|
|
404
552
|
* Create transactions for the current app
|
|
@@ -441,6 +589,17 @@ class AbelReaderClient {
|
|
|
441
589
|
clearState: (params) => {
|
|
442
590
|
return this.appClient.createTransaction.bare.clearState(params);
|
|
443
591
|
},
|
|
592
|
+
/**
|
|
593
|
+
* Makes a call to the AbelReader smart contract using the `getBalanceInfo(address[])(uint64,uint64)` ABI method.
|
|
594
|
+
*
|
|
595
|
+
* This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction.
|
|
596
|
+
*
|
|
597
|
+
* @param params The params for the smart contract call
|
|
598
|
+
* @returns The call transaction
|
|
599
|
+
*/
|
|
600
|
+
getBalanceInfo: (params) => {
|
|
601
|
+
return this.appClient.createTransaction.call(AbelReaderParamsFactory.getBalanceInfo(params));
|
|
602
|
+
},
|
|
444
603
|
/**
|
|
445
604
|
* Makes a call to the AbelReader smart contract using the `getAssetsTiny(uint64[],uint64)(string,string,uint8,string[])` ABI method.
|
|
446
605
|
*
|
|
@@ -463,6 +622,17 @@ class AbelReaderClient {
|
|
|
463
622
|
getAssetLabels: (params) => {
|
|
464
623
|
return this.appClient.createTransaction.call(AbelReaderParamsFactory.getAssetLabels(params));
|
|
465
624
|
},
|
|
625
|
+
/**
|
|
626
|
+
* Makes a call to the AbelReader smart contract using the `getBlockTimesAndTc(uint64,uint64)(uint32,uint64)` ABI method.
|
|
627
|
+
*
|
|
628
|
+
* This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction.
|
|
629
|
+
*
|
|
630
|
+
* @param params The params for the smart contract call
|
|
631
|
+
* @returns The call transaction
|
|
632
|
+
*/
|
|
633
|
+
getBlockTimesAndTc: (params) => {
|
|
634
|
+
return this.appClient.createTransaction.call(AbelReaderParamsFactory.getBlockTimesAndTc(params));
|
|
635
|
+
},
|
|
466
636
|
};
|
|
467
637
|
/**
|
|
468
638
|
* Send calls to the current app
|
|
@@ -505,6 +675,18 @@ class AbelReaderClient {
|
|
|
505
675
|
clearState: (params) => {
|
|
506
676
|
return this.appClient.send.bare.clearState(params);
|
|
507
677
|
},
|
|
678
|
+
/**
|
|
679
|
+
* Makes a call to the AbelReader smart contract using the `getBalanceInfo(address[])(uint64,uint64)` ABI method.
|
|
680
|
+
*
|
|
681
|
+
* This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction.
|
|
682
|
+
*
|
|
683
|
+
* @param params The params for the smart contract call
|
|
684
|
+
* @returns The call result
|
|
685
|
+
*/
|
|
686
|
+
getBalanceInfo: async (params) => {
|
|
687
|
+
const result = await this.appClient.send.call(AbelReaderParamsFactory.getBalanceInfo(params));
|
|
688
|
+
return { ...result, return: result.return };
|
|
689
|
+
},
|
|
508
690
|
/**
|
|
509
691
|
* Makes a call to the AbelReader smart contract using the `getAssetsTiny(uint64[],uint64)(string,string,uint8,string[])` ABI method.
|
|
510
692
|
*
|
|
@@ -529,6 +711,18 @@ class AbelReaderClient {
|
|
|
529
711
|
const result = await this.appClient.send.call(AbelReaderParamsFactory.getAssetLabels(params));
|
|
530
712
|
return { ...result, return: result.return };
|
|
531
713
|
},
|
|
714
|
+
/**
|
|
715
|
+
* Makes a call to the AbelReader smart contract using the `getBlockTimesAndTc(uint64,uint64)(uint32,uint64)` ABI method.
|
|
716
|
+
*
|
|
717
|
+
* This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction.
|
|
718
|
+
*
|
|
719
|
+
* @param params The params for the smart contract call
|
|
720
|
+
* @returns The call result
|
|
721
|
+
*/
|
|
722
|
+
getBlockTimesAndTc: async (params) => {
|
|
723
|
+
const result = await this.appClient.send.call(AbelReaderParamsFactory.getBlockTimesAndTc(params));
|
|
724
|
+
return { ...result, return: result.return };
|
|
725
|
+
},
|
|
532
726
|
};
|
|
533
727
|
/**
|
|
534
728
|
* Clone this app client with different params
|
|
@@ -539,6 +733,18 @@ class AbelReaderClient {
|
|
|
539
733
|
clone(params) {
|
|
540
734
|
return new AbelReaderClient(this.appClient.clone(params));
|
|
541
735
|
}
|
|
736
|
+
/**
|
|
737
|
+
* Makes a readonly (simulated) call to the AbelReader smart contract using the `getBalanceInfo(address[])(uint64,uint64)` ABI method.
|
|
738
|
+
*
|
|
739
|
+
* This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction.
|
|
740
|
+
*
|
|
741
|
+
* @param params The params for the smart contract call
|
|
742
|
+
* @returns The call result
|
|
743
|
+
*/
|
|
744
|
+
async getBalanceInfo(params) {
|
|
745
|
+
const result = await this.appClient.send.call(AbelReaderParamsFactory.getBalanceInfo(params));
|
|
746
|
+
return result.return;
|
|
747
|
+
}
|
|
542
748
|
/**
|
|
543
749
|
* Makes a readonly (simulated) call to the AbelReader smart contract using the `getAssetsTiny(uint64[],uint64)(string,string,uint8,string[])` ABI method.
|
|
544
750
|
*
|
|
@@ -563,6 +769,18 @@ class AbelReaderClient {
|
|
|
563
769
|
const result = await this.appClient.send.call(AbelReaderParamsFactory.getAssetLabels(params));
|
|
564
770
|
return result.return;
|
|
565
771
|
}
|
|
772
|
+
/**
|
|
773
|
+
* Makes a readonly (simulated) call to the AbelReader smart contract using the `getBlockTimesAndTc(uint64,uint64)(uint32,uint64)` ABI method.
|
|
774
|
+
*
|
|
775
|
+
* This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction.
|
|
776
|
+
*
|
|
777
|
+
* @param params The params for the smart contract call
|
|
778
|
+
* @returns The call result
|
|
779
|
+
*/
|
|
780
|
+
async getBlockTimesAndTc(params) {
|
|
781
|
+
const result = await this.appClient.send.call(AbelReaderParamsFactory.getBlockTimesAndTc(params));
|
|
782
|
+
return result.return;
|
|
783
|
+
}
|
|
566
784
|
/**
|
|
567
785
|
* Methods to access state for the current AbelReader app
|
|
568
786
|
*/
|
|
@@ -573,6 +791,14 @@ class AbelReaderClient {
|
|
|
573
791
|
let promiseChain = Promise.resolve();
|
|
574
792
|
const resultMappers = [];
|
|
575
793
|
return {
|
|
794
|
+
/**
|
|
795
|
+
* Add a getBalanceInfo(address[])(uint64,uint64) method call against the AbelReader contract
|
|
796
|
+
*/
|
|
797
|
+
getBalanceInfo(params) {
|
|
798
|
+
promiseChain = promiseChain.then(async () => composer.addAppCallMethodCall(await client.params.getBalanceInfo(params)));
|
|
799
|
+
resultMappers.push((v) => client.decodeReturnValue('getBalanceInfo(address[])(uint64,uint64)', v));
|
|
800
|
+
return this;
|
|
801
|
+
},
|
|
576
802
|
/**
|
|
577
803
|
* Add a getAssetsTiny(uint64[],uint64)(string,string,uint8,string[]) method call against the AbelReader contract
|
|
578
804
|
*/
|
|
@@ -589,6 +815,14 @@ class AbelReaderClient {
|
|
|
589
815
|
resultMappers.push((v) => client.decodeReturnValue('get_asset_labels(asset)string[]', v));
|
|
590
816
|
return this;
|
|
591
817
|
},
|
|
818
|
+
/**
|
|
819
|
+
* Add a getBlockTimesAndTc(uint64,uint64)(uint32,uint64) method call against the AbelReader contract
|
|
820
|
+
*/
|
|
821
|
+
getBlockTimesAndTc(params) {
|
|
822
|
+
promiseChain = promiseChain.then(async () => composer.addAppCallMethodCall(await client.params.getBlockTimesAndTc(params)));
|
|
823
|
+
resultMappers.push((v) => client.decodeReturnValue('getBlockTimesAndTc(uint64,uint64)(uint32,uint64)', v));
|
|
824
|
+
return this;
|
|
825
|
+
},
|
|
592
826
|
get update() {
|
|
593
827
|
return {
|
|
594
828
|
bare: (params) => {
|
|
@@ -737,6 +971,15 @@ export class AbelReaderSDK extends GhostBase {
|
|
|
737
971
|
constructor(args) {
|
|
738
972
|
super(args);
|
|
739
973
|
}
|
|
974
|
+
async getBalanceInfo({ methodArgsOrArgsArray, extraMethodCallArgs, extraSimulateArgs, }) {
|
|
975
|
+
return this.execute({
|
|
976
|
+
signature: 'getBalanceInfo(address[])(uint64,uint64)',
|
|
977
|
+
txnBuilder: (builder, args) => builder.getBalanceInfo(args),
|
|
978
|
+
methodArgsOrArgsArray,
|
|
979
|
+
extraMethodCallArgs,
|
|
980
|
+
extraSimulateArgs,
|
|
981
|
+
});
|
|
982
|
+
}
|
|
740
983
|
async getAssetsTiny({ methodArgsOrArgsArray, extraMethodCallArgs, extraSimulateArgs, }) {
|
|
741
984
|
return this.execute({
|
|
742
985
|
signature: 'getAssetsTiny(uint64[],uint64)(string,string,uint8,string[])',
|
|
@@ -746,7 +989,7 @@ export class AbelReaderSDK extends GhostBase {
|
|
|
746
989
|
extraSimulateArgs,
|
|
747
990
|
});
|
|
748
991
|
}
|
|
749
|
-
async
|
|
992
|
+
async getAssetLabels({ methodArgsOrArgsArray, extraMethodCallArgs, extraSimulateArgs, }) {
|
|
750
993
|
return this.execute({
|
|
751
994
|
signature: 'get_asset_labels(asset)string[]',
|
|
752
995
|
txnBuilder: (builder, args) => builder.getAssetLabels(args),
|
|
@@ -755,5 +998,14 @@ export class AbelReaderSDK extends GhostBase {
|
|
|
755
998
|
extraSimulateArgs,
|
|
756
999
|
});
|
|
757
1000
|
}
|
|
1001
|
+
async getBlockTimesAndTc({ methodArgsOrArgsArray, extraMethodCallArgs, extraSimulateArgs, }) {
|
|
1002
|
+
return this.execute({
|
|
1003
|
+
signature: 'getBlockTimesAndTc(uint64,uint64)(uint32,uint64)',
|
|
1004
|
+
txnBuilder: (builder, args) => builder.getBlockTimesAndTc(args),
|
|
1005
|
+
methodArgsOrArgsArray,
|
|
1006
|
+
extraMethodCallArgs,
|
|
1007
|
+
extraSimulateArgs,
|
|
1008
|
+
});
|
|
1009
|
+
}
|
|
758
1010
|
}
|
|
759
1011
|
/* END GHOST SDK CODE */
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { AlgorandClient } from "@algorandfoundation/algokit-utils";
|
|
2
|
-
import { AbelReaderSDK, AssetTinyLabels as AssetTinyLabelsInternal } from "./generated/AbelReaderSDK.js";
|
|
2
|
+
import { AbelReaderSDK, AssetTinyLabels as AssetTinyLabelsInternal, BalanceInfo, BlockTimeAndTc } from "./generated/AbelReaderSDK.js";
|
|
3
3
|
export interface AssetTinyLabels extends AssetTinyLabelsInternal {
|
|
4
4
|
id: bigint;
|
|
5
5
|
}
|
|
6
|
+
export interface BlockRoundTimeAndTc extends BlockTimeAndTc {
|
|
7
|
+
rnd: bigint;
|
|
8
|
+
}
|
|
6
9
|
export declare class AbelGhostSDK {
|
|
7
10
|
static baseSDK: typeof AbelReaderSDK;
|
|
8
11
|
algorand: AlgorandClient;
|
|
@@ -16,9 +19,12 @@ export declare class AbelGhostSDK {
|
|
|
16
19
|
ghostAppId?: bigint;
|
|
17
20
|
readerAccount?: string;
|
|
18
21
|
});
|
|
22
|
+
getBalanceInfo(accounts: string[]): Promise<Map<string, BalanceInfo>>;
|
|
23
|
+
private getBalanceInfoInternal;
|
|
19
24
|
getAssetsTinyLabels(assetIds: number[] | bigint[]): Promise<Map<bigint, AssetTinyLabels>>;
|
|
20
25
|
private getAssetsTinyLabelsInternal;
|
|
21
26
|
getAssetLabels(assetId: number | bigint): Promise<string[]>;
|
|
22
27
|
getAllAssetIDs(): Promise<bigint[]>;
|
|
23
28
|
private getBoxesByLength;
|
|
29
|
+
getBlockTimesAndTc(firstRound: number | bigint, lastRound: number | bigint): Promise<BlockTimeAndTc[]>;
|
|
24
30
|
}
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import { AbelReaderSDK } from "./generated/AbelReaderSDK.js";
|
|
7
|
+
import { AbelReaderSDK, } from "./generated/AbelReaderSDK.js";
|
|
8
8
|
import { chunked } from "./utils/chunked.js";
|
|
9
9
|
import { decodeUint64 } from "algosdk";
|
|
10
10
|
export class AbelGhostSDK {
|
|
@@ -23,6 +23,13 @@ export class AbelGhostSDK {
|
|
|
23
23
|
ghostAppId,
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
|
+
async getBalanceInfo(accounts) {
|
|
27
|
+
const data = await this.getBalanceInfoInternal(accounts);
|
|
28
|
+
return new Map(data.map((balance, i) => [accounts[i], balance]));
|
|
29
|
+
}
|
|
30
|
+
async getBalanceInfoInternal(accounts) {
|
|
31
|
+
return this.baseSDK.getBalanceInfo({ methodArgsOrArgsArray: { accounts } });
|
|
32
|
+
}
|
|
26
33
|
async getAssetsTinyLabels(assetIds) {
|
|
27
34
|
const data = await this.getAssetsTinyLabelsInternal(assetIds);
|
|
28
35
|
return new Map(data.map((asset, i) => [BigInt(assetIds[i]), { ...asset, id: BigInt(assetIds[i]) }]));
|
|
@@ -52,7 +59,22 @@ export class AbelGhostSDK {
|
|
|
52
59
|
const boxNames = await this.algorand.app.getBoxNames(this.registryAppId);
|
|
53
60
|
return boxNames.filter((boxName) => boxName.nameRaw.length === length);
|
|
54
61
|
}
|
|
62
|
+
async getBlockTimesAndTc(firstRound, lastRound) {
|
|
63
|
+
const first = BigInt(firstRound);
|
|
64
|
+
const last = BigInt(lastRound) - BigInt(1);
|
|
65
|
+
return (await this.baseSDK.getBlockTimesAndTc({
|
|
66
|
+
methodArgsOrArgsArray: { firstRound: first, lastRound: last },
|
|
67
|
+
extraMethodCallArgs: { firstValidRound: first, lastValidRound: last },
|
|
68
|
+
extraSimulateArgs: { round: last },
|
|
69
|
+
})).map((data, i) => ({
|
|
70
|
+
...data,
|
|
71
|
+
rnd: BigInt(first) + BigInt(i),
|
|
72
|
+
}));
|
|
73
|
+
}
|
|
55
74
|
}
|
|
75
|
+
__decorate([
|
|
76
|
+
chunked(63)
|
|
77
|
+
], AbelGhostSDK.prototype, "getBalanceInfoInternal", null);
|
|
56
78
|
__decorate([
|
|
57
79
|
chunked(63)
|
|
58
80
|
], AbelGhostSDK.prototype, "getAssetsTinyLabelsInternal", null);
|