{ "name": "VotingContract", "structs": {}, "methods": [ { "name": "setTopic", "args": [ { "type": "string", "name": "topic" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "vote", "args": [ { "type": "pay", "name": "pay" } ], "returns": { "type": "bool" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "getVotes", "args": [], "returns": { "type": "uint64" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": true, "events": [], "recommendations": {} } ], "arcs": [ 22, 28 ], "networks": {}, "state": { "schema": { "global": { "ints": 1, "bytes": 1 }, "local": { "ints": 1, "bytes": 0 } }, "keys": { "global": { "topic": { "keyType": "AVMString", "valueType": "AVMBytes", "key": "dG9waWM=" }, "votes": { "keyType": "AVMString", "valueType": "AVMUint64", "key": "dm90ZXM=" } }, "local": { "voted": { "keyType": "AVMString", "valueType": "AVMUint64", "key": "dm90ZWQ=" } }, "box": {} }, "maps": { "global": {}, "local": {}, "box": {} } }, "bareActions": { "create": [ "NoOp" ], "call": [] }, "sourceInfo": { "approval": { "sourceInfo": [ { "pc": [ 130 ], "errorMessage": "Expected 2 transactions" }, { "pc": [ 138 ], "errorMessage": "Incorrect payment amount" }, { "pc": [ 63 ], "errorMessage": "OnCompletion must be NoOp" }, { "pc": [ 103 ], "errorMessage": "OnCompletion must be NoOp && can only call when creating" }, { "pc": [ 144 ], "errorMessage": "Payment sender must match transaction sender" }, { "pc": [ 167, 187 ], "errorMessage": "check GlobalState exists" }, { "pc": [ 124 ], "errorMessage": "transaction type is pay" } ], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMSAwCiAgICBieXRlY2Jsb2NrICJ2b3RlcyIgInRvcGljIiAidm90ZWQiIDB4MTUxZjdjNzUKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBibnogbWFpbl9hZnRlcl9pZl9lbHNlQDIKICAgIC8vIGNvbnRyYWN0cy92b3Rpbmcvdm90aW5nLmFsZ28udHM6MTQtMTcKICAgIC8vIHRvcGljID0gR2xvYmFsU3RhdGUoewogICAgLy8gICBpbml0aWFsVmFsdWU6IEJ5dGVzKCJkZWZhdWx0X3RvcGljIiksCiAgICAvLyAgIGtleTogQnl0ZXMoInRvcGljIiksCiAgICAvLyB9KTsKICAgIGJ5dGVjXzEgLy8gInRvcGljIgogICAgLy8gY29udHJhY3RzL3ZvdGluZy92b3RpbmcuYWxnby50czoxNQogICAgLy8gaW5pdGlhbFZhbHVlOiBCeXRlcygiZGVmYXVsdF90b3BpYyIpLAogICAgcHVzaGJ5dGVzICJkZWZhdWx0X3RvcGljIgogICAgLy8gY29udHJhY3RzL3ZvdGluZy92b3RpbmcuYWxnby50czoxNC0xNwogICAgLy8gdG9waWMgPSBHbG9iYWxTdGF0ZSh7CiAgICAvLyAgIGluaXRpYWxWYWx1ZTogQnl0ZXMoImRlZmF1bHRfdG9waWMiKSwKICAgIC8vICAga2V5OiBCeXRlcygidG9waWMiKSwKICAgIC8vIH0pOwogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIGNvbnRyYWN0cy92b3Rpbmcvdm90aW5nLmFsZ28udHM6MTgKICAgIC8vIHZvdGVzID0gR2xvYmFsU3RhdGUoeyBpbml0aWFsVmFsdWU6IFVpbnQ2NCgwKSwga2V5OiBCeXRlcygidm90ZXMiKSB9KTsKICAgIGJ5dGVjXzAgLy8gInZvdGVzIgogICAgaW50Y18xIC8vIDAKICAgIGFwcF9nbG9iYWxfcHV0CgptYWluX2FmdGVyX2lmX2Vsc2VAMjoKICAgIC8vIGNvbnRyYWN0cy92b3Rpbmcvdm90aW5nLmFsZ28udHM6MTMKICAgIC8vIGV4cG9ydCBkZWZhdWx0IGNsYXNzIFZvdGluZ0NvbnRyYWN0IGV4dGVuZHMgYXJjNC5Db250cmFjdCB7CiAgICB0eG4gTnVtQXBwQXJncwogICAgYnogbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTIKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gbXVzdCBiZSBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYXNzZXJ0CiAgICBwdXNoYnl0ZXNzIDB4NWEwYzM4NDIgMHhmM2M5ODZiMyAweGU4ZjQ3MGFiIC8vIG1ldGhvZCAic2V0VG9waWMoc3RyaW5nKXZvaWQiLCBtZXRob2QgInZvdGUocGF5KWJvb2wiLCBtZXRob2QgImdldFZvdGVzKCl1aW50NjQiCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBtYXRjaCBzZXRUb3BpYyB2b3RlIGdldFZvdGVzCiAgICBlcnIKCm1haW5fX19hbGdvdHNfXy5kZWZhdWx0Q3JlYXRlQDEyOgogICAgLy8gY29udHJhY3RzL3ZvdGluZy92b3RpbmcuYWxnby50czoxMwogICAgLy8gZXhwb3J0IGRlZmF1bHQgY2xhc3MgVm90aW5nQ29udHJhY3QgZXh0ZW5kcyBhcmM0LkNvbnRyYWN0IHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICAhCiAgICAmJgogICAgcmV0dXJuIC8vIG9uIGVycm9yOiBPbkNvbXBsZXRpb24gbXVzdCBiZSBOb09wICYmIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwoKCi8vIGNvbnRyYWN0cy92b3Rpbmcvdm90aW5nLmFsZ28udHM6OlZvdGluZ0NvbnRyYWN0LnNldFRvcGljW3JvdXRpbmddKCkgLT4gdm9pZDoKc2V0VG9waWM6CiAgICAvLyBjb250cmFjdHMvdm90aW5nL3ZvdGluZy5hbGdvLnRzOjIxCiAgICAvLyBAYXJjNC5hYmltZXRob2QoKQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZXh0cmFjdCAyIDAKICAgIC8vIGNvbnRyYWN0cy92b3Rpbmcvdm90aW5nLmFsZ28udHM6MTQtMTcKICAgIC8vIHRvcGljID0gR2xvYmFsU3RhdGUoewogICAgLy8gICBpbml0aWFsVmFsdWU6IEJ5dGVzKCJkZWZhdWx0X3RvcGljIiksCiAgICAvLyAgIGtleTogQnl0ZXMoInRvcGljIiksCiAgICAvLyB9KTsKICAgIGJ5dGVjXzEgLy8gInRvcGljIgogICAgLy8gY29udHJhY3RzL3ZvdGluZy92b3RpbmcuYWxnby50czoyMwogICAgLy8gdGhpcy50b3BpYy52YWx1ZSA9IEJ5dGVzKHRvcGljKTsKICAgIHN3YXAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBjb250cmFjdHMvdm90aW5nL3ZvdGluZy5hbGdvLnRzOjIxCiAgICAvLyBAYXJjNC5hYmltZXRob2QoKQogICAgaW50Y18wIC8vIDEKICAgIHJldHVybgoKCi8vIGNvbnRyYWN0cy92b3Rpbmcvdm90aW5nLmFsZ28udHM6OlZvdGluZ0NvbnRyYWN0LnZvdGVbcm91dGluZ10oKSAtPiB2b2lkOgp2b3RlOgogICAgLy8gY29udHJhY3RzL3ZvdGluZy92b3RpbmcuYWxnby50czoyNQogICAgLy8gQGFyYzQuYWJpbWV0aG9kKCkKICAgIHR4biBHcm91cEluZGV4CiAgICBpbnRjXzAgLy8gMQogICAgLQogICAgZHVwCiAgICBndHhucyBUeXBlRW51bQogICAgaW50Y18wIC8vIHBheQogICAgPT0KICAgIGFzc2VydCAvLyB0cmFuc2FjdGlvbiB0eXBlIGlzIHBheQogICAgLy8gY29udHJhY3RzL3ZvdGluZy92b3RpbmcuYWxnby50czoyNwogICAgLy8gYXNzZXJ0KG9wLkdsb2JhbC5ncm91cFNpemUgPT09IDIsICJFeHBlY3RlZCAyIHRyYW5zYWN0aW9ucyIpOwogICAgZ2xvYmFsIEdyb3VwU2l6ZQogICAgcHVzaGludCAyIC8vIDIKICAgID09CiAgICBhc3NlcnQgLy8gRXhwZWN0ZWQgMiB0cmFuc2FjdGlvbnMKICAgIC8vIGNvbnRyYWN0cy92b3Rpbmcvdm90aW5nLmFsZ28udHM6MjgKICAgIC8vIGFzc2VydChwYXkuYW1vdW50ID09PSAxMF8wMDAsICJJbmNvcnJlY3QgcGF5bWVudCBhbW91bnQiKTsKICAgIGR1cAogICAgZ3R4bnMgQW1vdW50CiAgICBwdXNoaW50IDEwMDAwIC8vIDEwMDAwCiAgICA9PQogICAgYXNzZXJ0IC8vIEluY29ycmVjdCBwYXltZW50IGFtb3VudAogICAgLy8gY29udHJhY3RzL3ZvdGluZy92b3RpbmcuYWxnby50czozMAogICAgLy8gcGF5LnNlbmRlciA9PT0gVHhuLnNlbmRlciwKICAgIGd0eG5zIFNlbmRlcgogICAgdHhuIFNlbmRlcgogICAgPT0KICAgIC8vIGNvbnRyYWN0cy92b3Rpbmcvdm90aW5nLmFsZ28udHM6MjktMzIKICAgIC8vIGFzc2VydCgKICAgIC8vICAgcGF5LnNlbmRlciA9PT0gVHhuLnNlbmRlciwKICAgIC8vICAgIlBheW1lbnQgc2VuZGVyIG11c3QgbWF0Y2ggdHJhbnNhY3Rpb24gc2VuZGVyIiwKICAgIC8vICk7CiAgICBhc3NlcnQgLy8gUGF5bWVudCBzZW5kZXIgbXVzdCBtYXRjaCB0cmFuc2FjdGlvbiBzZW5kZXIKICAgIC8vIGNvbnRyYWN0cy92b3Rpbmcvdm90aW5nLmFsZ28udHM6MzQKICAgIC8vIGlmICh0aGlzLnZvdGVkKFR4bi5zZW5kZXIpLmhhc1ZhbHVlKSB7CiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzEgLy8gMAogICAgLy8gY29udHJhY3RzL3ZvdGluZy92b3RpbmcuYWxnby50czoxOQogICAgLy8gdm90ZWQgPSBMb2NhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6IEJ5dGVzKCJ2b3RlZCIpIH0pOwogICAgYnl0ZWNfMiAvLyAidm90ZWQiCiAgICAvLyBjb250cmFjdHMvdm90aW5nL3ZvdGluZy5hbGdvLnRzOjM0CiAgICAvLyBpZiAodGhpcy52b3RlZChUeG4uc2VuZGVyKS5oYXNWYWx1ZSkgewogICAgYXBwX2xvY2FsX2dldF9leAogICAgYnVyeSAxCiAgICBieiB2b3RlX2FmdGVyX2lmX2Vsc2VAMwogICAgLy8gY29udHJhY3RzL3ZvdGluZy92b3RpbmcuYWxnby50czozNQogICAgLy8gcmV0dXJuIG5ldyBhcmM0LkJvb2woZmFsc2UpOyAvLyBBbHJlYWR5IHZvdGVkCiAgICBwdXNoYnl0ZXMgMHgwMAoKdm90ZV9hZnRlcl9pbmxpbmVkX2NvbnRyYWN0cy92b3Rpbmcvdm90aW5nLmFsZ28udHM6OlZvdGluZ0NvbnRyYWN0LnZvdGVANDoKICAgIC8vIGNvbnRyYWN0cy92b3Rpbmcvdm90aW5nLmFsZ28udHM6MjUKICAgIC8vIEBhcmM0LmFiaW1ldGhvZCgpCiAgICBieXRlY18zIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgp2b3RlX2FmdGVyX2lmX2Vsc2VAMzoKICAgIC8vIGNvbnRyYWN0cy92b3Rpbmcvdm90aW5nLmFsZ28udHM6MzgKICAgIC8vIHRoaXMudm90ZXMudmFsdWUgPSB0aGlzLnZvdGVzLnZhbHVlICsgMTsKICAgIGludGNfMSAvLyAwCiAgICAvLyBjb250cmFjdHMvdm90aW5nL3ZvdGluZy5hbGdvLnRzOjE4CiAgICAvLyB2b3RlcyA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiBVaW50NjQoMCksIGtleTogQnl0ZXMoInZvdGVzIikgfSk7CiAgICBieXRlY18wIC8vICJ2b3RlcyIKICAgIC8vIGNvbnRyYWN0cy92b3Rpbmcvdm90aW5nLmFsZ28udHM6MzgKICAgIC8vIHRoaXMudm90ZXMudmFsdWUgPSB0aGlzLnZvdGVzLnZhbHVlICsgMTsKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICBpbnRjXzAgLy8gMQogICAgKwogICAgLy8gY29udHJhY3RzL3ZvdGluZy92b3RpbmcuYWxnby50czoxOAogICAgLy8gdm90ZXMgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogVWludDY0KDApLCBrZXk6IEJ5dGVzKCJ2b3RlcyIpIH0pOwogICAgYnl0ZWNfMCAvLyAidm90ZXMiCiAgICAvLyBjb250cmFjdHMvdm90aW5nL3ZvdGluZy5hbGdvLnRzOjM4CiAgICAvLyB0aGlzLnZvdGVzLnZhbHVlID0gdGhpcy52b3Rlcy52YWx1ZSArIDE7CiAgICBzd2FwCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gY29udHJhY3RzL3ZvdGluZy92b3RpbmcuYWxnby50czozOQogICAgLy8gdGhpcy52b3RlZChUeG4uc2VuZGVyKS52YWx1ZSA9IDE7CiAgICB0eG4gU2VuZGVyCiAgICAvLyBjb250cmFjdHMvdm90aW5nL3ZvdGluZy5hbGdvLnRzOjE5CiAgICAvLyB2b3RlZCA9IExvY2FsU3RhdGU8dWludDY0Pih7IGtleTogQnl0ZXMoInZvdGVkIikgfSk7CiAgICBieXRlY18yIC8vICJ2b3RlZCIKICAgIC8vIGNvbnRyYWN0cy92b3Rpbmcvdm90aW5nLmFsZ28udHM6MzkKICAgIC8vIHRoaXMudm90ZWQoVHhuLnNlbmRlcikudmFsdWUgPSAxOwogICAgaW50Y18wIC8vIDEKICAgIGFwcF9sb2NhbF9wdXQKICAgIC8vIGNvbnRyYWN0cy92b3Rpbmcvdm90aW5nLmFsZ28udHM6NDAKICAgIC8vIHJldHVybiBuZXcgYXJjNC5Cb29sKHRydWUpOwogICAgcHVzaGJ5dGVzIDB4ODAKICAgIC8vIGNvbnRyYWN0cy92b3Rpbmcvdm90aW5nLmFsZ28udHM6MjUKICAgIC8vIEBhcmM0LmFiaW1ldGhvZCgpCiAgICBiIHZvdGVfYWZ0ZXJfaW5saW5lZF9jb250cmFjdHMvdm90aW5nL3ZvdGluZy5hbGdvLnRzOjpWb3RpbmdDb250cmFjdC52b3RlQDQKCgovLyBjb250cmFjdHMvdm90aW5nL3ZvdGluZy5hbGdvLnRzOjpWb3RpbmdDb250cmFjdC5nZXRWb3Rlc1tyb3V0aW5nXSgpIC0+IHZvaWQ6CmdldFZvdGVzOgogICAgLy8gY29udHJhY3RzL3ZvdGluZy92b3RpbmcuYWxnby50czo0NQogICAgLy8gcmV0dXJuIG5ldyBhcmM0LlVpbnQ2NCh0aGlzLnZvdGVzLnZhbHVlKTsKICAgIGludGNfMSAvLyAwCiAgICAvLyBjb250cmFjdHMvdm90aW5nL3ZvdGluZy5hbGdvLnRzOjE4CiAgICAvLyB2b3RlcyA9IEdsb2JhbFN0YXRlKHsgaW5pdGlhbFZhbHVlOiBVaW50NjQoMCksIGtleTogQnl0ZXMoInZvdGVzIikgfSk7CiAgICBieXRlY18wIC8vICJ2b3RlcyIKICAgIC8vIGNvbnRyYWN0cy92b3Rpbmcvdm90aW5nLmFsZ28udHM6NDUKICAgIC8vIHJldHVybiBuZXcgYXJjNC5VaW50NjQodGhpcy52b3Rlcy52YWx1ZSk7CiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgaXRvYgogICAgLy8gY29udHJhY3RzL3ZvdGluZy92b3RpbmcuYWxnby50czo0MwogICAgLy8gQGFyYzQuYWJpbWV0aG9kKHsgcmVhZG9ubHk6IHRydWUgfSkKICAgIGJ5dGVjXzMgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4K", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBjb250cmFjdHMvdm90aW5nL3ZvdGluZy5hbGdvLnRzOjpWb3RpbmdDb250cmFjdC5jbGVhclN0YXRlUHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIC8vIGNvbnRyYWN0cy92b3Rpbmcvdm90aW5nLmFsZ28udHM6NDkKICAgIC8vIHJldHVybiB0cnVlOwogICAgcHVzaGludCAxIC8vIDEKICAgIHJldHVybgo=" }, "byteCode": { "approval": "CiACAQAmBAV2b3RlcwV0b3BpYwV2b3RlZAQVH3x1MRhAABQpgA1kZWZhdWx0X3RvcGljZygjZzEbQQAkMRkURDEYRIIDBFoMOEIE88mGswTo9HCrNhoAjgMACQAUAFkAMRkUMRgUEEM2GgFXAgApTGciQzEWIglJOBAiEkQyBIECEkRJOAiBkE4SRDgAMQASRDEAIypjRQFBAAmAAQArTFCwIkMjKGVEIggoTGcxACoiZoABgEL/5iMoZUQWK0xQsCJD", "clear": "CoEBQw==" }, "compilerInfo": { "compiler": "puya", "compilerVersion": { "major": 5, "minor": 0, "patch": 0 } }, "events": [], "templateVariables": {} }