{ "name": "PermissionDApp", "structs": {}, "methods": [ { "name": "write_box", "args": [ { "type": "byte[]", "name": "box_name", "desc": "The name of the box (should be 32 bytes)" }, { "type": "string", "name": "value", "desc": "The string value to write to the box" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "desc": "Write a value to a box. Only the creator can call this method.", "events": [], "recommendations": {} }, { "name": "delete_box", "args": [ { "type": "byte[]", "name": "box_name", "desc": "The name of the box to delete (should be 32 bytes)" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "desc": "Delete a box. Only the creator can call this method.", "events": [], "recommendations": {} } ], "arcs": [ 22, 28 ], "desc": "\n A permission-based dApp that allows only the creator to manage boxes.\n ", "networks": { "wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qzkkit8=": { "appID": 3647489997 } }, "state": { "schema": { "global": { "ints": 0, "bytes": 0 }, "local": { "ints": 0, "bytes": 0 } }, "keys": { "global": {}, "local": {}, "box": {} }, "maps": { "global": {}, "local": {}, "box": {} } }, "bareActions": { "create": [ "NoOp" ], "call": [ "DeleteApplication", "UpdateApplication" ] }, "sourceInfo": { "approval": { "sourceInfo": [ { "pc": [ 140, 183 ], "errorMessage": "Box name must be exactly 32 bytes" }, { "pc": [ 66 ], "errorMessage": "Only creator can delete application" }, { "pc": [ 174 ], "errorMessage": "Only creator can delete boxes" }, { "pc": [ 77 ], "errorMessage": "Only creator can update application" }, { "pc": [ 117 ], "errorMessage": "Only creator can write to boxes" }, { "pc": [ 89, 103, 160 ], "errorMessage": "invalid array length header" }, { "pc": [ 97, 111, 168 ], "errorMessage": "invalid number of bytes for arc4.dynamic_array" } ], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuYXBwcm92YWxfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIGludGNibG9jayAyIDEgMCAzMgogICAgLy8gY29udHJhY3QucHk6NgogICAgLy8gY2xhc3MgUGVybWlzc2lvbkRBcHAoQVJDNENvbnRyYWN0KToKICAgIHR4biBOdW1BcHBBcmdzCiAgICBieiBtYWluX2JhcmVfcm91dGluZ0AxMQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYXNzZXJ0CiAgICBwdXNoYnl0ZXNzIDB4ZjljODMyMTkgMHgxOGE0MjNkYiAvLyBtZXRob2QgIndyaXRlX2JveChieXRlW10sc3RyaW5nKXZvaWQiLCBtZXRob2QgImRlbGV0ZV9ib3goYnl0ZVtdKXZvaWQiCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBtYXRjaCB3cml0ZV9ib3ggZGVsZXRlX2JveAoKbWFpbl9hZnRlcl9pZl9lbHNlQDE2OgogICAgLy8gY29udHJhY3QucHk6NgogICAgLy8gY2xhc3MgUGVybWlzc2lvbkRBcHAoQVJDNENvbnRyYWN0KToKICAgIGVycgoKbWFpbl9iYXJlX3JvdXRpbmdAMTE6CiAgICAvLyBjb250cmFjdC5weTo2CiAgICAvLyBjbGFzcyBQZXJtaXNzaW9uREFwcChBUkM0Q29udHJhY3QpOgogICAgdHhuIE9uQ29tcGxldGlvbgogICAgc3dpdGNoIG1haW5fY3JlYXRlX2FwcGxpY2F0aW9uQDEyIG1haW5fYWZ0ZXJfaWZfZWxzZUAxNiBtYWluX2FmdGVyX2lmX2Vsc2VAMTYgbWFpbl9hZnRlcl9pZl9lbHNlQDE2IG1haW5fdXBkYXRlX2FwcGxpY2F0aW9uQDEzIG1haW5fZGVsZXRlX2FwcGxpY2F0aW9uQDE0CiAgICBlcnIKCm1haW5fZGVsZXRlX2FwcGxpY2F0aW9uQDE0OgogICAgLy8gY29udHJhY3QucHk6MzMKICAgIC8vIEBhcmM0LmJhcmVtZXRob2QoYWxsb3dfYWN0aW9ucz1bIkRlbGV0ZUFwcGxpY2F0aW9uIl0pCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYXNzZXJ0CiAgICAvLyBjb250cmFjdC5weTozOQogICAgLy8gVHhuLnNlbmRlciA9PSBHbG9iYWwuY3JlYXRvcl9hZGRyZXNzCiAgICB0eG4gU2VuZGVyCiAgICBnbG9iYWwgQ3JlYXRvckFkZHJlc3MKICAgID09CiAgICAvLyBjb250cmFjdC5weTozOC00MAogICAgLy8gYXNzZXJ0ICgKICAgIC8vICAgICBUeG4uc2VuZGVyID09IEdsb2JhbC5jcmVhdG9yX2FkZHJlc3MKICAgIC8vICksICJPbmx5IGNyZWF0b3IgY2FuIGRlbGV0ZSBhcHBsaWNhdGlvbiIKICAgIGFzc2VydCAvLyBPbmx5IGNyZWF0b3IgY2FuIGRlbGV0ZSBhcHBsaWNhdGlvbgogICAgLy8gY29udHJhY3QucHk6MzMKICAgIC8vIEBhcmM0LmJhcmVtZXRob2QoYWxsb3dfYWN0aW9ucz1bIkRlbGV0ZUFwcGxpY2F0aW9uIl0pCiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgptYWluX3VwZGF0ZV9hcHBsaWNhdGlvbkAxMzoKICAgIC8vIGNvbnRyYWN0LnB5OjI0CiAgICAvLyBAYXJjNC5iYXJlbWV0aG9kKGFsbG93X2FjdGlvbnM9WyJVcGRhdGVBcHBsaWNhdGlvbiJdKQogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydAogICAgLy8gY29udHJhY3QucHk6MzAKICAgIC8vIFR4bi5zZW5kZXIgPT0gR2xvYmFsLmNyZWF0b3JfYWRkcmVzcwogICAgdHhuIFNlbmRlcgogICAgZ2xvYmFsIENyZWF0b3JBZGRyZXNzCiAgICA9PQogICAgLy8gY29udHJhY3QucHk6MjktMzEKICAgIC8vIGFzc2VydCAoCiAgICAvLyAgICAgVHhuLnNlbmRlciA9PSBHbG9iYWwuY3JlYXRvcl9hZGRyZXNzCiAgICAvLyApLCAiT25seSBjcmVhdG9yIGNhbiB1cGRhdGUgYXBwbGljYXRpb24iCiAgICBhc3NlcnQgLy8gT25seSBjcmVhdG9yIGNhbiB1cGRhdGUgYXBwbGljYXRpb24KICAgIC8vIGNvbnRyYWN0LnB5OjI0CiAgICAvLyBAYXJjNC5iYXJlbWV0aG9kKGFsbG93X2FjdGlvbnM9WyJVcGRhdGVBcHBsaWNhdGlvbiJdKQogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKbWFpbl9jcmVhdGVfYXBwbGljYXRpb25AMTI6CiAgICAvLyBjb250cmFjdC5weToxNQogICAgLy8gQGFyYzQuYmFyZW1ldGhvZChhbGxvd19hY3Rpb25zPVsiTm9PcCJdLCBjcmVhdGU9InJlcXVpcmUiKQogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgICEKICAgIHJldHVybgoKCi8vIGRhcHAuY29udHJhY3QuUGVybWlzc2lvbkRBcHAud3JpdGVfYm94W3JvdXRpbmddKCkgLT4gdm9pZDoKd3JpdGVfYm94OgogICAgLy8gY29udHJhY3QucHk6NDIKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzIgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgZHVwCiAgICBpbnRjXzAgLy8gMgogICAgKwogICAgZGlnIDIKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5keW5hbWljX2FycmF5PGFyYzQudWludDg+CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGludGNfMiAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBkdXAKICAgIGludGNfMCAvLyAyCiAgICArCiAgICBkaWcgMgogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8YXJjNC51aW50OD4KICAgIC8vIGNvbnRyYWN0LnB5OjUxCiAgICAvLyBhc3NlcnQgVHhuLnNlbmRlciA9PSBHbG9iYWwuY3JlYXRvcl9hZGRyZXNzLCAiT25seSBjcmVhdG9yIGNhbiB3cml0ZSB0byBib3hlcyIKICAgIHR4biBTZW5kZXIKICAgIGdsb2JhbCBDcmVhdG9yQWRkcmVzcwogICAgPT0KICAgIGFzc2VydCAvLyBPbmx5IGNyZWF0b3IgY2FuIHdyaXRlIHRvIGJveGVzCiAgICAvLyBjb250cmFjdC5weTo2MAogICAgLy8gYWN0dWFsX2JveF9uYW1lID0gb3AuZXh0cmFjdChib3hfbmFtZV9ieXRlcywgMiwgYWN0dWFsX2JveF9uYW1lX2xlbmd0aCkKICAgIHVuY292ZXIgMwogICAgaW50Y18wIC8vIDIKICAgIGRpZyA0CiAgICBleHRyYWN0MwogICAgZHVwCiAgICBjb3ZlciAyCiAgICBjb3ZlciA0CiAgICAvLyBjb250cmFjdC5weTo2NAogICAgLy8gYWN0dWFsX3ZhbHVlID0gb3AuZXh0cmFjdCh2YWx1ZV9ieXRlcywgMiwgYWN0dWFsX3ZhbHVlX2xlbmd0aCkKICAgIHVuY292ZXIgMgogICAgaW50Y18wIC8vIDIKICAgIHVuY292ZXIgMgogICAgZXh0cmFjdDMKICAgIGNvdmVyIDIKICAgIC8vIGNvbnRyYWN0LnB5OjY2CiAgICAvLyBhc3NlcnQgYWN0dWFsX2JveF9uYW1lX2xlbmd0aCA9PSAzMiwgIkJveCBuYW1lIG11c3QgYmUgZXhhY3RseSAzMiBieXRlcyIKICAgIHN3YXAKICAgIGludGNfMyAvLyAzMgogICAgPT0KICAgIGFzc2VydCAvLyBCb3ggbmFtZSBtdXN0IGJlIGV4YWN0bHkgMzIgYnl0ZXMKICAgIC8vIGNvbnRyYWN0LnB5OjY4LTcwCiAgICAvLyAjIFNpbXBsZSBhcHByb2FjaDogYWx3YXlzIGRlbGV0ZSB0aGUgYm94IGZpcnN0IGlmIGl0IGV4aXN0cywgdGhlbiBjcmVhdGUgaXQKICAgIC8vICMgVGhpcyBhdm9pZHMgdGhlIGxlbmd0aCBjb21wYXJpc29uIGlzc3VlCiAgICAvLyBfbGVuZ3RoLCBleGlzdHMgPSBvcC5Cb3gubGVuZ3RoKGFjdHVhbF9ib3hfbmFtZSkKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgLy8gY29udHJhY3QucHk6NzEKICAgIC8vIGlmIGV4aXN0czoKICAgIGJ6IHdyaXRlX2JveF9hZnRlcl9pZl9lbHNlQDMKICAgIC8vIGNvbnRyYWN0LnB5OjcyCiAgICAvLyBvcC5Cb3guZGVsZXRlKGFjdHVhbF9ib3hfbmFtZSkKICAgIGRpZyAxCiAgICBib3hfZGVsCiAgICBwb3AKCndyaXRlX2JveF9hZnRlcl9pZl9lbHNlQDM6CiAgICAvLyBjb250cmFjdC5weTo3NC03NQogICAgLy8gIyBXcml0ZSB0byBib3ggKGNyZWF0ZSBuZXcgYm94KQogICAgLy8gb3AuQm94LnB1dChhY3R1YWxfYm94X25hbWUsIGFjdHVhbF92YWx1ZSkKICAgIGR1cDIKICAgIGJveF9wdXQKICAgIC8vIGNvbnRyYWN0LnB5OjQyCiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBkYXBwLmNvbnRyYWN0LlBlcm1pc3Npb25EQXBwLmRlbGV0ZV9ib3hbcm91dGluZ10oKSAtPiB2b2lkOgpkZWxldGVfYm94OgogICAgLy8gY29udHJhY3QucHk6NzcKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzIgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgZHVwCiAgICBpbnRjXzAgLy8gMgogICAgKwogICAgZGlnIDIKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5keW5hbWljX2FycmF5PGFyYzQudWludDg+CiAgICAvLyBjb250cmFjdC5weTo4NQogICAgLy8gYXNzZXJ0IFR4bi5zZW5kZXIgPT0gR2xvYmFsLmNyZWF0b3JfYWRkcmVzcywgIk9ubHkgY3JlYXRvciBjYW4gZGVsZXRlIGJveGVzIgogICAgdHhuIFNlbmRlcgogICAgZ2xvYmFsIENyZWF0b3JBZGRyZXNzCiAgICA9PQogICAgYXNzZXJ0IC8vIE9ubHkgY3JlYXRvciBjYW4gZGVsZXRlIGJveGVzCiAgICAvLyBjb250cmFjdC5weTo5MgogICAgLy8gYWN0dWFsX2JveF9uYW1lID0gb3AuZXh0cmFjdChib3hfbmFtZV9ieXRlcywgMiwgYWN0dWFsX2JveF9uYW1lX2xlbmd0aCkKICAgIHN3YXAKICAgIGludGNfMCAvLyAyCiAgICBkaWcgMgogICAgZXh0cmFjdDMKICAgIC8vIGNvbnRyYWN0LnB5Ojk0CiAgICAvLyBhc3NlcnQgYWN0dWFsX2JveF9uYW1lX2xlbmd0aCA9PSAzMiwgIkJveCBuYW1lIG11c3QgYmUgZXhhY3RseSAzMiBieXRlcyIKICAgIHN3YXAKICAgIGludGNfMyAvLyAzMgogICAgPT0KICAgIGFzc2VydCAvLyBCb3ggbmFtZSBtdXN0IGJlIGV4YWN0bHkgMzIgYnl0ZXMKICAgIC8vIGNvbnRyYWN0LnB5Ojk2LTk3CiAgICAvLyAjIERlbGV0ZSB0aGUgYm94CiAgICAvLyBvcC5Cb3guZGVsZXRlKGFjdHVhbF9ib3hfbmFtZSkKICAgIGJveF9kZWwKICAgIHBvcAogICAgLy8gY29udHJhY3QucHk6NzcKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgo=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuY2xlYXJfc3RhdGVfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIHB1c2hpbnQgMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CyAEAgEAIDEbQQAdMRkURDEYRIICBPnIMhkEGKQj2zYaAI4CACwAcwAxGY0GABf/7//v/+8ADAABADEYRDEAMgkSRCNDMRhEMQAyCRJEI0MxGBRDNhoBSSRZSSIISwIVEkQ2GgJJJFlJIghLAhUSRDEAMgkSRE8DIksEWElOAk4ETwIiTwJYTgJMJRJEvUUBQQAESwG8SEq/I0M2GgFJJFlJIghLAhUSRDEAMgkSREwiSwJYTCUSRLxII0M=", "clear": "C4EBQw==" }, "compilerInfo": { "compiler": "puya", "compilerVersion": { "major": 5, "minor": 8, "patch": 1 } }, "events": [], "templateVariables": {} }