{ "name": "GlobalMapAccountStruct", "structs": { "Data": [ { "name": "foo", "type": "uint64" }, { "name": "bar", "type": "byte[4]" } ] }, "methods": [ { "name": "get", "args": [ { "type": "address", "name": "key" } ], "returns": { "type": "(uint64,byte[4])", "struct": "Data" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "get_with_default", "args": [ { "type": "address", "name": "key" }, { "type": "(uint64,byte[4])", "struct": "Data", "name": "default" } ], "returns": { "type": "(uint64,byte[4])", "struct": "Data" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "set", "args": [ { "type": "address", "name": "key" }, { "type": "(uint64,byte[4])", "struct": "Data", "name": "value" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "delete", "args": [ { "type": "address", "name": "key" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "in_", "args": [ { "type": "address", "name": "key" } ], "returns": { "type": "bool" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "prefix", "args": [], "returns": { "type": "byte[]" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "maybe", "args": [ { "type": "address", "name": "key" } ], "returns": { "type": "((uint64,byte[4]),bool)" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "get_via_state", "args": [ { "type": "address", "name": "key" } ], "returns": { "type": "(uint64,byte[4])", "struct": "Data" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} } ], "arcs": [ 22, 28 ], "networks": {}, "state": { "schema": { "global": { "ints": 0, "bytes": 10 }, "local": { "ints": 0, "bytes": 0 } }, "keys": { "global": {}, "local": {}, "box": {} }, "maps": { "global": { "map": { "keyType": "address", "valueType": "Data", "prefix": "bWFw" } }, "local": {}, "box": {} } }, "bareActions": { "create": [ "NoOp" ], "call": [] }, "sourceInfo": { "approval": { "sourceInfo": [ { "pc": [ 297 ], "errorMessage": "check GlobalState exists" }, { "pc": [ 132 ], "errorMessage": "check self.map entry exists" }, { "pc": [ 125, 146, 176, 200, 214, 241, 290 ], "errorMessage": "invalid number of bytes for arc4.static_array" }, { "pc": [ 154, 184 ], "errorMessage": "invalid number of bytes for test_cases.global_map.account_struct.Data" } ], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuYXBwcm92YWxfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIGludGNibG9jayAxIDMyIDAgMTIKICAgIGJ5dGVjYmxvY2sgIm1hcCIgMHgxNTFmN2M3NSAweDAwCiAgICAvLyBnbG9iYWxfbWFwL2FjY291bnRfc3RydWN0LnB5OjIzLTI4CiAgICAvLyBjbGFzcyBHbG9iYWxNYXBBY2NvdW50U3RydWN0KAogICAgLy8gICAgIEFSQzRDb250cmFjdCwKICAgIC8vICAgICBzdGF0ZV90b3RhbHM9U3RhdGVUb3RhbHMoCiAgICAvLyAgICAgICAgIGdsb2JhbF9ieXRlcz0xMCwKICAgIC8vICAgICApLAogICAgLy8gKToKICAgIHR4biBOdW1BcHBBcmdzCiAgICBieiBtYWluX19fYWxnb3B5X2RlZmF1bHRfY3JlYXRlQDE3CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBhc3NlcnQKICAgIHB1c2hieXRlc3MgMHg5NTViNDIxNSAweDQwYTFkODkwIDB4MjkzMTdlZjQgMHhhYjhiMjEzYSAweDY4MmU0NzdjIDB4ZTNhM2RkNmQgMHhhNjUxZTQzYiAweGU2NWRiYmFmIC8vIG1ldGhvZCAiZ2V0KGFkZHJlc3MpKHVpbnQ2NCxieXRlWzRdKSIsIG1ldGhvZCAiZ2V0X3dpdGhfZGVmYXVsdChhZGRyZXNzLCh1aW50NjQsYnl0ZVs0XSkpKHVpbnQ2NCxieXRlWzRdKSIsIG1ldGhvZCAic2V0KGFkZHJlc3MsKHVpbnQ2NCxieXRlWzRdKSl2b2lkIiwgbWV0aG9kICJkZWxldGUoYWRkcmVzcyl2b2lkIiwgbWV0aG9kICJpbl8oYWRkcmVzcylib29sIiwgbWV0aG9kICJwcmVmaXgoKWJ5dGVbXSIsIG1ldGhvZCAibWF5YmUoYWRkcmVzcykoKHVpbnQ2NCxieXRlWzRdKSxib29sKSIsIG1ldGhvZCAiZ2V0X3ZpYV9zdGF0ZShhZGRyZXNzKSh1aW50NjQsYnl0ZVs0XSkiCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBtYXRjaCBnZXQgZ2V0X3dpdGhfZGVmYXVsdCBzZXQgZGVsZXRlIGluXyBtYWluX3ByZWZpeF9yb3V0ZUAxMSBtYXliZSBnZXRfdmlhX3N0YXRlCiAgICBlcnIKCm1haW5fcHJlZml4X3JvdXRlQDExOgogICAgLy8gZ2xvYmFsX21hcC9hY2NvdW50X3N0cnVjdC5weTo1MgogICAgLy8gQHB1YmxpYwogICAgcHVzaGJ5dGVzIDB4MTUxZjdjNzUwMDAzNmQ2MTcwCiAgICBsb2cKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCm1haW5fX19hbGdvcHlfZGVmYXVsdF9jcmVhdGVAMTc6CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgIQogICAgJiYKICAgIHJldHVybgoKCi8vIHRlc3RfY2FzZXMuZ2xvYmFsX21hcC5hY2NvdW50X3N0cnVjdC5HbG9iYWxNYXBBY2NvdW50U3RydWN0LmdldFtyb3V0aW5nXSgpIC0+IHZvaWQ6CmdldDoKICAgIC8vIGdsb2JhbF9tYXAvYWNjb3VudF9zdHJ1Y3QucHk6MzIKICAgIC8vIEBwdWJsaWMKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzEgLy8gMzIKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuc3RhdGljX2FycmF5PGFyYzQudWludDgsIDMyPgogICAgLy8gZ2xvYmFsX21hcC9hY2NvdW50X3N0cnVjdC5weTozNAogICAgLy8gcmV0dXJuIHNlbGYubWFwW2tleV0KICAgIGJ5dGVjXzAgLy8gIm1hcCIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgaW50Y18yIC8vIDAKICAgIHN3YXAKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5tYXAgZW50cnkgZXhpc3RzCiAgICAvLyBnbG9iYWxfbWFwL2FjY291bnRfc3RydWN0LnB5OjMyCiAgICAvLyBAcHVibGljCiAgICBieXRlY18xIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgoKLy8gdGVzdF9jYXNlcy5nbG9iYWxfbWFwLmFjY291bnRfc3RydWN0Lkdsb2JhbE1hcEFjY291bnRTdHJ1Y3QuZ2V0X3dpdGhfZGVmYXVsdFtyb3V0aW5nXSgpIC0+IHZvaWQ6CmdldF93aXRoX2RlZmF1bHQ6CiAgICAvLyBnbG9iYWxfbWFwL2FjY291bnRfc3RydWN0LnB5OjM2CiAgICAvLyBAcHVibGljCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18xIC8vIDMyCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnN0YXRpY19hcnJheTxhcmM0LnVpbnQ4LCAzMj4KICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gMTIKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIHRlc3RfY2FzZXMuZ2xvYmFsX21hcC5hY2NvdW50X3N0cnVjdC5EYXRhCiAgICAvLyBnbG9iYWxfbWFwL2FjY291bnRfc3RydWN0LnB5OjM4CiAgICAvLyByZXR1cm4gc2VsZi5tYXAuZ2V0KGtleSwgZGVmYXVsdD1kZWZhdWx0KQogICAgYnl0ZWNfMCAvLyAibWFwIgogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIGludGNfMiAvLyAwCiAgICBzd2FwCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgc2VsZWN0CiAgICAvLyBnbG9iYWxfbWFwL2FjY291bnRfc3RydWN0LnB5OjM2CiAgICAvLyBAcHVibGljCiAgICBieXRlY18xIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgoKLy8gdGVzdF9jYXNlcy5nbG9iYWxfbWFwLmFjY291bnRfc3RydWN0Lkdsb2JhbE1hcEFjY291bnRTdHJ1Y3Quc2V0W3JvdXRpbmddKCkgLT4gdm9pZDoKc2V0OgogICAgLy8gZ2xvYmFsX21hcC9hY2NvdW50X3N0cnVjdC5weTo0MAogICAgLy8gQHB1YmxpYwogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBsZW4KICAgIGludGNfMSAvLyAzMgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5zdGF0aWNfYXJyYXk8YXJjNC51aW50OCwgMzI+CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDEyCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciB0ZXN0X2Nhc2VzLmdsb2JhbF9tYXAuYWNjb3VudF9zdHJ1Y3QuRGF0YQogICAgLy8gZ2xvYmFsX21hcC9hY2NvdW50X3N0cnVjdC5weTo0MgogICAgLy8gc2VsZi5tYXBba2V5XSA9IHZhbHVlCiAgICBieXRlY18wIC8vICJtYXAiCiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgc3dhcAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIGdsb2JhbF9tYXAvYWNjb3VudF9zdHJ1Y3QucHk6NDAKICAgIC8vIEBwdWJsaWMKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0X2Nhc2VzLmdsb2JhbF9tYXAuYWNjb3VudF9zdHJ1Y3QuR2xvYmFsTWFwQWNjb3VudFN0cnVjdC5kZWxldGVbcm91dGluZ10oKSAtPiB2b2lkOgpkZWxldGU6CiAgICAvLyBnbG9iYWxfbWFwL2FjY291bnRfc3RydWN0LnB5OjQ0CiAgICAvLyBAcHVibGljCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18xIC8vIDMyCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnN0YXRpY19hcnJheTxhcmM0LnVpbnQ4LCAzMj4KICAgIC8vIGdsb2JhbF9tYXAvYWNjb3VudF9zdHJ1Y3QucHk6NDYKICAgIC8vIGRlbCBzZWxmLm1hcFtrZXldCiAgICBieXRlY18wIC8vICJtYXAiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGFwcF9nbG9iYWxfZGVsCiAgICAvLyBnbG9iYWxfbWFwL2FjY291bnRfc3RydWN0LnB5OjQ0CiAgICAvLyBAcHVibGljCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgoKLy8gdGVzdF9jYXNlcy5nbG9iYWxfbWFwLmFjY291bnRfc3RydWN0Lkdsb2JhbE1hcEFjY291bnRTdHJ1Y3QuaW5fW3JvdXRpbmddKCkgLT4gdm9pZDoKaW5fOgogICAgLy8gZ2xvYmFsX21hcC9hY2NvdW50X3N0cnVjdC5weTo0OAogICAgLy8gQHB1YmxpYwogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBsZW4KICAgIGludGNfMSAvLyAzMgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5zdGF0aWNfYXJyYXk8YXJjNC51aW50OCwgMzI+CiAgICAvLyBnbG9iYWxfbWFwL2FjY291bnRfc3RydWN0LnB5OjUwCiAgICAvLyByZXR1cm4ga2V5IGluIHNlbGYubWFwCiAgICBieXRlY18wIC8vICJtYXAiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGludGNfMiAvLyAwCiAgICBzd2FwCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYnVyeSAxCiAgICAvLyBnbG9iYWxfbWFwL2FjY291bnRfc3RydWN0LnB5OjQ4CiAgICAvLyBAcHVibGljCiAgICBieXRlY18yIC8vIDB4MDAKICAgIGludGNfMiAvLyAwCiAgICB1bmNvdmVyIDIKICAgIHNldGJpdAogICAgYnl0ZWNfMSAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18wIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RfY2FzZXMuZ2xvYmFsX21hcC5hY2NvdW50X3N0cnVjdC5HbG9iYWxNYXBBY2NvdW50U3RydWN0Lm1heWJlW3JvdXRpbmddKCkgLT4gdm9pZDoKbWF5YmU6CiAgICAvLyBnbG9iYWxfbWFwL2FjY291bnRfc3RydWN0LnB5OjU2CiAgICAvLyBAcHVibGljCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18xIC8vIDMyCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnN0YXRpY19hcnJheTxhcmM0LnVpbnQ4LCAzMj4KICAgIC8vIGdsb2JhbF9tYXAvYWNjb3VudF9zdHJ1Y3QucHk6NTgKICAgIC8vIHZhbHVlLCBleGlzdHMgPSBzZWxmLm1hcC5tYXliZShrZXkpCiAgICBieXRlY18wIC8vICJtYXAiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGludGNfMiAvLyAwCiAgICBzd2FwCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgZHVwCiAgICAvLyBnbG9iYWxfbWFwL2FjY291bnRfc3RydWN0LnB5OjU5CiAgICAvLyBpZiBub3QgZXhpc3RzOgogICAgYm56IG1heWJlX2FmdGVyX2lmX2Vsc2VAMwogICAgLy8gZ2xvYmFsX21hcC9hY2NvdW50X3N0cnVjdC5weTo2MC02MQogICAgLy8gIyBBVk0gYWN0dWFsbHkgcmV0dXJucyBhIHVpbnQ2NCBpZiB2YWx1ZSBub3QgcHJlc2VudAogICAgLy8gdmFsdWUgPSBEYXRhKGZvbz1VSW50NjQoKSwgYmFyPUJ5dGVzNCgpKQogICAgcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiAgICBidXJ5IDIKCm1heWJlX2FmdGVyX2lmX2Vsc2VAMzoKICAgIC8vIGdsb2JhbF9tYXAvYWNjb3VudF9zdHJ1Y3QucHk6NTYKICAgIC8vIEBwdWJsaWMKICAgIGJ5dGVjXzIgLy8gMHgwMAogICAgaW50Y18yIC8vIDAKICAgIHVuY292ZXIgMgogICAgc2V0Yml0CiAgICBkaWcgMQogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18xIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgoKLy8gdGVzdF9jYXNlcy5nbG9iYWxfbWFwLmFjY291bnRfc3RydWN0Lkdsb2JhbE1hcEFjY291bnRTdHJ1Y3QuZ2V0X3ZpYV9zdGF0ZVtyb3V0aW5nXSgpIC0+IHZvaWQ6CmdldF92aWFfc3RhdGU6CiAgICAvLyBnbG9iYWxfbWFwL2FjY291bnRfc3RydWN0LnB5OjY0CiAgICAvLyBAcHVibGljCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18xIC8vIDMyCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnN0YXRpY19hcnJheTxhcmM0LnVpbnQ4LCAzMj4KICAgIC8vIGdsb2JhbF9tYXAvYWNjb3VudF9zdHJ1Y3QucHk6NjYKICAgIC8vIHN0YXRlID0gc2VsZi5tYXAuc3RhdGUoa2V5KQogICAgYnl0ZWNfMCAvLyAibWFwIgogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBnbG9iYWxfbWFwL2FjY291bnRfc3RydWN0LnB5OjY3CiAgICAvLyByZXR1cm4gc3RhdGUudmFsdWUKICAgIGludGNfMiAvLyAwCiAgICBzd2FwCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgLy8gZ2xvYmFsX21hcC9hY2NvdW50X3N0cnVjdC5weTo2NAogICAgLy8gQHB1YmxpYwogICAgYnl0ZWNfMSAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18wIC8vIDEKICAgIHJldHVybgo=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuY2xlYXJfc3RhdGVfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIHB1c2hpbnQgMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CyAEASAADCYDA21hcAQVH3x1AQAxG0EAVTEZFEQxGESCCASVW0IVBECh2JAEKTF+9ASriyE6BGguR3wE46PdbQSmUeQ7BOZdu682GgCOCAAXACwASgBiAHAAAQCLALwAgAkVH3x1AANtYXCwIkMxGRQxGBQQQzYaAUkVIxJEKExQJExlRClMULAiQzYaAUkVIxJENhoCSRUlEkQoTwJQJExlTSlMULAiQzYaAUkVIxJENhoCSRUlEkQoTwJQTGciQzYaAUkVIxJEKExQaSJDNhoBSRUjEkQoTFAkTGVFASokTwJUKUxQsCJDNhoBSRUjEkQoTFAkTGVJQAAQgAwAAAAAAAAAAAAAAABFAiokTwJUSwFMUClMULAiQzYaAUkVIxJEKExQJExlRClMULAiQw==", "clear": "C4EBQw==" }, "compilerInfo": { "compiler": "puya", "compilerVersion": { "major": 99, "minor": 99, "patch": 99 } }, "events": [], "templateVariables": {} }