{ "name": "IntentRegistry", "structs": {}, "methods": [ { "name": "register_session_root", "args": [ { "type": "byte[]", "name": "session_id" }, { "type": "byte[]", "name": "merkle_root" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "desc": "Commit the Merkle root of all intents in a session on-chain.\nsession_id : 32-byte unique identifier for this payment session. merkle_root : 32-byte SHA-256 Merkle root of all intent hashes.", "events": [], "recommendations": {} }, { "name": "get_session_root", "args": [ { "type": "byte[]", "name": "session_id" } ], "returns": { "type": "byte[]" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "desc": "Return the committed Merkle root for a session.", "events": [], "recommendations": {} }, { "name": "register_intent", "args": [ { "type": "byte[]", "name": "tx_id_hash" }, { "type": "byte[]", "name": "ipfs_cid" }, { "type": "byte[]", "name": "merkle_leaf" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "desc": "Link an on-chain transaction to its off-chain AgPP Intent Document.\ntx_id_hash : sha256 of the Algorand transaction ID (32 bytes). ipfs_cid : IPFS content identifier of the intent document (\u226464 bytes). merkle_leaf : sha256 of the IntentDocument JSON (used for Merkle proof).", "events": [], "recommendations": {} }, { "name": "get_ipfs_cid", "args": [ { "type": "byte[]", "name": "tx_id_hash" } ], "returns": { "type": "byte[]" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "desc": "Retrieve the IPFS CID for an intent, given the hash of its tx_id.", "events": [], "recommendations": {} }, { "name": "has_intent", "args": [ { "type": "byte[]", "name": "tx_id_hash" } ], "returns": { "type": "bool" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "desc": "Returns True if the intent has been registered.", "events": [], "recommendations": {} } ], "arcs": [ 22, 28 ], "desc": "\n IntentRegistry \u2014 Layer 2 of AgPP.\n\n Stores:\n session_roots: session_id (32B) -> merkle_root (32B)\n intent_cids: tx_id_hash (32B) -> ipfs_cid (up to 64B)\n\n All intent hashes are committed here so any party can\n audit a specific payment without revealing others (selective\n Merkle disclosure). Note prefix: b\"x402:axiom:intent\"\n ", "networks": {}, "state": { "schema": { "global": { "ints": 0, "bytes": 0 }, "local": { "ints": 0, "bytes": 0 } }, "keys": { "global": {}, "local": {}, "box": {} }, "maps": { "global": {}, "local": {}, "box": { "session_roots": { "keyType": "AVMBytes", "valueType": "AVMBytes", "prefix": "c3I6" }, "intent_cids": { "keyType": "AVMBytes", "valueType": "AVMBytes", "prefix": "aWM6" } } } }, "bareActions": { "create": [ "NoOp" ], "call": [] }, "sourceInfo": { "approval": { "sourceInfo": [ { "pc": [ 269 ], "errorMessage": "intent not registered" }, { "pc": [ 90, 106, 144, 184, 200, 216, 251, 291 ], "errorMessage": "invalid array length header" }, { "pc": [ 97, 113, 151, 191, 207, 222, 258, 298 ], "errorMessage": "invalid number of bytes for arc4.dynamic_array" }, { "pc": [ 234 ], "errorMessage": "ipfs_cid must be <= 64 bytes" }, { "pc": [ 127 ], "errorMessage": "merkle_root must be 32 bytes" }, { "pc": [ 162 ], "errorMessage": "session not found" }, { "pc": [ 122 ], "errorMessage": "session_id must be 32 bytes" }, { "pc": [ 228 ], "errorMessage": "tx_id_hash must be 32 bytes" } ], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuYXBwcm92YWxfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIGludGNibG9jayAwIDIgMSAzMgogICAgYnl0ZWNibG9jayAweDE1MWY3Yzc1IDB4Njk2MzNhIDB4NzM3MjNhCiAgICAvLyBzbWFydF9jb250cmFjdHMvaW50ZW50X3JlZ2lzdHJ5L2NvbnRyYWN0LnB5OjUKICAgIC8vIGNsYXNzIEludGVudFJlZ2lzdHJ5KEFSQzRDb250cmFjdCk6CiAgICB0eG4gTnVtQXBwQXJncwogICAgYnogbWFpbl9fX2FsZ29weV9kZWZhdWx0X2NyZWF0ZUAxNAogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYXNzZXJ0CiAgICBwdXNoYnl0ZXNzIDB4YTc2NDczNWQgMHhiOWFmOTFlYSAweDhlMGVmNTc3IDB4ZDk4YmFlY2QgMHhjYWE2MDgwNiAvLyBtZXRob2QgInJlZ2lzdGVyX3Nlc3Npb25fcm9vdChieXRlW10sYnl0ZVtdKXZvaWQiLCBtZXRob2QgImdldF9zZXNzaW9uX3Jvb3QoYnl0ZVtdKWJ5dGVbXSIsIG1ldGhvZCAicmVnaXN0ZXJfaW50ZW50KGJ5dGVbXSxieXRlW10sYnl0ZVtdKXZvaWQiLCBtZXRob2QgImdldF9pcGZzX2NpZChieXRlW10pYnl0ZVtdIiwgbWV0aG9kICJoYXNfaW50ZW50KGJ5dGVbXSlib29sIgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgbWF0Y2ggcmVnaXN0ZXJfc2Vzc2lvbl9yb290IGdldF9zZXNzaW9uX3Jvb3QgcmVnaXN0ZXJfaW50ZW50IGdldF9pcGZzX2NpZCBoYXNfaW50ZW50CiAgICBlcnIKCm1haW5fX19hbGdvcHlfZGVmYXVsdF9jcmVhdGVAMTQ6CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgIQogICAgJiYKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy5pbnRlbnRfcmVnaXN0cnkuY29udHJhY3QuSW50ZW50UmVnaXN0cnkucmVnaXN0ZXJfc2Vzc2lvbl9yb290W3JvdXRpbmddKCkgLT4gdm9pZDoKcmVnaXN0ZXJfc2Vzc2lvbl9yb290OgogICAgLy8gc21hcnRfY29udHJhY3RzL2ludGVudF9yZWdpc3RyeS9jb250cmFjdC5weToyOAogICAgLy8gQGFiaW1ldGhvZCgpCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBpbnRjXzEgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5keW5hbWljX2FycmF5PGFyYzQudWludDg+CiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18xIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuZHluYW1pY19hcnJheTxhcmM0LnVpbnQ4PgogICAgZXh0cmFjdCAyIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbnRlbnRfcmVnaXN0cnkvY29udHJhY3QucHk6MzgKICAgIC8vIGFzc2VydCBzZXNzaW9uX2lkLmxlbmd0aCA9PSAzMiwgInNlc3Npb25faWQgbXVzdCBiZSAzMiBieXRlcyIKICAgIGRpZyAxCiAgICBsZW4KICAgIGludGNfMyAvLyAzMgogICAgPT0KICAgIGFzc2VydCAvLyBzZXNzaW9uX2lkIG11c3QgYmUgMzIgYnl0ZXMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbnRlbnRfcmVnaXN0cnkvY29udHJhY3QucHk6MzkKICAgIC8vIGFzc2VydCBtZXJrbGVfcm9vdC5sZW5ndGggPT0gMzIsICJtZXJrbGVfcm9vdCBtdXN0IGJlIDMyIGJ5dGVzIgogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyAzMgogICAgPT0KICAgIGFzc2VydCAvLyBtZXJrbGVfcm9vdCBtdXN0IGJlIDMyIGJ5dGVzCiAgICAvLyBzbWFydF9jb250cmFjdHMvaW50ZW50X3JlZ2lzdHJ5L2NvbnRyYWN0LnB5OjQwCiAgICAvLyBzZWxmLnNlc3Npb25fcm9vdHNbc2Vzc2lvbl9pZF0gPSBtZXJrbGVfcm9vdAogICAgYnl0ZWNfMiAvLyAweDczNzIzYQogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIGR1cAogICAgYm94X2RlbAogICAgcG9wCiAgICBzd2FwCiAgICBib3hfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvaW50ZW50X3JlZ2lzdHJ5L2NvbnRyYWN0LnB5OjI4CiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIGludGNfMiAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMuaW50ZW50X3JlZ2lzdHJ5LmNvbnRyYWN0LkludGVudFJlZ2lzdHJ5LmdldF9zZXNzaW9uX3Jvb3Rbcm91dGluZ10oKSAtPiB2b2lkOgpnZXRfc2Vzc2lvbl9yb290OgogICAgLy8gc21hcnRfY29udHJhY3RzL2ludGVudF9yZWdpc3RyeS9jb250cmFjdC5weTo0MgogICAgLy8gQGFiaW1ldGhvZCgpCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBpbnRjXzEgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5keW5hbWljX2FycmF5PGFyYzQudWludDg+CiAgICBleHRyYWN0IDIgMAogICAgLy8gc21hcnRfY29udHJhY3RzL2ludGVudF9yZWdpc3RyeS9jb250cmFjdC5weTo0NQogICAgLy8gYXNzZXJ0IHNlc3Npb25faWQgaW4gc2VsZi5zZXNzaW9uX3Jvb3RzLCAic2Vzc2lvbiBub3QgZm91bmQiCiAgICBieXRlY18yIC8vIDB4NzM3MjNhCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGR1cAogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gc2Vzc2lvbiBub3QgZm91bmQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbnRlbnRfcmVnaXN0cnkvY29udHJhY3QucHk6NDYKICAgIC8vIHJldHVybiBzZWxmLnNlc3Npb25fcm9vdHNbc2Vzc2lvbl9pZF0KICAgIGJveF9nZXQKICAgIHBvcAogICAgLy8gc21hcnRfY29udHJhY3RzL2ludGVudF9yZWdpc3RyeS9jb250cmFjdC5weTo0MgogICAgLy8gQGFiaW1ldGhvZCgpCiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18yIC8vIDEKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy5pbnRlbnRfcmVnaXN0cnkuY29udHJhY3QuSW50ZW50UmVnaXN0cnkucmVnaXN0ZXJfaW50ZW50W3JvdXRpbmddKCkgLT4gdm9pZDoKcmVnaXN0ZXJfaW50ZW50OgogICAgLy8gc21hcnRfY29udHJhY3RzL2ludGVudF9yZWdpc3RyeS9jb250cmFjdC5weTo1MgogICAgLy8gQGFiaW1ldGhvZCgpCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBpbnRjXzEgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC5keW5hbWljX2FycmF5PGFyYzQudWludDg+CiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18xIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuZHluYW1pY19hcnJheTxhcmM0LnVpbnQ4PgogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDMKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2IC8vIG9uIGVycm9yOiBpbnZhbGlkIGFycmF5IGxlbmd0aCBoZWFkZXIKICAgIGludGNfMSAvLyAyCiAgICArCiAgICBzd2FwCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuZHluYW1pY19hcnJheTxhcmM0LnVpbnQ4PgogICAgLy8gc21hcnRfY29udHJhY3RzL2ludGVudF9yZWdpc3RyeS9jb250cmFjdC5weTo2NgogICAgLy8gYXNzZXJ0IHR4X2lkX2hhc2gubGVuZ3RoID09IDMyLCAidHhfaWRfaGFzaCBtdXN0IGJlIDMyIGJ5dGVzIgogICAgZGlnIDEKICAgIGxlbgogICAgaW50Y18zIC8vIDMyCiAgICA9PQogICAgYXNzZXJ0IC8vIHR4X2lkX2hhc2ggbXVzdCBiZSAzMiBieXRlcwogICAgLy8gc21hcnRfY29udHJhY3RzL2ludGVudF9yZWdpc3RyeS9jb250cmFjdC5weTo2NwogICAgLy8gYXNzZXJ0IGlwZnNfY2lkLmxlbmd0aCA8PSA2NCwgImlwZnNfY2lkIG11c3QgYmUgPD0gNjQgYnl0ZXMiCiAgICBkdXAKICAgIGxlbgogICAgcHVzaGludCA2NAogICAgPD0KICAgIGFzc2VydCAvLyBpcGZzX2NpZCBtdXN0IGJlIDw9IDY0IGJ5dGVzCiAgICAvLyBzbWFydF9jb250cmFjdHMvaW50ZW50X3JlZ2lzdHJ5L2NvbnRyYWN0LnB5OjY4LTY5CiAgICAvLyAjIFN0b3JlIENJRDsgbWVya2xlX2xlYWYgaXMgbG9nZ2VkIGluIHRoZSBub3RlIGZpZWxkIGZvciBpbmRleGVyIHF1ZXJpZXMKICAgIC8vIHNlbGYuaW50ZW50X2NpZHNbdHhfaWRfaGFzaF0gPSBpcGZzX2NpZAogICAgYnl0ZWNfMSAvLyAweDY5NjMzYQogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIGR1cAogICAgYm94X2RlbAogICAgcG9wCiAgICBzd2FwCiAgICBib3hfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvaW50ZW50X3JlZ2lzdHJ5L2NvbnRyYWN0LnB5OjUyCiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIGludGNfMiAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMuaW50ZW50X3JlZ2lzdHJ5LmNvbnRyYWN0LkludGVudFJlZ2lzdHJ5LmdldF9pcGZzX2NpZFtyb3V0aW5nXSgpIC0+IHZvaWQ6CmdldF9pcGZzX2NpZDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbnRlbnRfcmVnaXN0cnkvY29udHJhY3QucHk6NzEKICAgIC8vIEBhYmltZXRob2QoKQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18xIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuZHluYW1pY19hcnJheTxhcmM0LnVpbnQ4PgogICAgZXh0cmFjdCAyIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbnRlbnRfcmVnaXN0cnkvY29udHJhY3QucHk6NzQKICAgIC8vIGFzc2VydCB0eF9pZF9oYXNoIGluIHNlbGYuaW50ZW50X2NpZHMsICJpbnRlbnQgbm90IHJlZ2lzdGVyZWQiCiAgICBieXRlY18xIC8vIDB4Njk2MzNhCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGR1cAogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gaW50ZW50IG5vdCByZWdpc3RlcmVkCiAgICAvLyBzbWFydF9jb250cmFjdHMvaW50ZW50X3JlZ2lzdHJ5L2NvbnRyYWN0LnB5Ojc1CiAgICAvLyByZXR1cm4gc2VsZi5pbnRlbnRfY2lkc1t0eF9pZF9oYXNoXQogICAgYm94X2dldAogICAgcG9wCiAgICAvLyBzbWFydF9jb250cmFjdHMvaW50ZW50X3JlZ2lzdHJ5L2NvbnRyYWN0LnB5OjcxCiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzIgLy8gMQogICAgcmV0dXJuCgoKLy8gc21hcnRfY29udHJhY3RzLmludGVudF9yZWdpc3RyeS5jb250cmFjdC5JbnRlbnRSZWdpc3RyeS5oYXNfaW50ZW50W3JvdXRpbmddKCkgLT4gdm9pZDoKaGFzX2ludGVudDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbnRlbnRfcmVnaXN0cnkvY29udHJhY3QucHk6ODEKICAgIC8vIEBhYmltZXRob2QoKQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18xIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuZHluYW1pY19hcnJheTxhcmM0LnVpbnQ4PgogICAgZXh0cmFjdCAyIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbnRlbnRfcmVnaXN0cnkvY29udHJhY3QucHk6ODQKICAgIC8vIGV4aXN0cyA9IHR4X2lkX2hhc2ggaW4gc2VsZi5pbnRlbnRfY2lkcwogICAgYnl0ZWNfMSAvLyAweDY5NjMzYQogICAgc3dhcAogICAgY29uY2F0CiAgICBib3hfbGVuCiAgICBidXJ5IDEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9pbnRlbnRfcmVnaXN0cnkvY29udHJhY3QucHk6ODEKICAgIC8vIEBhYmltZXRob2QoKQogICAgcHVzaGJ5dGVzIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDIKICAgIHNldGJpdAogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18yIC8vIDEKICAgIHJldHVybgo=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuY2xlYXJfc3RhdGVfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIHB1c2hpbnQgMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CyAEAAIBICYDBBUffHUDaWM6A3NyOjEbQQAyMRkURDEYRIIFBKdkc10Eua+R6gSODvV3BNmLrs0EyqYIBjYaAI4FAAkAPwBnAKoA0gAxGRQxGBQQQzYaAUkiWSMISwEVEkRXAgA2GgJJIlkjCEsBFRJEVwIASwEVJRJESRUlEkQqTwJQSbxITL8kQzYaAUkiWSMISwEVEkRXAgAqTFBJvUUBRL5ISRUWVwYCTFAoTFCwJEM2GgFJIlkjCEsBFRJEVwIANhoCSSJZIwhLARUSRFcCADYaA0kiWSMITBUSREsBFSUSREkVgUAORClPAlBJvEhMvyRDNhoBSSJZIwhLARUSRFcCAClMUEm9RQFEvkhJFRZXBgJMUChMULAkQzYaAUkiWSMISwEVEkRXAgApTFC9RQGAAQAiTwJUKExQsCRD", "clear": "C4EBQw==" }, "compilerInfo": { "compiler": "puya", "compilerVersion": { "major": 5, "minor": 8, "patch": 0 } }, "events": [], "templateVariables": {} }