{ "name": "SustainabilityReportNFT", "structs": { "ReportMetadata": [ { "name": "assetId", "type": "uint64" }, { "name": "totalEmissions", "type": "uint64" }, { "name": "offsets", "type": "uint64" }, { "name": "timestamp", "type": "uint64" } ] }, "methods": [ { "name": "createApplication", "args": [], "returns": { "type": "void" }, "actions": { "create": [ "NoOp" ], "call": [] }, "readonly": false, "desc": "Called on application creation.", "events": [], "recommendations": {} }, { "name": "issueReport", "args": [ { "type": "byte[]", "name": "reportHash", "desc": "- SHA-256 hash of the report data" }, { "type": "string", "name": "reportPeriod", "desc": "- Human-readable period string (e.g., \"FY2025-26\")" }, { "type": "byte[]", "name": "reportPeriodHash", "desc": "- Hash of the period (used as box key component)" }, { "type": "uint64", "name": "totalEmissionsMT", "desc": "- Total emissions in metric tons" }, { "type": "uint64", "name": "offsetsMT", "desc": "- Total offsets in metric tons" }, { "type": "pay", "name": "mbrPay", "desc": "- Payment for box MBR + ASA MBR" } ], "returns": { "type": "uint64", "desc": "The created NFT asset ID" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "desc": "Issue a sustainability report as an ARC-69 NFT.\nOne report per address per period (enforced via box key).", "events": [ { "name": "ReportIssued", "args": [ { "type": "byte[32]", "name": "0" }, { "type": "uint64", "name": "1" }, { "type": "byte[]", "name": "2" }, { "type": "uint64", "name": "3" }, { "type": "uint64", "name": "4" }, { "type": "uint64", "name": "5" } ] } ], "recommendations": {} }, { "name": "verifyReport", "args": [ { "type": "byte[]", "name": "addr", "desc": "- The address to check" }, { "type": "byte[]", "name": "reportPeriodHash", "desc": "- Hash of the period" } ], "returns": { "type": "(uint64,uint64,uint64,uint64)", "struct": "ReportMetadata", "desc": "The report metadata as a tuple" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "desc": "Verify a report exists for a given address and period.", "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": { "reports": { "keyType": "AVMBytes", "valueType": "ReportMetadata", "prefix": "cg==" } } } }, "bareActions": { "create": [], "call": [] }, "sourceInfo": { "approval": { "sourceInfo": [ { "pc": [ 19 ], "errorMessage": "OnCompletion must be NoOp" }, { "pc": [ 153 ], "errorMessage": "Report already issued for this period" }, { "pc": [ 410 ], "errorMessage": "Report not found" }, { "pc": [ 139 ], "errorMessage": "assert target is match for conditions" }, { "pc": [ 68, 81, 93, 375, 391 ], "errorMessage": "invalid array length header" }, { "pc": [ 75, 87, 100, 382, 398 ], "errorMessage": "invalid number of bytes for arc4.dynamic_array" }, { "pc": [ 111, 121 ], "errorMessage": "invalid number of bytes for arc4.uint64" }, { "pc": [ 133 ], "errorMessage": "transaction type is pay" } ], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDIgOAogICAgYnl0ZWNibG9jayAiciIgMHgxNTFmN2M3NQogICAgLy8gc21hcnRfY29udHJhY3RzL3N1c3RhaW5hYmlsaXR5X25mdC9TdXN0YWluYWJpbGl0eVJlcG9ydE5GVC5hbGdvLnRzOjMyCiAgICAvLyBleHBvcnQgY2xhc3MgU3VzdGFpbmFiaWxpdHlSZXBvcnRORlQgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIG11c3QgYmUgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGJ6IG1haW5fY3JlYXRlX05vT3BANgogICAgcHVzaGJ5dGVzcyAweGM1YTNmOGY2IDB4YjY0YTVlNjAgLy8gbWV0aG9kICJpc3N1ZVJlcG9ydChieXRlW10sc3RyaW5nLGJ5dGVbXSx1aW50NjQsdWludDY0LHBheSl1aW50NjQiLCBtZXRob2QgInZlcmlmeVJlcG9ydChieXRlW10sYnl0ZVtdKSh1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpIgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgbWF0Y2ggaXNzdWVSZXBvcnQgdmVyaWZ5UmVwb3J0CiAgICBlcnIKCm1haW5fY3JlYXRlX05vT3BANjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9zdXN0YWluYWJpbGl0eV9uZnQvU3VzdGFpbmFiaWxpdHlSZXBvcnRORlQuYWxnby50czozMgogICAgLy8gZXhwb3J0IGNsYXNzIFN1c3RhaW5hYmlsaXR5UmVwb3J0TkZUIGV4dGVuZHMgQ29udHJhY3QgewogICAgcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIG1hdGNoIG1haW5fY3JlYXRlQXBwbGljYXRpb25fcm91dGVANwogICAgZXJyCgptYWluX2NyZWF0ZUFwcGxpY2F0aW9uX3JvdXRlQDc6CiAgICAvLyBzbWFydF9jb250cmFjdHMvc3VzdGFpbmFiaWxpdHlfbmZ0L1N1c3RhaW5hYmlsaXR5UmVwb3J0TkZULmFsZ28udHM6NDAKICAgIC8vIHB1YmxpYyBjcmVhdGVBcHBsaWNhdGlvbigpOiB2b2lkIHsKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvc3VzdGFpbmFiaWxpdHlfbmZ0L1N1c3RhaW5hYmlsaXR5UmVwb3J0TkZULmFsZ28udHM6OlN1c3RhaW5hYmlsaXR5UmVwb3J0TkZULmlzc3VlUmVwb3J0W3JvdXRpbmddKCkgLT4gdm9pZDoKaXNzdWVSZXBvcnQ6CiAgICAvLyBzbWFydF9jb250cmFjdHMvc3VzdGFpbmFiaWxpdHlfbmZ0L1N1c3RhaW5hYmlsaXR5UmVwb3J0TkZULmFsZ28udHM6NTYtNjMKICAgIC8vIHB1YmxpYyBpc3N1ZVJlcG9ydCgKICAgIC8vICAgcmVwb3J0SGFzaDogYnl0ZXMsCiAgICAvLyAgIHJlcG9ydFBlcmlvZDogc3RyaW5nLAogICAgLy8gICByZXBvcnRQZXJpb2RIYXNoOiBieXRlcywKICAgIC8vICAgdG90YWxFbWlzc2lvbnNNVDogdWludDY0LAogICAgLy8gICBvZmZzZXRzTVQ6IHVpbnQ2NCwKICAgIC8vICAgbWJyUGF5OiBndHhuLlBheW1lbnRUeG4sCiAgICAvLyApOiB1aW50NjQgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuZHluYW1pY19hcnJheTxhcmM0LnVpbnQ4PgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIHN3YXAKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5keW5hbWljX2FycmF5PGFyYzQudWludDg+CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5keW5hbWljX2FycmF5PGFyYzQudWludDg+CiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgZHVwCiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA1CiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWludDY0CiAgICBkdXAKICAgIGJ0b2kKICAgIHR4biBHcm91cEluZGV4CiAgICBpbnRjXzEgLy8gMQogICAgLQogICAgZHVwCiAgICBndHhucyBUeXBlRW51bQogICAgaW50Y18xIC8vIHBheQogICAgPT0KICAgIGFzc2VydCAvLyB0cmFuc2FjdGlvbiB0eXBlIGlzIHBheQogICAgLy8gc21hcnRfY29udHJhY3RzL3N1c3RhaW5hYmlsaXR5X25mdC9TdXN0YWluYWJpbGl0eVJlcG9ydE5GVC5hbGdvLnRzOjY1LTY3CiAgICAvLyBhc3NlcnRNYXRjaChtYnJQYXksIHsKICAgIC8vICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gfSkKICAgIGd0eG5zIFJlY2VpdmVyCiAgICAvLyBzbWFydF9jb250cmFjdHMvc3VzdGFpbmFiaWxpdHlfbmZ0L1N1c3RhaW5hYmlsaXR5UmVwb3J0TkZULmFsZ28udHM6NjYKICAgIC8vIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICAvLyBzbWFydF9jb250cmFjdHMvc3VzdGFpbmFiaWxpdHlfbmZ0L1N1c3RhaW5hYmlsaXR5UmVwb3J0TkZULmFsZ28udHM6NjUtNjcKICAgIC8vIGFzc2VydE1hdGNoKG1iclBheSwgewogICAgLy8gICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyB9KQogICAgPT0KICAgIGFzc2VydCAvLyBhc3NlcnQgdGFyZ2V0IGlzIG1hdGNoIGZvciBjb25kaXRpb25zCiAgICAvLyBzbWFydF9jb250cmFjdHMvc3VzdGFpbmFiaWxpdHlfbmZ0L1N1c3RhaW5hYmlsaXR5UmVwb3J0TkZULmFsZ28udHM6NzAKICAgIC8vIGNvbnN0IGJveEtleTogYnl0ZXMgPSBvcC5jb25jYXQoVHhuLnNlbmRlci5ieXRlcywgcmVwb3J0UGVyaW9kSGFzaCkKICAgIHR4biBTZW5kZXIKICAgIHVuY292ZXIgNQogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvc3VzdGFpbmFiaWxpdHlfbmZ0L1N1c3RhaW5hYmlsaXR5UmVwb3J0TkZULmFsZ28udHM6MzUKICAgIC8vIHJlcG9ydHMgPSBCb3hNYXA8Ynl0ZXMsIFJlcG9ydE1ldGFkYXRhPih7IGtleVByZWZpeDogJ3InIH0pCiAgICBieXRlY18wIC8vICJyIgogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvc3VzdGFpbmFiaWxpdHlfbmZ0L1N1c3RhaW5hYmlsaXR5UmVwb3J0TkZULmFsZ28udHM6NzQKICAgIC8vICF0aGlzLnJlcG9ydHMoYm94S2V5KS5leGlzdHMsCiAgICBkdXAKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgIQogICAgLy8gc21hcnRfY29udHJhY3RzL3N1c3RhaW5hYmlsaXR5X25mdC9TdXN0YWluYWJpbGl0eVJlcG9ydE5GVC5hbGdvLnRzOjczLTc2CiAgICAvLyBhc3NlcnQoCiAgICAvLyAgICF0aGlzLnJlcG9ydHMoYm94S2V5KS5leGlzdHMsCiAgICAvLyAgICdSZXBvcnQgYWxyZWFkeSBpc3N1ZWQgZm9yIHRoaXMgcGVyaW9kJywKICAgIC8vICkKICAgIGFzc2VydCAvLyBSZXBvcnQgYWxyZWFkeSBpc3N1ZWQgZm9yIHRoaXMgcGVyaW9kCiAgICAvLyBzbWFydF9jb250cmFjdHMvc3VzdGFpbmFiaWxpdHlfbmZ0L1N1c3RhaW5hYmlsaXR5UmVwb3J0TkZULmFsZ28udHM6NzgKICAgIC8vIGNvbnN0IHRpbWVzdGFtcDogdWludDY0ID0gR2xvYmFsLmxhdGVzdFRpbWVzdGFtcAogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgLy8gc21hcnRfY29udHJhY3RzL3N1c3RhaW5hYmlsaXR5X25mdC9TdXN0YWluYWJpbGl0eVJlcG9ydE5GVC5hbGdvLnRzOjkxLTEwMgogICAgLy8gY29uc3QgY3JlYXRlVHhuID0gaXR4bgogICAgLy8gICAuYXNzZXRDb25maWcoewogICAgLy8gICAgIHRvdGFsOiBVaW50NjQoMSksCiAgICAvLyAgICAgZGVjaW1hbHM6IFVpbnQ2NCgwKSwKICAgIC8vICAgICBhc3NldE5hbWU6ICdFY29UcmFjayBSZXBvcnQnLAogICAgLy8gICAgIHVuaXROYW1lOiAnRUNPUlBUJywKICAgIC8vICAgICBtYW5hZ2VyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgICByZXNlcnZlOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgICBub3RlOiBub3RlU3RyLAogICAgLy8gICAgIGZlZTogMCwKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvc3VzdGFpbmFiaWxpdHlfbmZ0L1N1c3RhaW5hYmlsaXR5UmVwb3J0TkZULmFsZ28udHM6OTcKICAgIC8vIG1hbmFnZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9zdXN0YWluYWJpbGl0eV9uZnQvU3VzdGFpbmFiaWxpdHlSZXBvcnRORlQuYWxnby50czo5OAogICAgLy8gcmVzZXJ2ZTogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICBkdXAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9zdXN0YWluYWJpbGl0eV9uZnQvU3VzdGFpbmFiaWxpdHlSZXBvcnRORlQuYWxnby50czo5OQogICAgLy8gbm90ZTogbm90ZVN0ciwKICAgIHB1c2hieXRlcyAie1wic3RhbmRhcmRcIjpcImFyYzY5XCIsXCJkZXNjcmlwdGlvblwiOlwiRWNvVHJhY2sgU3VzdGFpbmFiaWxpdHkgUmVwb3J0XCIsXCJtZWRpYVR5cGVcIjpcImFwcGxpY2F0aW9uL2pzb25cIn0iCiAgICBpdHhuX2ZpZWxkIE5vdGUKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXRSZXNlcnZlCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0TWFuYWdlcgogICAgLy8gc21hcnRfY29udHJhY3RzL3N1c3RhaW5hYmlsaXR5X25mdC9TdXN0YWluYWJpbGl0eVJlcG9ydE5GVC5hbGdvLnRzOjk2CiAgICAvLyB1bml0TmFtZTogJ0VDT1JQVCcsCiAgICBwdXNoYnl0ZXMgIkVDT1JQVCIKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXRVbml0TmFtZQogICAgLy8gc21hcnRfY29udHJhY3RzL3N1c3RhaW5hYmlsaXR5X25mdC9TdXN0YWluYWJpbGl0eVJlcG9ydE5GVC5hbGdvLnRzOjk1CiAgICAvLyBhc3NldE5hbWU6ICdFY29UcmFjayBSZXBvcnQnLAogICAgcHVzaGJ5dGVzICJFY29UcmFjayBSZXBvcnQiCiAgICBpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0TmFtZQogICAgLy8gc21hcnRfY29udHJhY3RzL3N1c3RhaW5hYmlsaXR5X25mdC9TdXN0YWluYWJpbGl0eVJlcG9ydE5GVC5hbGdvLnRzOjk0CiAgICAvLyBkZWNpbWFsczogVWludDY0KDApLAogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXREZWNpbWFscwogICAgLy8gc21hcnRfY29udHJhY3RzL3N1c3RhaW5hYmlsaXR5X25mdC9TdXN0YWluYWJpbGl0eVJlcG9ydE5GVC5hbGdvLnRzOjkzCiAgICAvLyB0b3RhbDogVWludDY0KDEpLAogICAgaW50Y18xIC8vIDEKICAgIGl0eG5fZmllbGQgQ29uZmlnQXNzZXRUb3RhbAogICAgLy8gc21hcnRfY29udHJhY3RzL3N1c3RhaW5hYmlsaXR5X25mdC9TdXN0YWluYWJpbGl0eVJlcG9ydE5GVC5hbGdvLnRzOjkxLTEwMQogICAgLy8gY29uc3QgY3JlYXRlVHhuID0gaXR4bgogICAgLy8gICAuYXNzZXRDb25maWcoewogICAgLy8gICAgIHRvdGFsOiBVaW50NjQoMSksCiAgICAvLyAgICAgZGVjaW1hbHM6IFVpbnQ2NCgwKSwKICAgIC8vICAgICBhc3NldE5hbWU6ICdFY29UcmFjayBSZXBvcnQnLAogICAgLy8gICAgIHVuaXROYW1lOiAnRUNPUlBUJywKICAgIC8vICAgICBtYW5hZ2VyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgICByZXNlcnZlOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgICBub3RlOiBub3RlU3RyLAogICAgLy8gICAgIGZlZTogMCwKICAgIC8vICAgfSkKICAgIHB1c2hpbnQgMyAvLyAzCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICAvLyBzbWFydF9jb250cmFjdHMvc3VzdGFpbmFiaWxpdHlfbmZ0L1N1c3RhaW5hYmlsaXR5UmVwb3J0TkZULmFsZ28udHM6MTAwCiAgICAvLyBmZWU6IDAsCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9zdXN0YWluYWJpbGl0eV9uZnQvU3VzdGFpbmFiaWxpdHlSZXBvcnRORlQuYWxnby50czo5MS0xMDIKICAgIC8vIGNvbnN0IGNyZWF0ZVR4biA9IGl0eG4KICAgIC8vICAgLmFzc2V0Q29uZmlnKHsKICAgIC8vICAgICB0b3RhbDogVWludDY0KDEpLAogICAgLy8gICAgIGRlY2ltYWxzOiBVaW50NjQoMCksCiAgICAvLyAgICAgYXNzZXROYW1lOiAnRWNvVHJhY2sgUmVwb3J0JywKICAgIC8vICAgICB1bml0TmFtZTogJ0VDT1JQVCcsCiAgICAvLyAgICAgbWFuYWdlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgICAgcmVzZXJ2ZTogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgICAgbm90ZTogbm90ZVN0ciwKICAgIC8vICAgICBmZWU6IDAsCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKICAgIGl0eG4gQ3JlYXRlZEFzc2V0SUQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9zdXN0YWluYWJpbGl0eV9uZnQvU3VzdGFpbmFiaWxpdHlSZXBvcnRORlQuYWxnby50czoxMDctMTEyCiAgICAvLyBjb25zdCBtZXRhZGF0YTogUmVwb3J0TWV0YWRhdGEgPSB7CiAgICAvLyAgIGFzc2V0SWQ6IG5ld0Fzc2V0SWQsCiAgICAvLyAgIHRvdGFsRW1pc3Npb25zOiB0b3RhbEVtaXNzaW9uc01ULAogICAgLy8gICBvZmZzZXRzOiBvZmZzZXRzTVQsCiAgICAvLyAgIHRpbWVzdGFtcDogdGltZXN0YW1wLAogICAgLy8gfQogICAgaXRvYgogICAgdW5jb3ZlciA1CiAgICBpdG9iCiAgICBkaWcgMQogICAgc3dhcAogICAgY29uY2F0CiAgICB1bmNvdmVyIDQKICAgIGl0b2IKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBpdG9iCiAgICBzd2FwCiAgICBkaWcgMQogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvc3VzdGFpbmFiaWxpdHlfbmZ0L1N1c3RhaW5hYmlsaXR5UmVwb3J0TkZULmFsZ28udHM6MTEzCiAgICAvLyB0aGlzLnJlcG9ydHMoYm94S2V5KS52YWx1ZSA9IGNsb25lKG1ldGFkYXRhKQogICAgdW5jb3ZlciAzCiAgICBzd2FwCiAgICBib3hfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvc3VzdGFpbmFiaWxpdHlfbmZ0L1N1c3RhaW5hYmlsaXR5UmVwb3J0TkZULmFsZ28udHM6MTE3CiAgICAvLyBUeG4uc2VuZGVyLmJ5dGVzLAogICAgdHhuIFNlbmRlcgogICAgLy8gc21hcnRfY29udHJhY3RzL3N1c3RhaW5hYmlsaXR5X25mdC9TdXN0YWluYWJpbGl0eVJlcG9ydE5GVC5hbGdvLnRzOjExNi0xMjMKICAgIC8vIGVtaXQ8UmVwb3J0SXNzdWVkPignUmVwb3J0SXNzdWVkJywKICAgIC8vICAgVHhuLnNlbmRlci5ieXRlcywKICAgIC8vICAgbmV3QXNzZXRJZCwKICAgIC8vICAgcmVwb3J0SGFzaCwKICAgIC8vICAgdG90YWxFbWlzc2lvbnNNVCwKICAgIC8vICAgb2Zmc2V0c01ULAogICAgLy8gICB0aW1lc3RhbXAsCiAgICAvLyApCiAgICBkaWcgMgogICAgY29uY2F0CiAgICBwdXNoYnl0ZXMgMHgwMDQyCiAgICBjb25jYXQKICAgIHVuY292ZXIgNAogICAgY29uY2F0CiAgICB1bmNvdmVyIDMKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgcHVzaGJ5dGVzIDB4YjA5MzU1NGEgLy8gbWV0aG9kICJSZXBvcnRJc3N1ZWQoYnl0ZVszMl0sdWludDY0LGJ5dGVbXSx1aW50NjQsdWludDY0LHVpbnQ2NCkiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgLy8gc21hcnRfY29udHJhY3RzL3N1c3RhaW5hYmlsaXR5X25mdC9TdXN0YWluYWJpbGl0eVJlcG9ydE5GVC5hbGdvLnRzOjU2LTYzCiAgICAvLyBwdWJsaWMgaXNzdWVSZXBvcnQoCiAgICAvLyAgIHJlcG9ydEhhc2g6IGJ5dGVzLAogICAgLy8gICByZXBvcnRQZXJpb2Q6IHN0cmluZywKICAgIC8vICAgcmVwb3J0UGVyaW9kSGFzaDogYnl0ZXMsCiAgICAvLyAgIHRvdGFsRW1pc3Npb25zTVQ6IHVpbnQ2NCwKICAgIC8vICAgb2Zmc2V0c01UOiB1aW50NjQsCiAgICAvLyAgIG1iclBheTogZ3R4bi5QYXltZW50VHhuLAogICAgLy8gKTogdWludDY0IHsKICAgIGJ5dGVjXzEgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvc3VzdGFpbmFiaWxpdHlfbmZ0L1N1c3RhaW5hYmlsaXR5UmVwb3J0TkZULmFsZ28udHM6OlN1c3RhaW5hYmlsaXR5UmVwb3J0TkZULnZlcmlmeVJlcG9ydFtyb3V0aW5nXSgpIC0+IHZvaWQ6CnZlcmlmeVJlcG9ydDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9zdXN0YWluYWJpbGl0eV9uZnQvU3VzdGFpbmFiaWxpdHlSZXBvcnRORlQuYWxnby50czoxMzUtMTM4CiAgICAvLyBwdWJsaWMgdmVyaWZ5UmVwb3J0KAogICAgLy8gICBhZGRyOiBieXRlcywKICAgIC8vICAgcmVwb3J0UGVyaW9kSGFzaDogYnl0ZXMsCiAgICAvLyApOiBSZXBvcnRNZXRhZGF0YSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5keW5hbWljX2FycmF5PGFyYzQudWludDg+CiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuZHluYW1pY19hcnJheTxhcmM0LnVpbnQ4PgogICAgZXh0cmFjdCAyIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9zdXN0YWluYWJpbGl0eV9uZnQvU3VzdGFpbmFiaWxpdHlSZXBvcnRORlQuYWxnby50czoxMzkKICAgIC8vIGNvbnN0IGJveEtleTogYnl0ZXMgPSBvcC5jb25jYXQoYWRkciwgcmVwb3J0UGVyaW9kSGFzaCkKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL3N1c3RhaW5hYmlsaXR5X25mdC9TdXN0YWluYWJpbGl0eVJlcG9ydE5GVC5hbGdvLnRzOjM1CiAgICAvLyByZXBvcnRzID0gQm94TWFwPGJ5dGVzLCBSZXBvcnRNZXRhZGF0YT4oeyBrZXlQcmVmaXg6ICdyJyB9KQogICAgYnl0ZWNfMCAvLyAiciIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL3N1c3RhaW5hYmlsaXR5X25mdC9TdXN0YWluYWJpbGl0eVJlcG9ydE5GVC5hbGdvLnRzOjE0MAogICAgLy8gYXNzZXJ0KHRoaXMucmVwb3J0cyhib3hLZXkpLmV4aXN0cywgJ1JlcG9ydCBub3QgZm91bmQnKQogICAgZHVwCiAgICBib3hfbGVuCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBSZXBvcnQgbm90IGZvdW5kCiAgICAvLyBzbWFydF9jb250cmFjdHMvc3VzdGFpbmFiaWxpdHlfbmZ0L1N1c3RhaW5hYmlsaXR5UmVwb3J0TkZULmFsZ28udHM6MTQxCiAgICAvLyByZXR1cm4gY2xvbmUodGhpcy5yZXBvcnRzKGJveEtleSkudmFsdWUpCiAgICBib3hfZ2V0CiAgICBwb3AKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9zdXN0YWluYWJpbGl0eV9uZnQvU3VzdGFpbmFiaWxpdHlSZXBvcnRORlQuYWxnby50czoxMzUtMTM4CiAgICAvLyBwdWJsaWMgdmVyaWZ5UmVwb3J0KAogICAgLy8gICBhZGRyOiBieXRlcywKICAgIC8vICAgcmVwb3J0UGVyaW9kSGFzaDogYnl0ZXMsCiAgICAvLyApOiBSZXBvcnRNZXRhZGF0YSB7CiAgICBieXRlY18xIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CyAEAAECCCYCAXIEFR98dTEZFEQxGEEAFoICBMWj+PYEtkpeYDYaAI4CABEBRACABLhEezY2GgCOAQABACNDNhoBSSJZJAhLARUSRDYaAkkiWSQITBUSRDYaA0kiWSQISwEVEkRXAgA2GgRJFSUSREkXNhoFSRUlEkRJFzEWIwlJOBAjEkQ4BzIKEkQxAE8FUChMUEm9RQEURDIHsTIKSYBieyJzdGFuZGFyZCI6ImFyYzY5IiwiZGVzY3JpcHRpb24iOiJFY29UcmFjayBTdXN0YWluYWJpbGl0eSBSZXBvcnQiLCJtZWRpYVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn2yBbIqsimABkVDT1JQVLIlgA9FY29UcmFjayBSZXBvcnSyJiKyIyOyIoEDshAisgGztDwWTwUWSwFMUE8EFlBPAhZMSwFQTwNMvzEASwJQgAIAQlBPBFBPA1BMUE8CUIAEsJNVSkxQsClMULAjQzYaAUkiWSQISwEVEkRXAgA2GgJJIlkkCEsBFRJEVwIAUChMUEm9RQFEvkgpTFCwI0M=", "clear": "C4EBQw==" }, "compilerInfo": { "compiler": "puya", "compilerVersion": { "major": 5, "minor": 3, "patch": 2 } }, "events": [ { "name": "ReportIssued", "args": [ { "type": "byte[32]", "name": "0" }, { "type": "uint64", "name": "1" }, { "type": "byte[]", "name": "2" }, { "type": "uint64", "name": "3" }, { "type": "uint64", "name": "4" }, { "type": "uint64", "name": "5" } ] } ], "templateVariables": {} }