diff --git a/ARCs/arc-0062.md b/ARCs/arc-0062.md
new file mode 100644
index 000000000..909c87a03
--- /dev/null
+++ b/ARCs/arc-0062.md
@@ -0,0 +1,340 @@
+---
+arc: 62
+title: ASA Circulating Supply
+description: Getter method for ASA circulating supply
+author: Cosimo Bassi (@cusma)
+discussions-to: https://github.com/algorandfoundation/ARCs/issues/302
+status: Last Call
+last-call-deadline: 2024-10-15
+type: Standards Track
+category: Interface
+sub-category: Explorer
+created: 2024-06-12
+requires: 2, 4, 22
+---
+
+## Abstract
+
+This ARC introduces a standard for the definition of circulating supply for Algorand
+Standard Assets (ASA) and its client-side retrieval. A reference implementation is
+suggested.
+
+## Motivation
+
+Algorand Standard Asset (ASA) `total` supply is _defined_ upon ASA creation.
+
+Creating an ASA on the ledger _does not_ imply its `total` supply is immediately
+“minted” or “circulating”. In fact, the semantic of token “minting” on Algorand is
+slightly different from other blockchains: it is not coincident with the token units
+creation on the ledger.
+
+The Reserve Address, one of the 4 addresses of ASA Role-Based-Access-Control (RBAC),
+is conventionally used to identify the portion of `total` supply not yet in circulation.
+The Reserve Address has no “privilege” over the token: it is just a “logical” label
+used (client-side) to classify an existing amount of ASA as “not in circulation”.
+
+According to this convention, “minting” an amount of ASA units is equivalent to
+_moving that amount out of the Reserve Address_.
+
+> ASA may have the Reserve Address assigned to a Smart Contract to enforce specific
+> “minting” policies, if needed.
+
+This convention led to a simple and unsophisticated semantic of ASA circulating
+supply, widely adopted by clients (wallets, explorers, etc.) to provide standard
+information:
+
+```text
+circulating_supply = total - reserve_balance
+```
+
+Where `reserve_balance` is the ASA balance hold by the Reserve Address.
+
+However, the simplicity of such convention, who fostered adoption across the Algorand
+ecosystem, poses some limitations. Complex and sophisticated use-cases of ASA, such
+as regulated stable-coins and tokenized securities among others, require more
+detailed and expressive definitions of circulating supply.
+
+As an example, an ASA could have “burned”, “locked” or “pre-minted” amounts of token,
+not held in the Reserve Address, which _should not_ be considered as “circulating”
+supply. This is not possible with the basic ASA protocol convention.
+
+This ARC proposes a standard ABI _read-only_ method (getter) to provide the circulating
+supply of an ASA.
+
+## Specification
+
+The keywords "**MUST**", "**MUST NOT**", "**REQUIRED**", "**SHALL**", "**SHALL NOT**",
+"**SHOULD**", "**SHOULD NOT**", "**RECOMMENDED**", "**MAY**", and "**OPTIONAL**"
+in this document are to be interpreted as described in RFC 2119.
+
+> Notes like this are non-normative.
+
+### ABI Method
+
+A compliant ASA, whose circulating supply definition conforms to this ARC, **MUST**
+implement the following method on an Application (referred as _Circulating Supply
+App_ in this specification):
+
+```json
+{
+ "name": "arc62_get_circulating_supply",
+ "readonly": true,
+ "args": [
+ {
+ "type": "uint64",
+ "name": "asset_id",
+ "desc": "ASA ID of the circulating supply"
+ }
+ ],
+ "returns": {
+ "type": "uint64",
+ "desc": "ASA circulating supply"
+ },
+ "desc": "Get ASA circulating supply"
+}
+```
+
+The `arc62_get_circulating_supply` **MUST** be a _read-only_ ([ARC-22](./arc-0022.md))
+method (getter).
+
+### Usage
+
+Getter calls **SHOULD** be _simulated_.
+
+Any external resources used by the implementation **SHOULD** be discovered and
+auto-populated by the simulated getter call.
+
+#### Example 1
+
+> Let the ASA have `total` supply and a Reserve Address (i.e. not set to `ZeroAddress`).
+>
+> Let the Reserve Address be assigned to an account different from the Circulating
+> Supply App Account.
+>
+> Let `burned` be an external Burned Address dedicated to ASA burned supply.
+>
+> Let `locked` be an external Locked Address dedicated to ASA locked supply.
+>
+> The ASA issuer defines the _circulating supply_ as:
+>
+> ```text
+> circulating_supply = total - reserve_balance - burned_balance - locked_balance
+> ```
+>
+> In this case the simulated read-only method call would auto-populate 1 external
+> reference for the ASA and 3 external reference accounts (Reserve, Burned and Locked).
+
+#### Example 2
+
+> Let the ASA have `total` supply and _no_ Reserve Address (i.e. set to `ZeroAddress`).
+>
+> Let `non_circulating_amount` be a UInt64 Global Var defined by the implementation
+> of the Circulating Supply App.
+>
+> The ASA issuer defines the _circulating supply_ as:
+>
+> ```text
+> circulating_supply = total - non_circulating_amount
+> ```
+>
+> In this case the simulated read-only method call would auto-populate just 1 external
+> reference for the ASA.
+
+### Circulating Supply Application discovery
+
+> Given an ASA ID, clients (wallet, explorer, etc.) need to discover the related
+> Circulating Supply App.
+
+An ASA conforming to this ARC **MUST** specify the Circulating Supply App ID.
+
+> To avoid ecosystem fragmentation this ARC does not propose any new method to specify
+> the metadata of an ASA. Instead, it only extends already existing standards.
+
+If the ASA also conforms to any ARC that supports additional `properties` ([ARC-3](./arc-0003.md),
+[ARC-19](./arc-0019.md), [ARC-69](./arc-0069.md)),
+then it **MUST** include a `arc-62` key and set the corresponding value to a map,
+including the ID of the Circulating Supply App as a value for the key `application-id`.
+
+#### Example
+
+```json
+{
+ //...
+ "properties": {
+ //...
+ "arc-62": {
+ "application-id": 123
+ }
+ }
+ //...
+}
+```
+
+## Rationale
+
+The definition of _circulating supply_ for sophisticated use-cases is usually ASA-specific.
+It could involve, for example, complex math or external accounts’ balances, variables
+stored in boxes or in global state, etc..
+
+For this reason, the proposed method’s signature does not require any reference
+to external resources, a part form the `asset_id` of the ASA for which the circulating
+supply is defined.
+
+Eventual external resources can be discovered and auto-populated directly by the
+simulated method call.
+
+The rational of this design choice is avoiding fragmentation and integration overhead
+for clients (wallets, explorers, etc.).
+
+Clients just need to know:
+
+1. The ASA ID;
+1. The Circulating Supply App ID implementing the `arc62_get_circulating_supply`
+method for that ASA.
+
+## Backwards Compatibility
+
+Existing ASA willing to conform to this ARC **MUST** specify the Circulating Supply
+App ID as [ARC-2](./arc-0002.md) `AssetConfig` transaction note field, as follows:
+
+- The `` **MUST** be equal to `62`;
+- The **RECOMMENDED** `` are MsgPack
+(`m`) or JSON (`j`);
+- The `` **MUST** specify `application-id` equal to the Circulating Supply
+App ID.
+
+> **WARNING**: To preserve the existing ASA RBAC (e.g. Manager Address, Freeze Address,
+> etc.) it is necessary to **include all the existing role addresses** in the `AssetConfig`.
+> Not doing so would irreversibly disable the RBAC roles!
+
+### Example - JSON without version
+
+```text
+arc62:j{"application-id":123}
+```
+
+## Reference Implementation
+
+> This section is non-normative.
+
+This section suggests a reference implementation of the Circulating Supply App.
+
+An Algorand-Python example is available [here](../assets/arc-0062).
+
+### Recommendations
+
+An ASA using the reference implementation **SHOULD NOT** assign the Reserve Address
+to the Circulating Supply App Account.
+
+A reference implementation **SHOULD** target a version of the AVM that supports
+foreign resources pooling (version 9 or greater).
+
+A reference implementation **SHOULD** use 3 external addresses, in addition to the
+Reserve Address, to define the not circulating supply.
+
+The **RECOMMENDED** labels for not-circulating balances are: `burned`, `locked`
+and `generic`.
+
+> To change the labels of not circulating addresses is sufficient to rename the
+> following constants just in `smart_contracts/circulating_supply/config.py`:
+> ```python
+> NOT_CIRCULATING_LABEL_1: Final[str] = "burned"
+> NOT_CIRCULATING_LABEL_2: Final[str] = "locked"
+> NOT_CIRCULATING_LABEL_3: Final[str] = "generic"
+> ```
+
+### State Schema
+
+A reference implementation **SHOULD** allocate, at least, the following Global State
+variables:
+
+- `asset_id` as UInt64, initialized to `0` and set **only once** by the ASA Manager
+Address;
+- Not circulating address 1 (`burned`) as Bytes, initialized to the Global `Zero Address`
+ and set by the ASA Manager Address;
+- Not circulating address 2 (`locked`) as Bytes, initialized to the Global `Zero Address`
+and set by the ASA Manager Address;
+- Not circulating address 3 (`generic`) as Bytes, initialized to the Global `Zero Address`
+and set by the ASA Manager Address.
+
+A reference implementation **SHOULD** enforce that, upon setting `burned`, `locked`
+and `generic` addresses, the latter already opted-in the `asset_id`.
+
+```json
+"state": {
+ "global": {
+ "num_byte_slices": 3,
+ "num_uints": 1
+ },
+ "local": {
+ "num_byte_slices": 0,
+ "num_uints": 0
+ }
+},
+"schema": {
+ "global": {
+ "declared": {
+ "asset_id": {
+ "type": "uint64",
+ "key": "asset_id"
+ },
+ "not_circulating_label_1": {
+ "type": "bytes",
+ "key": "burned"
+ },
+ "not_circulating_label_2": {
+ "type": "bytes",
+ "key": "locked"
+ },
+ "not_circulating_label_3": {
+ "type": "bytes",
+ "key": "generic"
+ }
+ },
+ "reserved": {}
+ },
+ "local": {
+ "declared": {},
+ "reserved": {}
+ }
+},
+```
+
+### Circulating Supply Getter
+
+A reference implementation **SHOULD** enforce that the `asset_id` Global Variable
+is equal to the `asset_id` argument of the `arc62_get_circulating_supply` getter
+method.
+
+> Alternatively the reference implementation could ignore the `asset_id` argument
+> and use directly the `asset_id` Global Variable.
+
+A reference implementation **SHOULD** return the ASA _circulating supply_ as:
+
+```text
+circulating_supply = total - reserve_balance - burned_balance - locked_balance - generic_balance
+```
+
+Where:
+
+- `total` is the total supply of the ASA (`asset_id`);
+- `reserve_balance` is the ASA balance hold by the Reserve Address or `0` if the
+address is set to the Global `ZeroAddress` or not opted-in `asset_id`;
+- `burned_balance` is the ASA balance hold by the Burned Address or `0` if the address
+is set to the Global `ZeroAddress` or is not opted-in `asset_id`;
+- `locked_balance` is the ASA balance hold by the Locked Address or `0` if the address
+is set to the Global `ZeroAddress` or not opted-in `asset_id`;
+- `generic_balance` is the ASA balance hold by a Generic Address or `0` if the address
+is set to the Global `ZeroAddress` or not opted-in `asset_id`.
+
+## Security Considerations
+
+Permissions over the Circulating Supply App setting and update **SHOULD** be granted
+to the ASA Manager Address.
+
+> The ASA trust-model (i.e. who sets the Reserve Address) is extended to the generalized
+> ASA circulating supply definition.
+
+## Copyright
+
+Copyright and related rights waived via CCO.
diff --git a/assets/arc-0062/.algokit.toml b/assets/arc-0062/.algokit.toml
new file mode 100644
index 000000000..55e0a6dc7
--- /dev/null
+++ b/assets/arc-0062/.algokit.toml
@@ -0,0 +1,52 @@
+[algokit]
+min_version = "v2.0.0"
+
+[generate.smart-contract]
+description = "Generate a new smart contract for existing project"
+path = ".algokit/generators/create_contract"
+
+[generate.env-file]
+description = "Generate a new generic or Algorand network specific .env file"
+path = ".algokit/generators/create_env_file"
+
+[project]
+type = 'contract'
+name = 'asa-circulating-supply'
+artifacts = 'smart_contracts/artifacts'
+
+[project.deploy]
+command = "poetry run python -m smart_contracts deploy"
+environment_secrets = [
+ "DEPLOYER_MNEMONIC",
+ "DISPENSER_MNEMONIC",
+]
+
+[project.deploy.localnet]
+environment_secrets = []
+
+[project.run]
+# Commands intented for use locally and in CI
+build = { commands = [
+ 'poetry run python -m smart_contracts build',
+], description = 'Build all smart contracts in the project' }
+test = { commands = [
+ 'poetry run pytest',
+], description = 'Run smart contract tests' }
+audit = { commands = [
+ 'poetry run pip-audit',
+], description = 'Audit with pip-audit' }
+lint = { commands = [
+ 'poetry run black --check --diff .',
+ 'poetry run ruff check .',
+ 'poetry run mypy',
+], description = 'Perform linting' }
+audit-teal = { commands = [
+ # 🚨 IMPORTANT 🚨: For strict TEAL validation, remove --exclude statements. The default starter contract is not for production. Ensure thorough testing and adherence to best practices in smart contract development. This is not a replacement for a professional audit.
+ 'algokit task analyze smart_contracts/artifacts --recursive --force --exclude rekey-to --exclude is-updatable --exclude missing-fee-check --exclude is-deletable --exclude can-close-asset --exclude can-close-account --exclude unprotected-deletable --exclude unprotected-updatable',
+], description = 'Audit TEAL files' }
+
+# Commands intented for CI only, prefixed with `ci-` by convention
+ci-teal-diff = { commands = [
+ 'git add -N ./smart_contracts/artifacts',
+ 'git diff --exit-code --minimal ./smart_contracts/artifacts',
+], description = 'Check TEAL files for differences' }
diff --git a/assets/arc-0062/.algokit/static-analysis/snapshots/CirculatingSupply.approval.json b/assets/arc-0062/.algokit/static-analysis/snapshots/CirculatingSupply.approval.json
new file mode 100644
index 000000000..64bb91798
--- /dev/null
+++ b/assets/arc-0062/.algokit/static-analysis/snapshots/CirculatingSupply.approval.json
@@ -0,0 +1,67146 @@
+{
+ "success": false,
+ "error": null,
+ "result": [
+ {
+ "type": "ExecutionPaths",
+ "count": 0,
+ "description": "\nCheck: \"unprotected-deletable\", Impact: High, Confidence: High\nDescription: Unprotected Deletable Applications\n\nWiki: https://github.com/crytic/tealer/wiki/Detector-Documentation#unprotected-deletable-application\n",
+ "check": "unprotected-deletable",
+ "impact": "High",
+ "confidence": "High",
+ "help": "- Avoid deletable applications.\n- Add access controls to the vulnerable method.",
+ "paths": []
+ },
+ {
+ "type": "ExecutionPaths",
+ "count": 0,
+ "description": "\nCheck: \"unprotected-updatable\", Impact: High, Confidence: High\nDescription: Unprotected Upgradable Applications\n\nWiki: https://github.com/crytic/tealer/wiki/Detector-Documentation#unprotected-updatable-application\n",
+ "check": "unprotected-updatable",
+ "impact": "High",
+ "confidence": "High",
+ "help": "- Avoid upgradable applications.\n- Add access controls to the vulnerable method.",
+ "paths": []
+ },
+ {
+ "type": "ExecutionPaths",
+ "count": 0,
+ "description": "\nCheck: \"can-close-account\", Impact: High, Confidence: High\nDescription: Missing CloseRemainderTo field Validation\n\nWiki: https://github.com/crytic/tealer/wiki/Detector-Documentation#missing-closeremainderto-field-validation\n",
+ "check": "can-close-account",
+ "impact": "High",
+ "confidence": "High",
+ "help": "Validate `CloseRemainderTo` field in the LogicSig.",
+ "paths": []
+ },
+ {
+ "type": "ExecutionPaths",
+ "count": 0,
+ "description": "\nCheck: \"can-close-asset\", Impact: High, Confidence: High\nDescription: Missing AssetCloseTo Field Validation\n\nWiki: https://github.com/crytic/tealer/wiki/Detector-Documentation#missing-assetcloseto-field-validation\n",
+ "check": "can-close-asset",
+ "impact": "High",
+ "confidence": "High",
+ "help": "Validate `AssetCloseTo` field in the LogicSig.",
+ "paths": []
+ },
+ {
+ "type": "ExecutionPaths",
+ "count": 0,
+ "description": "\nCheck: \"is-deletable\", Impact: High, Confidence: High\nDescription: Deletable Applications\n\nWiki: https://github.com/crytic/tealer/wiki/Detector-Documentation#deletable-application\n",
+ "check": "is-deletable",
+ "impact": "High",
+ "confidence": "High",
+ "help": "Do not approve `DeleteApplication` type application calls.",
+ "paths": []
+ },
+ {
+ "type": "ExecutionPaths",
+ "count": 0,
+ "description": "\nCheck: \"is-updatable\", Impact: High, Confidence: High\nDescription: Upgradable Applications\n\nWiki: https://github.com/crytic/tealer/wiki/Detector-Documentation#upgradable-application\n",
+ "check": "is-updatable",
+ "impact": "High",
+ "confidence": "High",
+ "help": "Do not approve `UpdateApplication` type application calls.",
+ "paths": []
+ },
+ {
+ "type": "ExecutionPaths",
+ "count": 180,
+ "description": "\nCheck: \"missing-fee-check\", Impact: High, Confidence: High\nDescription: Missing Fee Field Validation\n\nWiki: https://github.com/crytic/tealer/wiki/Detector-Documentation#missing-fee-field-validation\n",
+ "check": "missing-fee-check",
+ "impact": "High",
+ "confidence": "High",
+ "help": "Validate `Fee` field in the LogicSig.",
+ "paths": [
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 7 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "25: int 0",
+ "26: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 8 -> 17 -> 18 -> 19 -> 21 -> 9 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "28: __puya_arc4_router___set_asset_route@2:",
+ "31: txn OnCompletion",
+ "32: !",
+ "33: assert",
+ "34: txn ApplicationID",
+ "35: assert",
+ "38: txna ApplicationArgs 1",
+ "39: btoi",
+ "42: callsub set_asset"
+ ],
+ [
+ "107: set_asset:",
+ "111: proto 1 0",
+ "115: txn Sender",
+ "116: frame_dig -1",
+ "117: asset_params_get AssetManager",
+ "118: assert",
+ "119: ==",
+ "120: bz set_asset_bool_false@3"
+ ],
+ [
+ "121: int 0",
+ "122: byte \"asset_id\"",
+ "123: app_global_get_ex",
+ "124: assert",
+ "125: bnz set_asset_bool_false@3"
+ ],
+ [
+ "126: int 1",
+ "127: b set_asset_bool_merge@4"
+ ],
+ [
+ "132: set_asset_bool_merge@4:",
+ "136: assert",
+ "140: byte \"asset_id\"",
+ "141: frame_dig -1",
+ "142: app_global_put",
+ "143: retsub"
+ ],
+ [
+ "43: int 1",
+ "44: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 8 -> 17 -> 18 -> 20 -> 21 -> 9 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "28: __puya_arc4_router___set_asset_route@2:",
+ "31: txn OnCompletion",
+ "32: !",
+ "33: assert",
+ "34: txn ApplicationID",
+ "35: assert",
+ "38: txna ApplicationArgs 1",
+ "39: btoi",
+ "42: callsub set_asset"
+ ],
+ [
+ "107: set_asset:",
+ "111: proto 1 0",
+ "115: txn Sender",
+ "116: frame_dig -1",
+ "117: asset_params_get AssetManager",
+ "118: assert",
+ "119: ==",
+ "120: bz set_asset_bool_false@3"
+ ],
+ [
+ "121: int 0",
+ "122: byte \"asset_id\"",
+ "123: app_global_get_ex",
+ "124: assert",
+ "125: bnz set_asset_bool_false@3"
+ ],
+ [
+ "129: set_asset_bool_false@3:",
+ "130: int 0"
+ ],
+ [
+ "132: set_asset_bool_merge@4:",
+ "136: assert",
+ "140: byte \"asset_id\"",
+ "141: frame_dig -1",
+ "142: app_global_put",
+ "143: retsub"
+ ],
+ [
+ "43: int 1",
+ "44: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 8 -> 17 -> 20 -> 21 -> 9 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "28: __puya_arc4_router___set_asset_route@2:",
+ "31: txn OnCompletion",
+ "32: !",
+ "33: assert",
+ "34: txn ApplicationID",
+ "35: assert",
+ "38: txna ApplicationArgs 1",
+ "39: btoi",
+ "42: callsub set_asset"
+ ],
+ [
+ "107: set_asset:",
+ "111: proto 1 0",
+ "115: txn Sender",
+ "116: frame_dig -1",
+ "117: asset_params_get AssetManager",
+ "118: assert",
+ "119: ==",
+ "120: bz set_asset_bool_false@3"
+ ],
+ [
+ "129: set_asset_bool_false@3:",
+ "130: int 0"
+ ],
+ [
+ "132: set_asset_bool_merge@4:",
+ "136: assert",
+ "140: byte \"asset_id\"",
+ "141: frame_dig -1",
+ "142: app_global_put",
+ "143: retsub"
+ ],
+ [
+ "43: int 1",
+ "44: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 10 -> 22 -> 24 -> 27 -> 11 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "46: __puya_arc4_router___set_not_circulating_address_route@3:",
+ "49: txn OnCompletion",
+ "50: !",
+ "51: assert",
+ "52: txn ApplicationID",
+ "53: assert",
+ "56: txna ApplicationArgs 1",
+ "57: txna ApplicationArgs 2",
+ "58: extract 2 0",
+ "61: callsub set_not_circulating_address"
+ ],
+ [
+ "147: set_not_circulating_address:",
+ "151: proto 2 0",
+ "154: int 0",
+ "155: byte \"asset_id\"",
+ "156: app_global_get_ex",
+ "157: assert",
+ "161: txn Sender",
+ "162: swap",
+ "163: dup",
+ "164: asset_params_get AssetManager",
+ "165: assert",
+ "166: uncover 2",
+ "167: ==",
+ "168: assert",
+ "171: frame_dig -2",
+ "172: len",
+ "173: int 32",
+ "174: ==",
+ "175: assert",
+ "176: frame_dig -2",
+ "177: swap",
+ "178: asset_holding_get AssetBalance",
+ "179: bury 1",
+ "180: assert",
+ "183: byte \"burned\"",
+ "186: byte \"locked\"",
+ "189: byte \"generic\"",
+ "201: frame_dig -1",
+ "202: match set_not_circulating_address_switch_case_0@1 set_not_circulating_address_switch_case_1@2 set_not_circulating_address_switch_case_2@3"
+ ],
+ [
+ "207: set_not_circulating_address_switch_case_0@1:",
+ "210: byte \"burned\"",
+ "211: frame_dig -2",
+ "212: app_global_put",
+ "213: b set_not_circulating_address_switch_case_next@5"
+ ],
+ [
+ "230: set_not_circulating_address_switch_case_next@5:",
+ "231: retsub"
+ ],
+ [
+ "62: int 1",
+ "63: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 10 -> 22 -> 25 -> 27 -> 11 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "46: __puya_arc4_router___set_not_circulating_address_route@3:",
+ "49: txn OnCompletion",
+ "50: !",
+ "51: assert",
+ "52: txn ApplicationID",
+ "53: assert",
+ "56: txna ApplicationArgs 1",
+ "57: txna ApplicationArgs 2",
+ "58: extract 2 0",
+ "61: callsub set_not_circulating_address"
+ ],
+ [
+ "147: set_not_circulating_address:",
+ "151: proto 2 0",
+ "154: int 0",
+ "155: byte \"asset_id\"",
+ "156: app_global_get_ex",
+ "157: assert",
+ "161: txn Sender",
+ "162: swap",
+ "163: dup",
+ "164: asset_params_get AssetManager",
+ "165: assert",
+ "166: uncover 2",
+ "167: ==",
+ "168: assert",
+ "171: frame_dig -2",
+ "172: len",
+ "173: int 32",
+ "174: ==",
+ "175: assert",
+ "176: frame_dig -2",
+ "177: swap",
+ "178: asset_holding_get AssetBalance",
+ "179: bury 1",
+ "180: assert",
+ "183: byte \"burned\"",
+ "186: byte \"locked\"",
+ "189: byte \"generic\"",
+ "201: frame_dig -1",
+ "202: match set_not_circulating_address_switch_case_0@1 set_not_circulating_address_switch_case_1@2 set_not_circulating_address_switch_case_2@3"
+ ],
+ [
+ "215: set_not_circulating_address_switch_case_1@2:",
+ "218: byte \"locked\"",
+ "219: frame_dig -2",
+ "220: app_global_put",
+ "221: b set_not_circulating_address_switch_case_next@5"
+ ],
+ [
+ "230: set_not_circulating_address_switch_case_next@5:",
+ "231: retsub"
+ ],
+ [
+ "62: int 1",
+ "63: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 10 -> 22 -> 26 -> 27 -> 11 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "46: __puya_arc4_router___set_not_circulating_address_route@3:",
+ "49: txn OnCompletion",
+ "50: !",
+ "51: assert",
+ "52: txn ApplicationID",
+ "53: assert",
+ "56: txna ApplicationArgs 1",
+ "57: txna ApplicationArgs 2",
+ "58: extract 2 0",
+ "61: callsub set_not_circulating_address"
+ ],
+ [
+ "147: set_not_circulating_address:",
+ "151: proto 2 0",
+ "154: int 0",
+ "155: byte \"asset_id\"",
+ "156: app_global_get_ex",
+ "157: assert",
+ "161: txn Sender",
+ "162: swap",
+ "163: dup",
+ "164: asset_params_get AssetManager",
+ "165: assert",
+ "166: uncover 2",
+ "167: ==",
+ "168: assert",
+ "171: frame_dig -2",
+ "172: len",
+ "173: int 32",
+ "174: ==",
+ "175: assert",
+ "176: frame_dig -2",
+ "177: swap",
+ "178: asset_holding_get AssetBalance",
+ "179: bury 1",
+ "180: assert",
+ "183: byte \"burned\"",
+ "186: byte \"locked\"",
+ "189: byte \"generic\"",
+ "201: frame_dig -1",
+ "202: match set_not_circulating_address_switch_case_0@1 set_not_circulating_address_switch_case_1@2 set_not_circulating_address_switch_case_2@3"
+ ],
+ [
+ "223: set_not_circulating_address_switch_case_2@3:",
+ "226: byte \"generic\"",
+ "227: frame_dig -2",
+ "228: app_global_put"
+ ],
+ [
+ "230: set_not_circulating_address_switch_case_next@5:",
+ "231: retsub"
+ ],
+ [
+ "62: int 1",
+ "63: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 14 -> 15 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "88: __puya_arc4_router___bare_routing@7:",
+ "91: txn OnCompletion",
+ "92: bnz __puya_arc4_router___after_if_else@11"
+ ],
+ [
+ "93: txn ApplicationID",
+ "94: !",
+ "95: assert",
+ "96: int 1",
+ "97: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 14 -> 16 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "88: __puya_arc4_router___bare_routing@7:",
+ "91: txn OnCompletion",
+ "92: bnz __puya_arc4_router___after_if_else@11"
+ ],
+ [
+ "99: __puya_arc4_router___after_if_else@11:",
+ "102: int 0",
+ "103: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 7 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "25: int 0",
+ "26: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 8 -> 17 -> 18 -> 19 -> 21 -> 9 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "28: __puya_arc4_router___set_asset_route@2:",
+ "31: txn OnCompletion",
+ "32: !",
+ "33: assert",
+ "34: txn ApplicationID",
+ "35: assert",
+ "38: txna ApplicationArgs 1",
+ "39: btoi",
+ "42: callsub set_asset"
+ ],
+ [
+ "107: set_asset:",
+ "111: proto 1 0",
+ "115: txn Sender",
+ "116: frame_dig -1",
+ "117: asset_params_get AssetManager",
+ "118: assert",
+ "119: ==",
+ "120: bz set_asset_bool_false@3"
+ ],
+ [
+ "121: int 0",
+ "122: byte \"asset_id\"",
+ "123: app_global_get_ex",
+ "124: assert",
+ "125: bnz set_asset_bool_false@3"
+ ],
+ [
+ "126: int 1",
+ "127: b set_asset_bool_merge@4"
+ ],
+ [
+ "132: set_asset_bool_merge@4:",
+ "136: assert",
+ "140: byte \"asset_id\"",
+ "141: frame_dig -1",
+ "142: app_global_put",
+ "143: retsub"
+ ],
+ [
+ "43: int 1",
+ "44: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 8 -> 17 -> 18 -> 20 -> 21 -> 9 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "28: __puya_arc4_router___set_asset_route@2:",
+ "31: txn OnCompletion",
+ "32: !",
+ "33: assert",
+ "34: txn ApplicationID",
+ "35: assert",
+ "38: txna ApplicationArgs 1",
+ "39: btoi",
+ "42: callsub set_asset"
+ ],
+ [
+ "107: set_asset:",
+ "111: proto 1 0",
+ "115: txn Sender",
+ "116: frame_dig -1",
+ "117: asset_params_get AssetManager",
+ "118: assert",
+ "119: ==",
+ "120: bz set_asset_bool_false@3"
+ ],
+ [
+ "121: int 0",
+ "122: byte \"asset_id\"",
+ "123: app_global_get_ex",
+ "124: assert",
+ "125: bnz set_asset_bool_false@3"
+ ],
+ [
+ "129: set_asset_bool_false@3:",
+ "130: int 0"
+ ],
+ [
+ "132: set_asset_bool_merge@4:",
+ "136: assert",
+ "140: byte \"asset_id\"",
+ "141: frame_dig -1",
+ "142: app_global_put",
+ "143: retsub"
+ ],
+ [
+ "43: int 1",
+ "44: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 8 -> 17 -> 20 -> 21 -> 9 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "28: __puya_arc4_router___set_asset_route@2:",
+ "31: txn OnCompletion",
+ "32: !",
+ "33: assert",
+ "34: txn ApplicationID",
+ "35: assert",
+ "38: txna ApplicationArgs 1",
+ "39: btoi",
+ "42: callsub set_asset"
+ ],
+ [
+ "107: set_asset:",
+ "111: proto 1 0",
+ "115: txn Sender",
+ "116: frame_dig -1",
+ "117: asset_params_get AssetManager",
+ "118: assert",
+ "119: ==",
+ "120: bz set_asset_bool_false@3"
+ ],
+ [
+ "129: set_asset_bool_false@3:",
+ "130: int 0"
+ ],
+ [
+ "132: set_asset_bool_merge@4:",
+ "136: assert",
+ "140: byte \"asset_id\"",
+ "141: frame_dig -1",
+ "142: app_global_put",
+ "143: retsub"
+ ],
+ [
+ "43: int 1",
+ "44: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 10 -> 22 -> 24 -> 27 -> 11 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "46: __puya_arc4_router___set_not_circulating_address_route@3:",
+ "49: txn OnCompletion",
+ "50: !",
+ "51: assert",
+ "52: txn ApplicationID",
+ "53: assert",
+ "56: txna ApplicationArgs 1",
+ "57: txna ApplicationArgs 2",
+ "58: extract 2 0",
+ "61: callsub set_not_circulating_address"
+ ],
+ [
+ "147: set_not_circulating_address:",
+ "151: proto 2 0",
+ "154: int 0",
+ "155: byte \"asset_id\"",
+ "156: app_global_get_ex",
+ "157: assert",
+ "161: txn Sender",
+ "162: swap",
+ "163: dup",
+ "164: asset_params_get AssetManager",
+ "165: assert",
+ "166: uncover 2",
+ "167: ==",
+ "168: assert",
+ "171: frame_dig -2",
+ "172: len",
+ "173: int 32",
+ "174: ==",
+ "175: assert",
+ "176: frame_dig -2",
+ "177: swap",
+ "178: asset_holding_get AssetBalance",
+ "179: bury 1",
+ "180: assert",
+ "183: byte \"burned\"",
+ "186: byte \"locked\"",
+ "189: byte \"generic\"",
+ "201: frame_dig -1",
+ "202: match set_not_circulating_address_switch_case_0@1 set_not_circulating_address_switch_case_1@2 set_not_circulating_address_switch_case_2@3"
+ ],
+ [
+ "207: set_not_circulating_address_switch_case_0@1:",
+ "210: byte \"burned\"",
+ "211: frame_dig -2",
+ "212: app_global_put",
+ "213: b set_not_circulating_address_switch_case_next@5"
+ ],
+ [
+ "230: set_not_circulating_address_switch_case_next@5:",
+ "231: retsub"
+ ],
+ [
+ "62: int 1",
+ "63: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 10 -> 22 -> 25 -> 27 -> 11 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "46: __puya_arc4_router___set_not_circulating_address_route@3:",
+ "49: txn OnCompletion",
+ "50: !",
+ "51: assert",
+ "52: txn ApplicationID",
+ "53: assert",
+ "56: txna ApplicationArgs 1",
+ "57: txna ApplicationArgs 2",
+ "58: extract 2 0",
+ "61: callsub set_not_circulating_address"
+ ],
+ [
+ "147: set_not_circulating_address:",
+ "151: proto 2 0",
+ "154: int 0",
+ "155: byte \"asset_id\"",
+ "156: app_global_get_ex",
+ "157: assert",
+ "161: txn Sender",
+ "162: swap",
+ "163: dup",
+ "164: asset_params_get AssetManager",
+ "165: assert",
+ "166: uncover 2",
+ "167: ==",
+ "168: assert",
+ "171: frame_dig -2",
+ "172: len",
+ "173: int 32",
+ "174: ==",
+ "175: assert",
+ "176: frame_dig -2",
+ "177: swap",
+ "178: asset_holding_get AssetBalance",
+ "179: bury 1",
+ "180: assert",
+ "183: byte \"burned\"",
+ "186: byte \"locked\"",
+ "189: byte \"generic\"",
+ "201: frame_dig -1",
+ "202: match set_not_circulating_address_switch_case_0@1 set_not_circulating_address_switch_case_1@2 set_not_circulating_address_switch_case_2@3"
+ ],
+ [
+ "215: set_not_circulating_address_switch_case_1@2:",
+ "218: byte \"locked\"",
+ "219: frame_dig -2",
+ "220: app_global_put",
+ "221: b set_not_circulating_address_switch_case_next@5"
+ ],
+ [
+ "230: set_not_circulating_address_switch_case_next@5:",
+ "231: retsub"
+ ],
+ [
+ "62: int 1",
+ "63: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 10 -> 22 -> 26 -> 27 -> 11 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "46: __puya_arc4_router___set_not_circulating_address_route@3:",
+ "49: txn OnCompletion",
+ "50: !",
+ "51: assert",
+ "52: txn ApplicationID",
+ "53: assert",
+ "56: txna ApplicationArgs 1",
+ "57: txna ApplicationArgs 2",
+ "58: extract 2 0",
+ "61: callsub set_not_circulating_address"
+ ],
+ [
+ "147: set_not_circulating_address:",
+ "151: proto 2 0",
+ "154: int 0",
+ "155: byte \"asset_id\"",
+ "156: app_global_get_ex",
+ "157: assert",
+ "161: txn Sender",
+ "162: swap",
+ "163: dup",
+ "164: asset_params_get AssetManager",
+ "165: assert",
+ "166: uncover 2",
+ "167: ==",
+ "168: assert",
+ "171: frame_dig -2",
+ "172: len",
+ "173: int 32",
+ "174: ==",
+ "175: assert",
+ "176: frame_dig -2",
+ "177: swap",
+ "178: asset_holding_get AssetBalance",
+ "179: bury 1",
+ "180: assert",
+ "183: byte \"burned\"",
+ "186: byte \"locked\"",
+ "189: byte \"generic\"",
+ "201: frame_dig -1",
+ "202: match set_not_circulating_address_switch_case_0@1 set_not_circulating_address_switch_case_1@2 set_not_circulating_address_switch_case_2@3"
+ ],
+ [
+ "223: set_not_circulating_address_switch_case_2@3:",
+ "226: byte \"generic\"",
+ "227: frame_dig -2",
+ "228: app_global_put"
+ ],
+ [
+ "230: set_not_circulating_address_switch_case_next@5:",
+ "231: retsub"
+ ],
+ [
+ "62: int 1",
+ "63: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 14 -> 15 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "88: __puya_arc4_router___bare_routing@7:",
+ "91: txn OnCompletion",
+ "92: bnz __puya_arc4_router___after_if_else@11"
+ ],
+ [
+ "93: txn ApplicationID",
+ "94: !",
+ "95: assert",
+ "96: int 1",
+ "97: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 14 -> 16 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "88: __puya_arc4_router___bare_routing@7:",
+ "91: txn OnCompletion",
+ "92: bnz __puya_arc4_router___after_if_else@11"
+ ],
+ [
+ "99: __puya_arc4_router___after_if_else@11:",
+ "102: int 0",
+ "103: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ }
+ ]
+ },
+ {
+ "type": "ExecutionPaths",
+ "count": 0,
+ "description": "\nCheck: \"group-size-check\", Impact: High, Confidence: High\nDescription: Usage of absolute indexes without validating GroupSize\n\nWiki: https://github.com/crytic/tealer/wiki/Detector-Documentation#missing-groupsize-validation\n",
+ "check": "group-size-check",
+ "impact": "High",
+ "confidence": "High",
+ "help": "- Avoid using absolute indexes. Validate GroupSize if used.\n- Favor using ARC-4 ABI and relative indexes for group transactions.",
+ "paths": []
+ },
+ {
+ "type": "ExecutionPaths",
+ "count": 180,
+ "description": "\nCheck: \"rekey-to\", Impact: High, Confidence: High\nDescription: Rekeyable Logic Signatures\n\nWiki: https://github.com/crytic/tealer/wiki/Detector-Documentation#rekeyable-logicsig\n",
+ "check": "rekey-to",
+ "impact": "High",
+ "confidence": "High",
+ "help": "Validate `RekeyTo` field in the LogicSig.",
+ "paths": [
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 7 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "25: int 0",
+ "26: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 8 -> 17 -> 18 -> 19 -> 21 -> 9 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "28: __puya_arc4_router___set_asset_route@2:",
+ "31: txn OnCompletion",
+ "32: !",
+ "33: assert",
+ "34: txn ApplicationID",
+ "35: assert",
+ "38: txna ApplicationArgs 1",
+ "39: btoi",
+ "42: callsub set_asset"
+ ],
+ [
+ "107: set_asset:",
+ "111: proto 1 0",
+ "115: txn Sender",
+ "116: frame_dig -1",
+ "117: asset_params_get AssetManager",
+ "118: assert",
+ "119: ==",
+ "120: bz set_asset_bool_false@3"
+ ],
+ [
+ "121: int 0",
+ "122: byte \"asset_id\"",
+ "123: app_global_get_ex",
+ "124: assert",
+ "125: bnz set_asset_bool_false@3"
+ ],
+ [
+ "126: int 1",
+ "127: b set_asset_bool_merge@4"
+ ],
+ [
+ "132: set_asset_bool_merge@4:",
+ "136: assert",
+ "140: byte \"asset_id\"",
+ "141: frame_dig -1",
+ "142: app_global_put",
+ "143: retsub"
+ ],
+ [
+ "43: int 1",
+ "44: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 8 -> 17 -> 18 -> 20 -> 21 -> 9 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "28: __puya_arc4_router___set_asset_route@2:",
+ "31: txn OnCompletion",
+ "32: !",
+ "33: assert",
+ "34: txn ApplicationID",
+ "35: assert",
+ "38: txna ApplicationArgs 1",
+ "39: btoi",
+ "42: callsub set_asset"
+ ],
+ [
+ "107: set_asset:",
+ "111: proto 1 0",
+ "115: txn Sender",
+ "116: frame_dig -1",
+ "117: asset_params_get AssetManager",
+ "118: assert",
+ "119: ==",
+ "120: bz set_asset_bool_false@3"
+ ],
+ [
+ "121: int 0",
+ "122: byte \"asset_id\"",
+ "123: app_global_get_ex",
+ "124: assert",
+ "125: bnz set_asset_bool_false@3"
+ ],
+ [
+ "129: set_asset_bool_false@3:",
+ "130: int 0"
+ ],
+ [
+ "132: set_asset_bool_merge@4:",
+ "136: assert",
+ "140: byte \"asset_id\"",
+ "141: frame_dig -1",
+ "142: app_global_put",
+ "143: retsub"
+ ],
+ [
+ "43: int 1",
+ "44: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 8 -> 17 -> 20 -> 21 -> 9 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "28: __puya_arc4_router___set_asset_route@2:",
+ "31: txn OnCompletion",
+ "32: !",
+ "33: assert",
+ "34: txn ApplicationID",
+ "35: assert",
+ "38: txna ApplicationArgs 1",
+ "39: btoi",
+ "42: callsub set_asset"
+ ],
+ [
+ "107: set_asset:",
+ "111: proto 1 0",
+ "115: txn Sender",
+ "116: frame_dig -1",
+ "117: asset_params_get AssetManager",
+ "118: assert",
+ "119: ==",
+ "120: bz set_asset_bool_false@3"
+ ],
+ [
+ "129: set_asset_bool_false@3:",
+ "130: int 0"
+ ],
+ [
+ "132: set_asset_bool_merge@4:",
+ "136: assert",
+ "140: byte \"asset_id\"",
+ "141: frame_dig -1",
+ "142: app_global_put",
+ "143: retsub"
+ ],
+ [
+ "43: int 1",
+ "44: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 10 -> 22 -> 24 -> 27 -> 11 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "46: __puya_arc4_router___set_not_circulating_address_route@3:",
+ "49: txn OnCompletion",
+ "50: !",
+ "51: assert",
+ "52: txn ApplicationID",
+ "53: assert",
+ "56: txna ApplicationArgs 1",
+ "57: txna ApplicationArgs 2",
+ "58: extract 2 0",
+ "61: callsub set_not_circulating_address"
+ ],
+ [
+ "147: set_not_circulating_address:",
+ "151: proto 2 0",
+ "154: int 0",
+ "155: byte \"asset_id\"",
+ "156: app_global_get_ex",
+ "157: assert",
+ "161: txn Sender",
+ "162: swap",
+ "163: dup",
+ "164: asset_params_get AssetManager",
+ "165: assert",
+ "166: uncover 2",
+ "167: ==",
+ "168: assert",
+ "171: frame_dig -2",
+ "172: len",
+ "173: int 32",
+ "174: ==",
+ "175: assert",
+ "176: frame_dig -2",
+ "177: swap",
+ "178: asset_holding_get AssetBalance",
+ "179: bury 1",
+ "180: assert",
+ "183: byte \"burned\"",
+ "186: byte \"locked\"",
+ "189: byte \"generic\"",
+ "201: frame_dig -1",
+ "202: match set_not_circulating_address_switch_case_0@1 set_not_circulating_address_switch_case_1@2 set_not_circulating_address_switch_case_2@3"
+ ],
+ [
+ "207: set_not_circulating_address_switch_case_0@1:",
+ "210: byte \"burned\"",
+ "211: frame_dig -2",
+ "212: app_global_put",
+ "213: b set_not_circulating_address_switch_case_next@5"
+ ],
+ [
+ "230: set_not_circulating_address_switch_case_next@5:",
+ "231: retsub"
+ ],
+ [
+ "62: int 1",
+ "63: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 10 -> 22 -> 25 -> 27 -> 11 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "46: __puya_arc4_router___set_not_circulating_address_route@3:",
+ "49: txn OnCompletion",
+ "50: !",
+ "51: assert",
+ "52: txn ApplicationID",
+ "53: assert",
+ "56: txna ApplicationArgs 1",
+ "57: txna ApplicationArgs 2",
+ "58: extract 2 0",
+ "61: callsub set_not_circulating_address"
+ ],
+ [
+ "147: set_not_circulating_address:",
+ "151: proto 2 0",
+ "154: int 0",
+ "155: byte \"asset_id\"",
+ "156: app_global_get_ex",
+ "157: assert",
+ "161: txn Sender",
+ "162: swap",
+ "163: dup",
+ "164: asset_params_get AssetManager",
+ "165: assert",
+ "166: uncover 2",
+ "167: ==",
+ "168: assert",
+ "171: frame_dig -2",
+ "172: len",
+ "173: int 32",
+ "174: ==",
+ "175: assert",
+ "176: frame_dig -2",
+ "177: swap",
+ "178: asset_holding_get AssetBalance",
+ "179: bury 1",
+ "180: assert",
+ "183: byte \"burned\"",
+ "186: byte \"locked\"",
+ "189: byte \"generic\"",
+ "201: frame_dig -1",
+ "202: match set_not_circulating_address_switch_case_0@1 set_not_circulating_address_switch_case_1@2 set_not_circulating_address_switch_case_2@3"
+ ],
+ [
+ "215: set_not_circulating_address_switch_case_1@2:",
+ "218: byte \"locked\"",
+ "219: frame_dig -2",
+ "220: app_global_put",
+ "221: b set_not_circulating_address_switch_case_next@5"
+ ],
+ [
+ "230: set_not_circulating_address_switch_case_next@5:",
+ "231: retsub"
+ ],
+ [
+ "62: int 1",
+ "63: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 10 -> 22 -> 26 -> 27 -> 11 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "46: __puya_arc4_router___set_not_circulating_address_route@3:",
+ "49: txn OnCompletion",
+ "50: !",
+ "51: assert",
+ "52: txn ApplicationID",
+ "53: assert",
+ "56: txna ApplicationArgs 1",
+ "57: txna ApplicationArgs 2",
+ "58: extract 2 0",
+ "61: callsub set_not_circulating_address"
+ ],
+ [
+ "147: set_not_circulating_address:",
+ "151: proto 2 0",
+ "154: int 0",
+ "155: byte \"asset_id\"",
+ "156: app_global_get_ex",
+ "157: assert",
+ "161: txn Sender",
+ "162: swap",
+ "163: dup",
+ "164: asset_params_get AssetManager",
+ "165: assert",
+ "166: uncover 2",
+ "167: ==",
+ "168: assert",
+ "171: frame_dig -2",
+ "172: len",
+ "173: int 32",
+ "174: ==",
+ "175: assert",
+ "176: frame_dig -2",
+ "177: swap",
+ "178: asset_holding_get AssetBalance",
+ "179: bury 1",
+ "180: assert",
+ "183: byte \"burned\"",
+ "186: byte \"locked\"",
+ "189: byte \"generic\"",
+ "201: frame_dig -1",
+ "202: match set_not_circulating_address_switch_case_0@1 set_not_circulating_address_switch_case_1@2 set_not_circulating_address_switch_case_2@3"
+ ],
+ [
+ "223: set_not_circulating_address_switch_case_2@3:",
+ "226: byte \"generic\"",
+ "227: frame_dig -2",
+ "228: app_global_put"
+ ],
+ [
+ "230: set_not_circulating_address_switch_case_next@5:",
+ "231: retsub"
+ ],
+ [
+ "62: int 1",
+ "63: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 14 -> 15 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "88: __puya_arc4_router___bare_routing@7:",
+ "91: txn OnCompletion",
+ "92: bnz __puya_arc4_router___after_if_else@11"
+ ],
+ [
+ "93: txn ApplicationID",
+ "94: !",
+ "95: assert",
+ "96: int 1",
+ "97: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 2 -> 45 -> 3 -> 5 -> 14 -> 16 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "6: callsub __init__"
+ ],
+ [
+ "475: __init__:",
+ "478: proto 0 0",
+ "482: byte \"asset_id\"",
+ "483: int 0",
+ "484: app_global_put",
+ "487: byte \"burned\"",
+ "488: global ZeroAddress",
+ "493: app_global_put",
+ "496: byte \"locked\"",
+ "497: global ZeroAddress",
+ "502: app_global_put",
+ "505: byte \"generic\"",
+ "506: global ZeroAddress",
+ "511: app_global_put",
+ "512: retsub"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "88: __puya_arc4_router___bare_routing@7:",
+ "91: txn OnCompletion",
+ "92: bnz __puya_arc4_router___after_if_else@11"
+ ],
+ [
+ "99: __puya_arc4_router___after_if_else@11:",
+ "102: int 0",
+ "103: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 7 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "25: int 0",
+ "26: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 8 -> 17 -> 18 -> 19 -> 21 -> 9 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "28: __puya_arc4_router___set_asset_route@2:",
+ "31: txn OnCompletion",
+ "32: !",
+ "33: assert",
+ "34: txn ApplicationID",
+ "35: assert",
+ "38: txna ApplicationArgs 1",
+ "39: btoi",
+ "42: callsub set_asset"
+ ],
+ [
+ "107: set_asset:",
+ "111: proto 1 0",
+ "115: txn Sender",
+ "116: frame_dig -1",
+ "117: asset_params_get AssetManager",
+ "118: assert",
+ "119: ==",
+ "120: bz set_asset_bool_false@3"
+ ],
+ [
+ "121: int 0",
+ "122: byte \"asset_id\"",
+ "123: app_global_get_ex",
+ "124: assert",
+ "125: bnz set_asset_bool_false@3"
+ ],
+ [
+ "126: int 1",
+ "127: b set_asset_bool_merge@4"
+ ],
+ [
+ "132: set_asset_bool_merge@4:",
+ "136: assert",
+ "140: byte \"asset_id\"",
+ "141: frame_dig -1",
+ "142: app_global_put",
+ "143: retsub"
+ ],
+ [
+ "43: int 1",
+ "44: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 8 -> 17 -> 18 -> 20 -> 21 -> 9 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "28: __puya_arc4_router___set_asset_route@2:",
+ "31: txn OnCompletion",
+ "32: !",
+ "33: assert",
+ "34: txn ApplicationID",
+ "35: assert",
+ "38: txna ApplicationArgs 1",
+ "39: btoi",
+ "42: callsub set_asset"
+ ],
+ [
+ "107: set_asset:",
+ "111: proto 1 0",
+ "115: txn Sender",
+ "116: frame_dig -1",
+ "117: asset_params_get AssetManager",
+ "118: assert",
+ "119: ==",
+ "120: bz set_asset_bool_false@3"
+ ],
+ [
+ "121: int 0",
+ "122: byte \"asset_id\"",
+ "123: app_global_get_ex",
+ "124: assert",
+ "125: bnz set_asset_bool_false@3"
+ ],
+ [
+ "129: set_asset_bool_false@3:",
+ "130: int 0"
+ ],
+ [
+ "132: set_asset_bool_merge@4:",
+ "136: assert",
+ "140: byte \"asset_id\"",
+ "141: frame_dig -1",
+ "142: app_global_put",
+ "143: retsub"
+ ],
+ [
+ "43: int 1",
+ "44: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 8 -> 17 -> 20 -> 21 -> 9 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "28: __puya_arc4_router___set_asset_route@2:",
+ "31: txn OnCompletion",
+ "32: !",
+ "33: assert",
+ "34: txn ApplicationID",
+ "35: assert",
+ "38: txna ApplicationArgs 1",
+ "39: btoi",
+ "42: callsub set_asset"
+ ],
+ [
+ "107: set_asset:",
+ "111: proto 1 0",
+ "115: txn Sender",
+ "116: frame_dig -1",
+ "117: asset_params_get AssetManager",
+ "118: assert",
+ "119: ==",
+ "120: bz set_asset_bool_false@3"
+ ],
+ [
+ "129: set_asset_bool_false@3:",
+ "130: int 0"
+ ],
+ [
+ "132: set_asset_bool_merge@4:",
+ "136: assert",
+ "140: byte \"asset_id\"",
+ "141: frame_dig -1",
+ "142: app_global_put",
+ "143: retsub"
+ ],
+ [
+ "43: int 1",
+ "44: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 10 -> 22 -> 24 -> 27 -> 11 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "46: __puya_arc4_router___set_not_circulating_address_route@3:",
+ "49: txn OnCompletion",
+ "50: !",
+ "51: assert",
+ "52: txn ApplicationID",
+ "53: assert",
+ "56: txna ApplicationArgs 1",
+ "57: txna ApplicationArgs 2",
+ "58: extract 2 0",
+ "61: callsub set_not_circulating_address"
+ ],
+ [
+ "147: set_not_circulating_address:",
+ "151: proto 2 0",
+ "154: int 0",
+ "155: byte \"asset_id\"",
+ "156: app_global_get_ex",
+ "157: assert",
+ "161: txn Sender",
+ "162: swap",
+ "163: dup",
+ "164: asset_params_get AssetManager",
+ "165: assert",
+ "166: uncover 2",
+ "167: ==",
+ "168: assert",
+ "171: frame_dig -2",
+ "172: len",
+ "173: int 32",
+ "174: ==",
+ "175: assert",
+ "176: frame_dig -2",
+ "177: swap",
+ "178: asset_holding_get AssetBalance",
+ "179: bury 1",
+ "180: assert",
+ "183: byte \"burned\"",
+ "186: byte \"locked\"",
+ "189: byte \"generic\"",
+ "201: frame_dig -1",
+ "202: match set_not_circulating_address_switch_case_0@1 set_not_circulating_address_switch_case_1@2 set_not_circulating_address_switch_case_2@3"
+ ],
+ [
+ "207: set_not_circulating_address_switch_case_0@1:",
+ "210: byte \"burned\"",
+ "211: frame_dig -2",
+ "212: app_global_put",
+ "213: b set_not_circulating_address_switch_case_next@5"
+ ],
+ [
+ "230: set_not_circulating_address_switch_case_next@5:",
+ "231: retsub"
+ ],
+ [
+ "62: int 1",
+ "63: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 10 -> 22 -> 25 -> 27 -> 11 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "46: __puya_arc4_router___set_not_circulating_address_route@3:",
+ "49: txn OnCompletion",
+ "50: !",
+ "51: assert",
+ "52: txn ApplicationID",
+ "53: assert",
+ "56: txna ApplicationArgs 1",
+ "57: txna ApplicationArgs 2",
+ "58: extract 2 0",
+ "61: callsub set_not_circulating_address"
+ ],
+ [
+ "147: set_not_circulating_address:",
+ "151: proto 2 0",
+ "154: int 0",
+ "155: byte \"asset_id\"",
+ "156: app_global_get_ex",
+ "157: assert",
+ "161: txn Sender",
+ "162: swap",
+ "163: dup",
+ "164: asset_params_get AssetManager",
+ "165: assert",
+ "166: uncover 2",
+ "167: ==",
+ "168: assert",
+ "171: frame_dig -2",
+ "172: len",
+ "173: int 32",
+ "174: ==",
+ "175: assert",
+ "176: frame_dig -2",
+ "177: swap",
+ "178: asset_holding_get AssetBalance",
+ "179: bury 1",
+ "180: assert",
+ "183: byte \"burned\"",
+ "186: byte \"locked\"",
+ "189: byte \"generic\"",
+ "201: frame_dig -1",
+ "202: match set_not_circulating_address_switch_case_0@1 set_not_circulating_address_switch_case_1@2 set_not_circulating_address_switch_case_2@3"
+ ],
+ [
+ "215: set_not_circulating_address_switch_case_1@2:",
+ "218: byte \"locked\"",
+ "219: frame_dig -2",
+ "220: app_global_put",
+ "221: b set_not_circulating_address_switch_case_next@5"
+ ],
+ [
+ "230: set_not_circulating_address_switch_case_next@5:",
+ "231: retsub"
+ ],
+ [
+ "62: int 1",
+ "63: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 10 -> 22 -> 26 -> 27 -> 11 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "46: __puya_arc4_router___set_not_circulating_address_route@3:",
+ "49: txn OnCompletion",
+ "50: !",
+ "51: assert",
+ "52: txn ApplicationID",
+ "53: assert",
+ "56: txna ApplicationArgs 1",
+ "57: txna ApplicationArgs 2",
+ "58: extract 2 0",
+ "61: callsub set_not_circulating_address"
+ ],
+ [
+ "147: set_not_circulating_address:",
+ "151: proto 2 0",
+ "154: int 0",
+ "155: byte \"asset_id\"",
+ "156: app_global_get_ex",
+ "157: assert",
+ "161: txn Sender",
+ "162: swap",
+ "163: dup",
+ "164: asset_params_get AssetManager",
+ "165: assert",
+ "166: uncover 2",
+ "167: ==",
+ "168: assert",
+ "171: frame_dig -2",
+ "172: len",
+ "173: int 32",
+ "174: ==",
+ "175: assert",
+ "176: frame_dig -2",
+ "177: swap",
+ "178: asset_holding_get AssetBalance",
+ "179: bury 1",
+ "180: assert",
+ "183: byte \"burned\"",
+ "186: byte \"locked\"",
+ "189: byte \"generic\"",
+ "201: frame_dig -1",
+ "202: match set_not_circulating_address_switch_case_0@1 set_not_circulating_address_switch_case_1@2 set_not_circulating_address_switch_case_2@3"
+ ],
+ [
+ "223: set_not_circulating_address_switch_case_2@3:",
+ "226: byte \"generic\"",
+ "227: frame_dig -2",
+ "228: app_global_put"
+ ],
+ [
+ "230: set_not_circulating_address_switch_case_next@5:",
+ "231: retsub"
+ ],
+ [
+ "62: int 1",
+ "63: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 30 -> 32 -> 34 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 29 -> 31 -> 32 -> 34 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "304: frame_dig -1",
+ "305: asset_params_get AssetReserve",
+ "306: assert",
+ "307: frame_dig -1",
+ "308: asset_holding_get AssetBalance",
+ "309: bury 1",
+ "310: bnz arc62_get_circulating_supply_ternary_false@3"
+ ],
+ [
+ "319: arc62_get_circulating_supply_ternary_false@3:",
+ "322: frame_dig -1",
+ "323: asset_params_get AssetReserve",
+ "324: assert",
+ "325: frame_dig -1",
+ "326: asset_holding_get AssetBalance",
+ "327: assert",
+ "328: frame_bury 2"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 34 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 33 -> 35 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "342: frame_dig 3",
+ "343: frame_dig -1",
+ "344: asset_holding_get AssetBalance",
+ "345: bury 1",
+ "346: bnz arc62_get_circulating_supply_ternary_false@7"
+ ],
+ [
+ "355: arc62_get_circulating_supply_ternary_false@7:",
+ "358: frame_dig 3",
+ "359: frame_dig -1",
+ "360: asset_holding_get AssetBalance",
+ "361: assert",
+ "362: frame_bury 0"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 37 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 37 -> 39 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "376: frame_dig 4",
+ "377: frame_dig -1",
+ "378: asset_holding_get AssetBalance",
+ "379: bury 1",
+ "380: bnz arc62_get_circulating_supply_ternary_false@11"
+ ],
+ [
+ "389: arc62_get_circulating_supply_ternary_false@11:",
+ "392: frame_dig 4",
+ "393: frame_dig -1",
+ "394: asset_holding_get AssetBalance",
+ "395: assert",
+ "396: frame_bury 1"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 38 -> 40 -> 41 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 38 -> 40 -> 41 -> 43 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "410: frame_dig 5",
+ "411: frame_dig -1",
+ "412: asset_holding_get AssetBalance",
+ "413: bury 1",
+ "414: bnz arc62_get_circulating_supply_ternary_false@15"
+ ],
+ [
+ "422: arc62_get_circulating_supply_ternary_false@15:",
+ "425: frame_dig 5",
+ "426: frame_dig -1",
+ "427: asset_holding_get AssetBalance",
+ "428: assert"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 6 -> 12 -> 28 -> 30 -> 32 -> 34 -> 36 -> 38 -> 40 -> 42 -> 44 -> 13 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "20: method set_asset(uint64)void",
+ "21: method set_not_circulating_address(address,string)void",
+ "22: method arc62_get_circulating_supply(uint64)uint64",
+ "23: txna ApplicationArgs 0",
+ "24: match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4"
+ ],
+ [
+ "65: __puya_arc4_router___arc62_get_circulating_supply_route@4:",
+ "68: txn OnCompletion",
+ "69: !",
+ "70: assert",
+ "71: txn ApplicationID",
+ "72: assert",
+ "75: txna ApplicationArgs 1",
+ "76: btoi",
+ "79: callsub arc62_get_circulating_supply"
+ ],
+ [
+ "235: arc62_get_circulating_supply:",
+ "239: proto 1 1",
+ "240: byte \"\"",
+ "241: dupn 2",
+ "244: int 0",
+ "245: byte \"burned\"",
+ "246: app_global_get_ex",
+ "247: swap",
+ "248: dup",
+ "249: uncover 2",
+ "250: assert",
+ "251: len",
+ "252: int 32",
+ "253: ==",
+ "254: assert",
+ "257: int 0",
+ "258: byte \"locked\"",
+ "259: app_global_get_ex",
+ "260: swap",
+ "261: dup",
+ "262: uncover 2",
+ "263: assert",
+ "264: len",
+ "265: int 32",
+ "266: ==",
+ "267: assert",
+ "270: int 0",
+ "271: byte \"generic\"",
+ "272: app_global_get_ex",
+ "273: swap",
+ "274: dup",
+ "275: uncover 2",
+ "276: assert",
+ "277: len",
+ "278: int 32",
+ "279: ==",
+ "280: assert",
+ "284: int 0",
+ "285: byte \"asset_id\"",
+ "286: app_global_get_ex",
+ "287: assert",
+ "288: frame_dig -1",
+ "289: ==",
+ "290: assert",
+ "293: frame_dig -1",
+ "294: asset_params_get AssetReserve",
+ "295: assert",
+ "296: global ZeroAddress",
+ "297: ==",
+ "301: bnz arc62_get_circulating_supply_ternary_true@2"
+ ],
+ [
+ "312: arc62_get_circulating_supply_ternary_true@2:",
+ "315: int 0",
+ "316: frame_bury 2",
+ "317: b arc62_get_circulating_supply_ternary_merge@4"
+ ],
+ [
+ "330: arc62_get_circulating_supply_ternary_merge@4:",
+ "333: frame_dig 3",
+ "334: global ZeroAddress",
+ "335: ==",
+ "339: bnz arc62_get_circulating_supply_ternary_true@6"
+ ],
+ [
+ "348: arc62_get_circulating_supply_ternary_true@6:",
+ "351: int 0",
+ "352: frame_bury 0",
+ "353: b arc62_get_circulating_supply_ternary_merge@8"
+ ],
+ [
+ "364: arc62_get_circulating_supply_ternary_merge@8:",
+ "367: frame_dig 4",
+ "368: global ZeroAddress",
+ "369: ==",
+ "373: bnz arc62_get_circulating_supply_ternary_true@10"
+ ],
+ [
+ "382: arc62_get_circulating_supply_ternary_true@10:",
+ "385: int 0",
+ "386: frame_bury 1",
+ "387: b arc62_get_circulating_supply_ternary_merge@12"
+ ],
+ [
+ "398: arc62_get_circulating_supply_ternary_merge@12:",
+ "401: frame_dig 5",
+ "402: global ZeroAddress",
+ "403: ==",
+ "407: bnz arc62_get_circulating_supply_ternary_true@14"
+ ],
+ [
+ "416: arc62_get_circulating_supply_ternary_true@14:",
+ "419: int 0",
+ "420: b arc62_get_circulating_supply_ternary_merge@16"
+ ],
+ [
+ "430: arc62_get_circulating_supply_ternary_merge@16:",
+ "433: frame_dig -1",
+ "434: asset_params_get AssetTotal",
+ "435: assert",
+ "439: frame_dig 2",
+ "440: -",
+ "445: frame_dig 0",
+ "446: -",
+ "452: frame_dig 1",
+ "453: -",
+ "460: swap",
+ "461: -",
+ "470: frame_bury 0",
+ "471: retsub"
+ ],
+ [
+ "80: itob",
+ "81: byte 0x151f7c75",
+ "82: swap",
+ "83: concat",
+ "84: log",
+ "85: int 1",
+ "86: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 14 -> 15 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "88: __puya_arc4_router___bare_routing@7:",
+ "91: txn OnCompletion",
+ "92: bnz __puya_arc4_router___after_if_else@11"
+ ],
+ [
+ "93: txn ApplicationID",
+ "94: !",
+ "95: assert",
+ "96: int 1",
+ "97: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ },
+ {
+ "short": "0 -> 1 -> 3 -> 5 -> 14 -> 16 -> 4",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:",
+ "4: txn ApplicationID",
+ "5: bnz main_entrypoint@2"
+ ],
+ [
+ "8: main_entrypoint@2:",
+ "9: callsub __puya_arc4_router__"
+ ],
+ [
+ "14: __puya_arc4_router__:",
+ "17: proto 0 1",
+ "18: txn NumAppArgs",
+ "19: bz __puya_arc4_router___bare_routing@7"
+ ],
+ [
+ "88: __puya_arc4_router___bare_routing@7:",
+ "91: txn OnCompletion",
+ "92: bnz __puya_arc4_router___after_if_else@11"
+ ],
+ [
+ "99: __puya_arc4_router___after_if_else@11:",
+ "102: int 0",
+ "103: retsub"
+ ],
+ [
+ "10: return"
+ ]
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/assets/arc-0062/.algokit/static-analysis/snapshots/CirculatingSupply.clear.json b/assets/arc-0062/.algokit/static-analysis/snapshots/CirculatingSupply.clear.json
new file mode 100644
index 000000000..cd4f69b2f
--- /dev/null
+++ b/assets/arc-0062/.algokit/static-analysis/snapshots/CirculatingSupply.clear.json
@@ -0,0 +1,208 @@
+{
+ "success": false,
+ "error": null,
+ "result": [
+ {
+ "type": "ExecutionPaths",
+ "count": 1,
+ "description": "\nCheck: \"unprotected-deletable\", Impact: High, Confidence: High\nDescription: Unprotected Deletable Applications\n\nWiki: https://github.com/crytic/tealer/wiki/Detector-Documentation#unprotected-deletable-application\n",
+ "check": "unprotected-deletable",
+ "impact": "High",
+ "confidence": "High",
+ "help": "- Avoid deletable applications.\n- Add access controls to the vulnerable method.",
+ "paths": [
+ {
+ "short": "0 -> 1",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.clear_state_program:",
+ "4: int 1",
+ "5: return"
+ ]
+ ]
+ }
+ ]
+ },
+ {
+ "type": "ExecutionPaths",
+ "count": 1,
+ "description": "\nCheck: \"unprotected-updatable\", Impact: High, Confidence: High\nDescription: Unprotected Upgradable Applications\n\nWiki: https://github.com/crytic/tealer/wiki/Detector-Documentation#unprotected-updatable-application\n",
+ "check": "unprotected-updatable",
+ "impact": "High",
+ "confidence": "High",
+ "help": "- Avoid upgradable applications.\n- Add access controls to the vulnerable method.",
+ "paths": [
+ {
+ "short": "0 -> 1",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.clear_state_program:",
+ "4: int 1",
+ "5: return"
+ ]
+ ]
+ }
+ ]
+ },
+ {
+ "type": "ExecutionPaths",
+ "count": 1,
+ "description": "\nCheck: \"can-close-account\", Impact: High, Confidence: High\nDescription: Missing CloseRemainderTo field Validation\n\nWiki: https://github.com/crytic/tealer/wiki/Detector-Documentation#missing-closeremainderto-field-validation\n",
+ "check": "can-close-account",
+ "impact": "High",
+ "confidence": "High",
+ "help": "Validate `CloseRemainderTo` field in the LogicSig.",
+ "paths": [
+ {
+ "short": "0 -> 1",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.clear_state_program:",
+ "4: int 1",
+ "5: return"
+ ]
+ ]
+ }
+ ]
+ },
+ {
+ "type": "ExecutionPaths",
+ "count": 1,
+ "description": "\nCheck: \"can-close-asset\", Impact: High, Confidence: High\nDescription: Missing AssetCloseTo Field Validation\n\nWiki: https://github.com/crytic/tealer/wiki/Detector-Documentation#missing-assetcloseto-field-validation\n",
+ "check": "can-close-asset",
+ "impact": "High",
+ "confidence": "High",
+ "help": "Validate `AssetCloseTo` field in the LogicSig.",
+ "paths": [
+ {
+ "short": "0 -> 1",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.clear_state_program:",
+ "4: int 1",
+ "5: return"
+ ]
+ ]
+ }
+ ]
+ },
+ {
+ "type": "ExecutionPaths",
+ "count": 1,
+ "description": "\nCheck: \"is-deletable\", Impact: High, Confidence: High\nDescription: Deletable Applications\n\nWiki: https://github.com/crytic/tealer/wiki/Detector-Documentation#deletable-application\n",
+ "check": "is-deletable",
+ "impact": "High",
+ "confidence": "High",
+ "help": "Do not approve `DeleteApplication` type application calls.",
+ "paths": [
+ {
+ "short": "0 -> 1",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.clear_state_program:",
+ "4: int 1",
+ "5: return"
+ ]
+ ]
+ }
+ ]
+ },
+ {
+ "type": "ExecutionPaths",
+ "count": 1,
+ "description": "\nCheck: \"is-updatable\", Impact: High, Confidence: High\nDescription: Upgradable Applications\n\nWiki: https://github.com/crytic/tealer/wiki/Detector-Documentation#upgradable-application\n",
+ "check": "is-updatable",
+ "impact": "High",
+ "confidence": "High",
+ "help": "Do not approve `UpdateApplication` type application calls.",
+ "paths": [
+ {
+ "short": "0 -> 1",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.clear_state_program:",
+ "4: int 1",
+ "5: return"
+ ]
+ ]
+ }
+ ]
+ },
+ {
+ "type": "ExecutionPaths",
+ "count": 1,
+ "description": "\nCheck: \"missing-fee-check\", Impact: High, Confidence: High\nDescription: Missing Fee Field Validation\n\nWiki: https://github.com/crytic/tealer/wiki/Detector-Documentation#missing-fee-field-validation\n",
+ "check": "missing-fee-check",
+ "impact": "High",
+ "confidence": "High",
+ "help": "Validate `Fee` field in the LogicSig.",
+ "paths": [
+ {
+ "short": "0 -> 1",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.clear_state_program:",
+ "4: int 1",
+ "5: return"
+ ]
+ ]
+ }
+ ]
+ },
+ {
+ "type": "ExecutionPaths",
+ "count": 0,
+ "description": "\nCheck: \"group-size-check\", Impact: High, Confidence: High\nDescription: Usage of absolute indexes without validating GroupSize\n\nWiki: https://github.com/crytic/tealer/wiki/Detector-Documentation#missing-groupsize-validation\n",
+ "check": "group-size-check",
+ "impact": "High",
+ "confidence": "High",
+ "help": "- Avoid using absolute indexes. Validate GroupSize if used.\n- Favor using ARC-4 ABI and relative indexes for group transactions.",
+ "paths": []
+ },
+ {
+ "type": "ExecutionPaths",
+ "count": 1,
+ "description": "\nCheck: \"rekey-to\", Impact: High, Confidence: High\nDescription: Rekeyable Logic Signatures\n\nWiki: https://github.com/crytic/tealer/wiki/Detector-Documentation#rekeyable-logicsig\n",
+ "check": "rekey-to",
+ "impact": "High",
+ "confidence": "High",
+ "help": "Validate `RekeyTo` field in the LogicSig.",
+ "paths": [
+ {
+ "short": "0 -> 1",
+ "blocks": [
+ [
+ "1: #pragma version 10"
+ ],
+ [
+ "3: smart_contracts.circulating_supply.contract.CirculatingSupply.clear_state_program:",
+ "4: int 1",
+ "5: return"
+ ]
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/assets/arc-0062/.editorconfig b/assets/arc-0062/.editorconfig
new file mode 100644
index 000000000..e2fda3443
--- /dev/null
+++ b/assets/arc-0062/.editorconfig
@@ -0,0 +1,10 @@
+root=true
+
+[*]
+indent_style = space
+indent_size = 2
+end_of_line = lf
+insert_final_newline = true
+
+[*.py]
+indent_size = 4
diff --git a/assets/arc-0062/.gitattributes b/assets/arc-0062/.gitattributes
new file mode 100644
index 000000000..6313b56c5
--- /dev/null
+++ b/assets/arc-0062/.gitattributes
@@ -0,0 +1 @@
+* text=auto eol=lf
diff --git a/assets/arc-0062/.gitignore b/assets/arc-0062/.gitignore
new file mode 100644
index 000000000..a858d63cb
--- /dev/null
+++ b/assets/arc-0062/.gitignore
@@ -0,0 +1,180 @@
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
+
+# Distribution / packaging
+.Python
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+wheels/
+share/python-wheels/
+*.egg-info/
+.installed.cfg
+*.egg
+MANIFEST
+
+# PyInstaller
+# Usually these files are written by a python script from a template
+# before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.nox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*.cover
+*.py,cover
+.hypothesis/
+.pytest_cache/
+cover/
+coverage/
+
+# Translations
+*.mo
+*.pot
+
+# Django stuff:
+*.log
+local_settings.py
+db.sqlite3
+db.sqlite3-journal
+
+# Flask stuff:
+instance/
+.webassets-cache
+
+# Scrapy stuff:
+.scrapy
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+.pybuilder/
+target/
+
+# Jupyter Notebook
+.ipynb_checkpoints
+
+# IPython
+profile_default/
+ipython_config.py
+
+# pyenv
+# For a library or package, you might want to ignore these files since the code is
+# intended to run in multiple environments; otherwise, check them in:
+# .python-version
+
+# pipenv
+# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
+# However, in case of collaboration, if having platform-specific dependencies or dependencies
+# having no cross-platform support, pipenv may install dependencies that don't work, or not
+# install all needed dependencies.
+#Pipfile.lock
+
+# poetry
+# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
+# This is especially recommended for binary packages to ensure reproducibility, and is more
+# commonly ignored for libraries.
+# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
+#poetry.lock
+
+# pdm
+# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
+#pdm.lock
+# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
+# in version control.
+# https://pdm.fming.dev/#use-with-ide
+.pdm.toml
+
+# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
+__pypackages__/
+
+# Celery stuff
+celerybeat-schedule
+celerybeat.pid
+
+# SageMath parsed files
+*.sage.py
+
+# Environments
+.env
+.venv
+env/
+.env.*
+!.env.*.template
+!.env.template
+venv/
+ENV/
+env.bak/
+venv.bak/
+
+# Spyder project settings
+.spyderproject
+.spyproject
+
+# Rope project settings
+.ropeproject
+
+# mkdocs documentation
+/site
+
+# mypy
+.mypy_cache/
+.dmypy.json
+dmypy.json
+
+# Pyre type checker
+.pyre/
+
+# pytype static type analyzer
+.pytype/
+
+# Ruff (linter)
+.ruff_cache/
+
+# Cython debug symbols
+cython_debug/
+
+# PyCharm
+.idea
+!.idea/
+.idea/*
+!.idea/runConfigurations/
+
+# macOS
+.DS_Store
+
+# Received approval test files
+*.received.*
+
+# NPM
+node_modules
+
+# AlgoKit
+debug_traces/
+.algokit/static-analysis/tealer/
+.algokit/sources
diff --git a/assets/arc-0062/.pre-commit-config.yaml b/assets/arc-0062/.pre-commit-config.yaml
new file mode 100644
index 000000000..e37cdb02c
--- /dev/null
+++ b/assets/arc-0062/.pre-commit-config.yaml
@@ -0,0 +1,50 @@
+repos:
+
+ - repo: local
+ hooks:
+
+ - id: black
+ name: black
+ description: "Black: The uncompromising Python code formatter"
+ entry: poetry run black
+ language: system
+ minimum_pre_commit_version: 2.9.2
+ require_serial: true
+ types_or: [ python, pyi ]
+
+
+ - id: ruff
+ name: ruff
+ description: "Run 'ruff' for extremely fast Python linting"
+ entry: poetry run ruff
+ language: system
+ types: [ python ]
+ args: [ "check", "--fix" ]
+ require_serial: false
+ additional_dependencies: [ ]
+ minimum_pre_commit_version: '0'
+ files: '^(src|tests)/'
+
+
+ - id: mypy
+ name: mypy
+ description: '`mypy` will check Python types for correctness'
+ entry: poetry run mypy
+ language: system
+ types_or: [ python, pyi ]
+ require_serial: true
+ additional_dependencies: [ ]
+ minimum_pre_commit_version: '2.9.2'
+ files: '^(src|tests)/'
+
+
+ - id: tealer
+ name: tealer
+ description: "Run AlgoKit `Tealer` for TEAL static analysis"
+ entry: algokit
+ language: system
+ args: [project, run, "audit-teal"]
+ require_serial: false
+ additional_dependencies: []
+ minimum_pre_commit_version: "0"
+ files: '^.*\.teal$'
diff --git a/assets/arc-0062/LICENSE b/assets/arc-0062/LICENSE
new file mode 100644
index 000000000..0e259d42c
--- /dev/null
+++ b/assets/arc-0062/LICENSE
@@ -0,0 +1,121 @@
+Creative Commons Legal Code
+
+CC0 1.0 Universal
+
+ CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
+ LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
+ ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
+ INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
+ REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
+ PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
+ THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
+ HEREUNDER.
+
+Statement of Purpose
+
+The laws of most jurisdictions throughout the world automatically confer
+exclusive Copyright and Related Rights (defined below) upon the creator
+and subsequent owner(s) (each and all, an "owner") of an original work of
+authorship and/or a database (each, a "Work").
+
+Certain owners wish to permanently relinquish those rights to a Work for
+the purpose of contributing to a commons of creative, cultural and
+scientific works ("Commons") that the public can reliably and without fear
+of later claims of infringement build upon, modify, incorporate in other
+works, reuse and redistribute as freely as possible in any form whatsoever
+and for any purposes, including without limitation commercial purposes.
+These owners may contribute to the Commons to promote the ideal of a free
+culture and the further production of creative, cultural and scientific
+works, or to gain reputation or greater distribution for their Work in
+part through the use and efforts of others.
+
+For these and/or other purposes and motivations, and without any
+expectation of additional consideration or compensation, the person
+associating CC0 with a Work (the "Affirmer"), to the extent that he or she
+is an owner of Copyright and Related Rights in the Work, voluntarily
+elects to apply CC0 to the Work and publicly distribute the Work under its
+terms, with knowledge of his or her Copyright and Related Rights in the
+Work and the meaning and intended legal effect of CC0 on those rights.
+
+1. Copyright and Related Rights. A Work made available under CC0 may be
+protected by copyright and related or neighboring rights ("Copyright and
+Related Rights"). Copyright and Related Rights include, but are not
+limited to, the following:
+
+ i. the right to reproduce, adapt, distribute, perform, display,
+ communicate, and translate a Work;
+ ii. moral rights retained by the original author(s) and/or performer(s);
+iii. publicity and privacy rights pertaining to a person's image or
+ likeness depicted in a Work;
+ iv. rights protecting against unfair competition in regards to a Work,
+ subject to the limitations in paragraph 4(a), below;
+ v. rights protecting the extraction, dissemination, use and reuse of data
+ in a Work;
+ vi. database rights (such as those arising under Directive 96/9/EC of the
+ European Parliament and of the Council of 11 March 1996 on the legal
+ protection of databases, and under any national implementation
+ thereof, including any amended or successor version of such
+ directive); and
+vii. other similar, equivalent or corresponding rights throughout the
+ world based on applicable law or treaty, and any national
+ implementations thereof.
+
+2. Waiver. To the greatest extent permitted by, but not in contravention
+of, applicable law, Affirmer hereby overtly, fully, permanently,
+irrevocably and unconditionally waives, abandons, and surrenders all of
+Affirmer's Copyright and Related Rights and associated claims and causes
+of action, whether now known or unknown (including existing as well as
+future claims and causes of action), in the Work (i) in all territories
+worldwide, (ii) for the maximum duration provided by applicable law or
+treaty (including future time extensions), (iii) in any current or future
+medium and for any number of copies, and (iv) for any purpose whatsoever,
+including without limitation commercial, advertising or promotional
+purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
+member of the public at large and to the detriment of Affirmer's heirs and
+successors, fully intending that such Waiver shall not be subject to
+revocation, rescission, cancellation, termination, or any other legal or
+equitable action to disrupt the quiet enjoyment of the Work by the public
+as contemplated by Affirmer's express Statement of Purpose.
+
+3. Public License Fallback. Should any part of the Waiver for any reason
+be judged legally invalid or ineffective under applicable law, then the
+Waiver shall be preserved to the maximum extent permitted taking into
+account Affirmer's express Statement of Purpose. In addition, to the
+extent the Waiver is so judged Affirmer hereby grants to each affected
+person a royalty-free, non transferable, non sublicensable, non exclusive,
+irrevocable and unconditional license to exercise Affirmer's Copyright and
+Related Rights in the Work (i) in all territories worldwide, (ii) for the
+maximum duration provided by applicable law or treaty (including future
+time extensions), (iii) in any current or future medium and for any number
+of copies, and (iv) for any purpose whatsoever, including without
+limitation commercial, advertising or promotional purposes (the
+"License"). The License shall be deemed effective as of the date CC0 was
+applied by Affirmer to the Work. Should any part of the License for any
+reason be judged legally invalid or ineffective under applicable law, such
+partial invalidity or ineffectiveness shall not invalidate the remainder
+of the License, and in such case Affirmer hereby affirms that he or she
+will not (i) exercise any of his or her remaining Copyright and Related
+Rights in the Work or (ii) assert any associated claims and causes of
+action with respect to the Work, in either case contrary to Affirmer's
+express Statement of Purpose.
+
+4. Limitations and Disclaimers.
+
+ a. No trademark or patent rights held by Affirmer are waived, abandoned,
+ surrendered, licensed or otherwise affected by this document.
+ b. Affirmer offers the Work as-is and makes no representations or
+ warranties of any kind concerning the Work, express, implied,
+ statutory or otherwise, including without limitation warranties of
+ title, merchantability, fitness for a particular purpose, non
+ infringement, or the absence of latent or other defects, accuracy, or
+ the present or absence of errors, whether or not discoverable, all to
+ the greatest extent permissible under applicable law.
+ c. Affirmer disclaims responsibility for clearing rights of other persons
+ that may apply to the Work or any use thereof, including without
+ limitation any person's Copyright and Related Rights in the Work.
+ Further, Affirmer disclaims responsibility for obtaining any necessary
+ consents, permissions or other rights required for any use of the
+ Work.
+ d. Affirmer understands and acknowledges that Creative Commons is not a
+ party to this document and has no duty or obligation with respect to
+ this CC0 or use of the Work.
diff --git a/assets/arc-0062/README.md b/assets/arc-0062/README.md
new file mode 100644
index 000000000..59d2a01f9
--- /dev/null
+++ b/assets/arc-0062/README.md
@@ -0,0 +1,16 @@
+# ARC-62 Reference Implementation
+
+This is the reference implementation of ASA Circulating Supply App based on the
+[ARC-62 specification](../../ARCs/arc-0062.md).
+
+## Example
+
+Install the project Python dependencies:
+
+`poetry install`
+
+Run the test:
+
+```shell
+poetry run pytest -s -v tests/test_get_circulating_supply.py::test_pass_get_circulating_supply
+```
diff --git a/assets/arc-0062/poetry.lock b/assets/arc-0062/poetry.lock
new file mode 100644
index 000000000..28585e9f3
--- /dev/null
+++ b/assets/arc-0062/poetry.lock
@@ -0,0 +1,2159 @@
+# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand.
+
+[[package]]
+name = "aiohappyeyeballs"
+version = "2.4.3"
+description = "Happy Eyeballs for asyncio"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "aiohappyeyeballs-2.4.3-py3-none-any.whl", hash = "sha256:8a7a83727b2756f394ab2895ea0765a0a8c475e3c71e98d43d76f22b4b435572"},
+ {file = "aiohappyeyeballs-2.4.3.tar.gz", hash = "sha256:75cf88a15106a5002a8eb1dab212525c00d1f4c0fa96e551c9fbe6f09a621586"},
+]
+
+[[package]]
+name = "aiohttp"
+version = "3.10.8"
+description = "Async http client/server framework (asyncio)"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "aiohttp-3.10.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a1ba7bc139592339ddeb62c06486d0fa0f4ca61216e14137a40d626c81faf10c"},
+ {file = "aiohttp-3.10.8-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:85e4d7bd05d18e4b348441e7584c681eff646e3bf38f68b2626807f3add21aa2"},
+ {file = "aiohttp-3.10.8-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:69de056022e7abf69cb9fec795515973cc3eeaff51e3ea8d72a77aa933a91c52"},
+ {file = "aiohttp-3.10.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee3587506898d4a404b33bd19689286ccf226c3d44d7a73670c8498cd688e42c"},
+ {file = "aiohttp-3.10.8-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fe285a697c851734285369614443451462ce78aac2b77db23567507484b1dc6f"},
+ {file = "aiohttp-3.10.8-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:10c7932337285a6bfa3a5fe1fd4da90b66ebfd9d0cbd1544402e1202eb9a8c3e"},
+ {file = "aiohttp-3.10.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd9716ef0224fe0d0336997eb242f40619f9f8c5c57e66b525a1ebf9f1d8cebe"},
+ {file = "aiohttp-3.10.8-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ceacea31f8a55cdba02bc72c93eb2e1b77160e91f8abd605969c168502fd71eb"},
+ {file = "aiohttp-3.10.8-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:9721554bfa9e15f6e462da304374c2f1baede3cb06008c36c47fa37ea32f1dc4"},
+ {file = "aiohttp-3.10.8-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:22cdeb684d8552490dd2697a5138c4ecb46f844892df437aaf94f7eea99af879"},
+ {file = "aiohttp-3.10.8-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:e56bb7e31c4bc79956b866163170bc89fd619e0581ce813330d4ea46921a4881"},
+ {file = "aiohttp-3.10.8-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:3a95d2686bc4794d66bd8de654e41b5339fab542b2bca9238aa63ed5f4f2ce82"},
+ {file = "aiohttp-3.10.8-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d82404a0e7b10e0d7f022cf44031b78af8a4f99bd01561ac68f7c24772fed021"},
+ {file = "aiohttp-3.10.8-cp310-cp310-win32.whl", hash = "sha256:4e10b04542d27e21538e670156e88766543692a0a883f243ba8fad9ddea82e53"},
+ {file = "aiohttp-3.10.8-cp310-cp310-win_amd64.whl", hash = "sha256:680dbcff5adc7f696ccf8bf671d38366a1f620b5616a1d333d0cb33956065395"},
+ {file = "aiohttp-3.10.8-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:33a68011a38020ed4ff41ae0dbf4a96a202562ecf2024bdd8f65385f1d07f6ef"},
+ {file = "aiohttp-3.10.8-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6c7efa6616a95e3bd73b8a69691012d2ef1f95f9ea0189e42f338fae080c2fc6"},
+ {file = "aiohttp-3.10.8-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ddb9b9764cfb4459acf01c02d2a59d3e5066b06a846a364fd1749aa168efa2be"},
+ {file = "aiohttp-3.10.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c7f270f4ca92760f98a42c45a58674fff488e23b144ec80b1cc6fa2effed377"},
+ {file = "aiohttp-3.10.8-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6984dda9d79064361ab58d03f6c1e793ea845c6cfa89ffe1a7b9bb400dfd56bd"},
+ {file = "aiohttp-3.10.8-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3f6d47e392c27206701565c8df4cac6ebed28fdf6dcaea5b1eea7a4631d8e6db"},
+ {file = "aiohttp-3.10.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a72f89aea712c619b2ca32c6f4335c77125ede27530ad9705f4f349357833695"},
+ {file = "aiohttp-3.10.8-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c36074b26f3263879ba8e4dbd33db2b79874a3392f403a70b772701363148b9f"},
+ {file = "aiohttp-3.10.8-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e32148b4a745e70a255a1d44b5664de1f2e24fcefb98a75b60c83b9e260ddb5b"},
+ {file = "aiohttp-3.10.8-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5aa1a073514cf59c81ad49a4ed9b5d72b2433638cd53160fd2f3a9cfa94718db"},
+ {file = "aiohttp-3.10.8-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:d3a79200a9d5e621c4623081ddb25380b713c8cf5233cd11c1aabad990bb9381"},
+ {file = "aiohttp-3.10.8-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e45fdfcb2d5bcad83373e4808825b7512953146d147488114575780640665027"},
+ {file = "aiohttp-3.10.8-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f78e2a78432c537ae876a93013b7bc0027ba5b93ad7b3463624c4b6906489332"},
+ {file = "aiohttp-3.10.8-cp311-cp311-win32.whl", hash = "sha256:f8179855a4e4f3b931cb1764ec87673d3fbdcca2af496c8d30567d7b034a13db"},
+ {file = "aiohttp-3.10.8-cp311-cp311-win_amd64.whl", hash = "sha256:ef9b484604af05ca745b6108ca1aaa22ae1919037ae4f93aaf9a37ba42e0b835"},
+ {file = "aiohttp-3.10.8-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:ab2d6523575fc98896c80f49ac99e849c0b0e69cc80bf864eed6af2ae728a52b"},
+ {file = "aiohttp-3.10.8-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f5d5d5401744dda50b943d8764508d0e60cc2d3305ac1e6420935861a9d544bc"},
+ {file = "aiohttp-3.10.8-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de23085cf90911600ace512e909114385026b16324fa203cc74c81f21fd3276a"},
+ {file = "aiohttp-3.10.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4618f0d2bf523043866a9ff8458900d8eb0a6d4018f251dae98e5f1fb699f3a8"},
+ {file = "aiohttp-3.10.8-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:21c1925541ca84f7b5e0df361c0a813a7d6a56d3b0030ebd4b220b8d232015f9"},
+ {file = "aiohttp-3.10.8-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:497a7d20caea8855c5429db3cdb829385467217d7feb86952a6107e033e031b9"},
+ {file = "aiohttp-3.10.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c887019dbcb4af58a091a45ccf376fffe800b5531b45c1efccda4bedf87747ea"},
+ {file = "aiohttp-3.10.8-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40d2d719c3c36a7a65ed26400e2b45b2d9ed7edf498f4df38b2ae130f25a0d01"},
+ {file = "aiohttp-3.10.8-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:57359785f27394a8bcab0da6dcd46706d087dfebf59a8d0ad2e64a4bc2f6f94f"},
+ {file = "aiohttp-3.10.8-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a961ee6f2cdd1a2be4735333ab284691180d40bad48f97bb598841bfcbfb94ec"},
+ {file = "aiohttp-3.10.8-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:fe3d79d6af839ffa46fdc5d2cf34295390894471e9875050eafa584cb781508d"},
+ {file = "aiohttp-3.10.8-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9a281cba03bdaa341c70b7551b2256a88d45eead149f48b75a96d41128c240b3"},
+ {file = "aiohttp-3.10.8-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c6769d71bfb1ed60321363a9bc05e94dcf05e38295ef41d46ac08919e5b00d19"},
+ {file = "aiohttp-3.10.8-cp312-cp312-win32.whl", hash = "sha256:a3081246bab4d419697ee45e555cef5cd1def7ac193dff6f50be761d2e44f194"},
+ {file = "aiohttp-3.10.8-cp312-cp312-win_amd64.whl", hash = "sha256:ab1546fc8e00676febc81c548a876c7bde32f881b8334b77f84719ab2c7d28dc"},
+ {file = "aiohttp-3.10.8-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:b1a012677b8e0a39e181e218de47d6741c5922202e3b0b65e412e2ce47c39337"},
+ {file = "aiohttp-3.10.8-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2df786c96c57cd6b87156ba4c5f166af7b88f3fc05f9d592252fdc83d8615a3c"},
+ {file = "aiohttp-3.10.8-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8885ca09d3a9317219c0831276bfe26984b17b2c37b7bf70dd478d17092a4772"},
+ {file = "aiohttp-3.10.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4dbf252ac19860e0ab56cd480d2805498f47c5a2d04f5995d8d8a6effd04b48c"},
+ {file = "aiohttp-3.10.8-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b2036479b6b94afaaca7d07b8a68dc0e67b0caf5f6293bb6a5a1825f5923000"},
+ {file = "aiohttp-3.10.8-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:365783e1b7c40b59ed4ce2b5a7491bae48f41cd2c30d52647a5b1ee8604c68ad"},
+ {file = "aiohttp-3.10.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:270e653b5a4b557476a1ed40e6b6ce82f331aab669620d7c95c658ef976c9c5e"},
+ {file = "aiohttp-3.10.8-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8960fabc20bfe4fafb941067cda8e23c8c17c98c121aa31c7bf0cdab11b07842"},
+ {file = "aiohttp-3.10.8-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f21e8f2abed9a44afc3d15bba22e0dfc71e5fa859bea916e42354c16102b036f"},
+ {file = "aiohttp-3.10.8-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:fecd55e7418fabd297fd836e65cbd6371aa4035a264998a091bbf13f94d9c44d"},
+ {file = "aiohttp-3.10.8-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:badb51d851358cd7535b647bb67af4854b64f3c85f0d089c737f75504d5910ec"},
+ {file = "aiohttp-3.10.8-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:e860985f30f3a015979e63e7ba1a391526cdac1b22b7b332579df7867848e255"},
+ {file = "aiohttp-3.10.8-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:71462f8eeca477cbc0c9700a9464e3f75f59068aed5e9d4a521a103692da72dc"},
+ {file = "aiohttp-3.10.8-cp313-cp313-win32.whl", hash = "sha256:177126e971782769b34933e94fddd1089cef0fe6b82fee8a885e539f5b0f0c6a"},
+ {file = "aiohttp-3.10.8-cp313-cp313-win_amd64.whl", hash = "sha256:98a4eb60e27033dee9593814ca320ee8c199489fbc6b2699d0f710584db7feb7"},
+ {file = "aiohttp-3.10.8-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ffef3d763e4c8fc97e740da5b4d0f080b78630a3914f4e772a122bbfa608c1db"},
+ {file = "aiohttp-3.10.8-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:597128cb7bc5f068181b49a732961f46cb89f85686206289d6ccb5e27cb5fbe2"},
+ {file = "aiohttp-3.10.8-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f23a6c1d09de5de89a33c9e9b229106cb70dcfdd55e81a3a3580eaadaa32bc92"},
+ {file = "aiohttp-3.10.8-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da57af0c54a302b7c655fa1ccd5b1817a53739afa39924ef1816e7b7c8a07ccb"},
+ {file = "aiohttp-3.10.8-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1e7a6af57091056a79a35104d6ec29d98ec7f1fb7270ad9c6fff871b678d1ff8"},
+ {file = "aiohttp-3.10.8-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:32710d6b3b6c09c60c794d84ca887a3a2890131c0b02b3cefdcc6709a2260a7c"},
+ {file = "aiohttp-3.10.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b91f4f62ad39a8a42d511d66269b46cb2fb7dea9564c21ab6c56a642d28bff5"},
+ {file = "aiohttp-3.10.8-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:471a8c47344b9cc309558b3fcc469bd2c12b49322b4b31eb386c4a2b2d44e44a"},
+ {file = "aiohttp-3.10.8-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:fc0e7f91705445d79beafba9bb3057dd50830e40fe5417017a76a214af54e122"},
+ {file = "aiohttp-3.10.8-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:85431c9131a9a0f65260dc7a65c800ca5eae78c4c9931618f18c8e0933a0e0c1"},
+ {file = "aiohttp-3.10.8-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:b91557ee0893da52794b25660d4f57bb519bcad8b7df301acd3898f7197c5d81"},
+ {file = "aiohttp-3.10.8-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:4954e6b06dd0be97e1a5751fc606be1f9edbdc553c5d9b57d72406a8fbd17f9d"},
+ {file = "aiohttp-3.10.8-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:a087c84b4992160ffef7afd98ef24177c8bd4ad61c53607145a8377457385100"},
+ {file = "aiohttp-3.10.8-cp38-cp38-win32.whl", hash = "sha256:e1f0f7b27171b2956a27bd8f899751d0866ddabdd05cbddf3520f945130a908c"},
+ {file = "aiohttp-3.10.8-cp38-cp38-win_amd64.whl", hash = "sha256:c4916070e12ae140110aa598031876c1bf8676a36a750716ea0aa5bd694aa2e7"},
+ {file = "aiohttp-3.10.8-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5284997e3d88d0dfb874c43e51ae8f4a6f4ca5b90dcf22995035187253d430db"},
+ {file = "aiohttp-3.10.8-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9443d9ebc5167ce1fbb552faf2d666fb22ef5716a8750be67efd140a7733738c"},
+ {file = "aiohttp-3.10.8-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b667e2a03407d79a76c618dc30cedebd48f082d85880d0c9c4ec2faa3e10f43e"},
+ {file = "aiohttp-3.10.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:98fae99d5c2146f254b7806001498e6f9ffb0e330de55a35e72feb7cb2fa399b"},
+ {file = "aiohttp-3.10.8-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8296edd99d0dd9d0eb8b9e25b3b3506eef55c1854e9cc230f0b3f885f680410b"},
+ {file = "aiohttp-3.10.8-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1ce46dfb49cfbf9e92818be4b761d4042230b1f0e05ffec0aad15b3eb162b905"},
+ {file = "aiohttp-3.10.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c38cfd355fd86c39b2d54651bd6ed7d63d4fe3b5553f364bae3306e2445f847"},
+ {file = "aiohttp-3.10.8-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:713dff3f87ceec3bde4f3f484861464e722cf7533f9fa6b824ec82bb5a9010a7"},
+ {file = "aiohttp-3.10.8-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:21a72f4a9c69a8567a0aca12042f12bba25d3139fd5dd8eeb9931f4d9e8599cd"},
+ {file = "aiohttp-3.10.8-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:6d1ad868624f6cea77341ef2877ad4e71f7116834a6cd7ec36ec5c32f94ee6ae"},
+ {file = "aiohttp-3.10.8-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:a78ba86d5a08207d1d1ad10b97aed6ea48b374b3f6831d02d0b06545ac0f181e"},
+ {file = "aiohttp-3.10.8-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:aff048793d05e1ce05b62e49dccf81fe52719a13f4861530706619506224992b"},
+ {file = "aiohttp-3.10.8-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:d088ca05381fd409793571d8e34eca06daf41c8c50a05aeed358d2d340c7af81"},
+ {file = "aiohttp-3.10.8-cp39-cp39-win32.whl", hash = "sha256:ee97c4e54f457c366e1f76fbbf3e8effee9de57dae671084a161c00f481106ce"},
+ {file = "aiohttp-3.10.8-cp39-cp39-win_amd64.whl", hash = "sha256:d95ae4420669c871667aad92ba8cce6251d61d79c1a38504621094143f94a8b4"},
+ {file = "aiohttp-3.10.8.tar.gz", hash = "sha256:21f8225f7dc187018e8433c9326be01477fb2810721e048b33ac49091b19fb4a"},
+]
+
+[package.dependencies]
+aiohappyeyeballs = ">=2.3.0"
+aiosignal = ">=1.1.2"
+attrs = ">=17.3.0"
+frozenlist = ">=1.1.1"
+multidict = ">=4.5,<7.0"
+yarl = ">=1.12.0,<2.0"
+
+[package.extras]
+speedups = ["Brotli", "aiodns (>=3.2.0)", "brotlicffi"]
+
+[[package]]
+name = "aiosignal"
+version = "1.3.1"
+description = "aiosignal: a list of registered asynchronous callbacks"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "aiosignal-1.3.1-py3-none-any.whl", hash = "sha256:f8376fb07dd1e86a584e4fcdec80b36b7f81aac666ebc724e2c090300dd83b17"},
+ {file = "aiosignal-1.3.1.tar.gz", hash = "sha256:54cd96e15e1649b75d6c87526a6ff0b6c1b0dd3459f43d9ca11d48c339b68cfc"},
+]
+
+[package.dependencies]
+frozenlist = ">=1.1.0"
+
+[[package]]
+name = "algokit-client-generator"
+version = "1.1.7"
+description = "Algorand typed client Generator"
+optional = false
+python-versions = "<4.0,>=3.10"
+files = [
+ {file = "algokit_client_generator-1.1.7-py3-none-any.whl", hash = "sha256:88c594825c173dec9491ff7318bfa61c96aad0dbf918e795d32e0c8475b634d8"},
+]
+
+[package.dependencies]
+algokit-utils = ">=2.3.0,<3.0.0"
+
+[[package]]
+name = "algokit-utils"
+version = "2.3.1"
+description = "Utilities for Algorand development for use by AlgoKit"
+optional = false
+python-versions = "<4.0,>=3.10"
+files = [
+ {file = "algokit_utils-2.3.1-py3-none-any.whl", hash = "sha256:a3bbbbe3cc9eb04a343b762a8dab9970232080facc8ec3fc74f8d3d942315ec1"},
+]
+
+[package.dependencies]
+deprecated = ">=1.2.14,<2.0.0"
+httpx = ">=0.23.1,<0.24.0"
+py-algorand-sdk = ">=2.4.0,<3.0.0"
+
+[[package]]
+name = "algorand-python"
+version = "2.1.0"
+description = "API for writing Algorand Python Smart contracts"
+optional = false
+python-versions = "<4.0,>=3.12"
+files = [
+ {file = "algorand_python-2.1.0-py3-none-any.whl", hash = "sha256:a03bc0b6c96db171e957f0e8ccc396f98cc87f738b8679cf0400d7cda30b3b54"},
+]
+
+[[package]]
+name = "algorand-python-testing"
+version = "0.4.1"
+description = "Algorand Python testing library"
+optional = false
+python-versions = ">=3.12"
+files = [
+ {file = "algorand_python_testing-0.4.1-py3-none-any.whl", hash = "sha256:f592a26a89bb984b5644c1cc064ddeca11174ae0e9b550b6602729c8c6c5ef26"},
+ {file = "algorand_python_testing-0.4.1.tar.gz", hash = "sha256:4b5f7c21d1cb44d15bc5c0998f2aad47c6324645f30e39f33d833d93ecf106e7"},
+]
+
+[package.dependencies]
+algorand-python = ">=2.0"
+coincurve = ">=19.0.1"
+ecdsa = ">=0.17.0"
+pycryptodomex = ">=3.6.0,<4"
+pynacl = ">=1.4.0,<2"
+
+[[package]]
+name = "anyio"
+version = "4.6.0"
+description = "High level compatibility layer for multiple asynchronous event loop implementations"
+optional = false
+python-versions = ">=3.9"
+files = [
+ {file = "anyio-4.6.0-py3-none-any.whl", hash = "sha256:c7d2e9d63e31599eeb636c8c5c03a7e108d73b345f064f1c19fdc87b79036a9a"},
+ {file = "anyio-4.6.0.tar.gz", hash = "sha256:137b4559cbb034c477165047febb6ff83f390fc3b20bf181c1fc0a728cb8beeb"},
+]
+
+[package.dependencies]
+idna = ">=2.8"
+sniffio = ">=1.1"
+
+[package.extras]
+doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"]
+test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.21.0b1)"]
+trio = ["trio (>=0.26.1)"]
+
+[[package]]
+name = "asn1crypto"
+version = "1.5.1"
+description = "Fast ASN.1 parser and serializer with definitions for private keys, public keys, certificates, CRL, OCSP, CMS, PKCS#3, PKCS#7, PKCS#8, PKCS#12, PKCS#5, X.509 and TSP"
+optional = false
+python-versions = "*"
+files = [
+ {file = "asn1crypto-1.5.1-py2.py3-none-any.whl", hash = "sha256:db4e40728b728508912cbb3d44f19ce188f218e9eba635821bb4b68564f8fd67"},
+ {file = "asn1crypto-1.5.1.tar.gz", hash = "sha256:13ae38502be632115abf8a24cbe5f4da52e3b5231990aff31123c805306ccb9c"},
+]
+
+[[package]]
+name = "attrs"
+version = "23.2.0"
+description = "Classes Without Boilerplate"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "attrs-23.2.0-py3-none-any.whl", hash = "sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1"},
+ {file = "attrs-23.2.0.tar.gz", hash = "sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30"},
+]
+
+[package.extras]
+cov = ["attrs[tests]", "coverage[toml] (>=5.3)"]
+dev = ["attrs[tests]", "pre-commit"]
+docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"]
+tests = ["attrs[tests-no-zope]", "zope-interface"]
+tests-mypy = ["mypy (>=1.6)", "pytest-mypy-plugins"]
+tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "pytest (>=4.3.0)", "pytest-xdist[psutil]"]
+
+[[package]]
+name = "black"
+version = "24.8.0"
+description = "The uncompromising code formatter."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "black-24.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:09cdeb74d494ec023ded657f7092ba518e8cf78fa8386155e4a03fdcc44679e6"},
+ {file = "black-24.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:81c6742da39f33b08e791da38410f32e27d632260e599df7245cccee2064afeb"},
+ {file = "black-24.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:707a1ca89221bc8a1a64fb5e15ef39cd755633daa672a9db7498d1c19de66a42"},
+ {file = "black-24.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:d6417535d99c37cee4091a2f24eb2b6d5ec42b144d50f1f2e436d9fe1916fe1a"},
+ {file = "black-24.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:fb6e2c0b86bbd43dee042e48059c9ad7830abd5c94b0bc518c0eeec57c3eddc1"},
+ {file = "black-24.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:837fd281f1908d0076844bc2b801ad2d369c78c45cf800cad7b61686051041af"},
+ {file = "black-24.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:62e8730977f0b77998029da7971fa896ceefa2c4c4933fcd593fa599ecbf97a4"},
+ {file = "black-24.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:72901b4913cbac8972ad911dc4098d5753704d1f3c56e44ae8dce99eecb0e3af"},
+ {file = "black-24.8.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:7c046c1d1eeb7aea9335da62472481d3bbf3fd986e093cffd35f4385c94ae368"},
+ {file = "black-24.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:649f6d84ccbae73ab767e206772cc2d7a393a001070a4c814a546afd0d423aed"},
+ {file = "black-24.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2b59b250fdba5f9a9cd9d0ece6e6d993d91ce877d121d161e4698af3eb9c1018"},
+ {file = "black-24.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:6e55d30d44bed36593c3163b9bc63bf58b3b30e4611e4d88a0c3c239930ed5b2"},
+ {file = "black-24.8.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:505289f17ceda596658ae81b61ebbe2d9b25aa78067035184ed0a9d855d18afd"},
+ {file = "black-24.8.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b19c9ad992c7883ad84c9b22aaa73562a16b819c1d8db7a1a1a49fb7ec13c7d2"},
+ {file = "black-24.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1f13f7f386f86f8121d76599114bb8c17b69d962137fc70efe56137727c7047e"},
+ {file = "black-24.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:f490dbd59680d809ca31efdae20e634f3fae27fba3ce0ba3208333b713bc3920"},
+ {file = "black-24.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:eab4dd44ce80dea27dc69db40dab62d4ca96112f87996bca68cd75639aeb2e4c"},
+ {file = "black-24.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3c4285573d4897a7610054af5a890bde7c65cb466040c5f0c8b732812d7f0e5e"},
+ {file = "black-24.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e84e33b37be070ba135176c123ae52a51f82306def9f7d063ee302ecab2cf47"},
+ {file = "black-24.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:73bbf84ed136e45d451a260c6b73ed674652f90a2b3211d6a35e78054563a9bb"},
+ {file = "black-24.8.0-py3-none-any.whl", hash = "sha256:972085c618ee94f402da1af548a4f218c754ea7e5dc70acb168bfaca4c2542ed"},
+ {file = "black-24.8.0.tar.gz", hash = "sha256:2500945420b6784c38b9ee885af039f5e7471ef284ab03fa35ecdde4688cd83f"},
+]
+
+[package.dependencies]
+aiohttp = [
+ {version = ">=3.7.4,<3.9.0 || >3.9.0", optional = true, markers = "sys_platform == \"win32\" and implementation_name == \"pypy\" and extra == \"d\""},
+ {version = ">=3.7.4", optional = true, markers = "sys_platform != \"win32\" and extra == \"d\" or implementation_name != \"pypy\" and extra == \"d\""},
+]
+click = ">=8.0.0"
+mypy-extensions = ">=0.4.3"
+packaging = ">=22.0"
+pathspec = ">=0.9.0"
+platformdirs = ">=2"
+
+[package.extras]
+colorama = ["colorama (>=0.4.3)"]
+d = ["aiohttp (>=3.7.4)", "aiohttp (>=3.7.4,!=3.9.0)"]
+jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"]
+uvloop = ["uvloop (>=0.15.2)"]
+
+[[package]]
+name = "boolean-py"
+version = "4.0"
+description = "Define boolean algebras, create and parse boolean expressions and create custom boolean DSL."
+optional = false
+python-versions = "*"
+files = [
+ {file = "boolean.py-4.0-py3-none-any.whl", hash = "sha256:2876f2051d7d6394a531d82dc6eb407faa0b01a0a0b3083817ccd7323b8d96bd"},
+ {file = "boolean.py-4.0.tar.gz", hash = "sha256:17b9a181630e43dde1851d42bef546d616d5d9b4480357514597e78b203d06e4"},
+]
+
+[[package]]
+name = "cachecontrol"
+version = "0.14.0"
+description = "httplib2 caching for requests"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "cachecontrol-0.14.0-py3-none-any.whl", hash = "sha256:f5bf3f0620c38db2e5122c0726bdebb0d16869de966ea6a2befe92470b740ea0"},
+ {file = "cachecontrol-0.14.0.tar.gz", hash = "sha256:7db1195b41c81f8274a7bbd97c956f44e8348265a1bc7641c37dfebc39f0c938"},
+]
+
+[package.dependencies]
+filelock = {version = ">=3.8.0", optional = true, markers = "extra == \"filecache\""}
+msgpack = ">=0.5.2,<2.0.0"
+requests = ">=2.16.0"
+
+[package.extras]
+dev = ["CacheControl[filecache,redis]", "black", "build", "cherrypy", "furo", "mypy", "pytest", "pytest-cov", "sphinx", "sphinx-copybutton", "tox", "types-redis", "types-requests"]
+filecache = ["filelock (>=3.8.0)"]
+redis = ["redis (>=2.10.5)"]
+
+[[package]]
+name = "cattrs"
+version = "24.1.2"
+description = "Composable complex class support for attrs and dataclasses."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "cattrs-24.1.2-py3-none-any.whl", hash = "sha256:67c7495b760168d931a10233f979b28dc04daf853b30752246f4f8471c6d68d0"},
+ {file = "cattrs-24.1.2.tar.gz", hash = "sha256:8028cfe1ff5382df59dd36474a86e02d817b06eaf8af84555441bac915d2ef85"},
+]
+
+[package.dependencies]
+attrs = ">=23.1.0"
+
+[package.extras]
+bson = ["pymongo (>=4.4.0)"]
+cbor2 = ["cbor2 (>=5.4.6)"]
+msgpack = ["msgpack (>=1.0.5)"]
+msgspec = ["msgspec (>=0.18.5)"]
+orjson = ["orjson (>=3.9.2)"]
+pyyaml = ["pyyaml (>=6.0)"]
+tomlkit = ["tomlkit (>=0.11.8)"]
+ujson = ["ujson (>=5.7.0)"]
+
+[[package]]
+name = "certifi"
+version = "2024.8.30"
+description = "Python package for providing Mozilla's CA Bundle."
+optional = false
+python-versions = ">=3.6"
+files = [
+ {file = "certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8"},
+ {file = "certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"},
+]
+
+[[package]]
+name = "cffi"
+version = "1.17.1"
+description = "Foreign Function Interface for Python calling C code."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"},
+ {file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"},
+ {file = "cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382"},
+ {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702"},
+ {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3"},
+ {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6"},
+ {file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17"},
+ {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8"},
+ {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e"},
+ {file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be"},
+ {file = "cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c"},
+ {file = "cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15"},
+ {file = "cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401"},
+ {file = "cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf"},
+ {file = "cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4"},
+ {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41"},
+ {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1"},
+ {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6"},
+ {file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d"},
+ {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6"},
+ {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f"},
+ {file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"},
+ {file = "cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655"},
+ {file = "cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0"},
+ {file = "cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4"},
+ {file = "cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c"},
+ {file = "cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36"},
+ {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5"},
+ {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff"},
+ {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99"},
+ {file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93"},
+ {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3"},
+ {file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8"},
+ {file = "cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65"},
+ {file = "cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903"},
+ {file = "cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e"},
+ {file = "cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2"},
+ {file = "cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3"},
+ {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683"},
+ {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5"},
+ {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4"},
+ {file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd"},
+ {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed"},
+ {file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9"},
+ {file = "cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d"},
+ {file = "cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a"},
+ {file = "cffi-1.17.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b"},
+ {file = "cffi-1.17.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964"},
+ {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9"},
+ {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc"},
+ {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c"},
+ {file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1"},
+ {file = "cffi-1.17.1-cp38-cp38-win32.whl", hash = "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8"},
+ {file = "cffi-1.17.1-cp38-cp38-win_amd64.whl", hash = "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1"},
+ {file = "cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16"},
+ {file = "cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36"},
+ {file = "cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8"},
+ {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576"},
+ {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87"},
+ {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0"},
+ {file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3"},
+ {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595"},
+ {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a"},
+ {file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e"},
+ {file = "cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7"},
+ {file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"},
+ {file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"},
+]
+
+[package.dependencies]
+pycparser = "*"
+
+[[package]]
+name = "cfgv"
+version = "3.4.0"
+description = "Validate configuration and produce human readable error messages."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9"},
+ {file = "cfgv-3.4.0.tar.gz", hash = "sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"},
+]
+
+[[package]]
+name = "charset-normalizer"
+version = "3.3.2"
+description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
+optional = false
+python-versions = ">=3.7.0"
+files = [
+ {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"},
+ {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"},
+ {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"},
+ {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"},
+ {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"},
+ {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"},
+ {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"},
+ {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"},
+]
+
+[[package]]
+name = "click"
+version = "8.1.7"
+description = "Composable command line interface toolkit"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"},
+ {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"},
+]
+
+[package.dependencies]
+colorama = {version = "*", markers = "platform_system == \"Windows\""}
+
+[[package]]
+name = "coincurve"
+version = "20.0.0"
+description = "Cross-platform Python CFFI bindings for libsecp256k1"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "coincurve-20.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d559b22828638390118cae9372a1bb6f6594f5584c311deb1de6a83163a0919b"},
+ {file = "coincurve-20.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:33d7f6ebd90fcc550f819f7f2cce2af525c342aac07f0ccda46ad8956ad9d99b"},
+ {file = "coincurve-20.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22d70dd55d13fd427418eb41c20fde0a20a5e5f016e2b1bb94710701e759e7e0"},
+ {file = "coincurve-20.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46f18d481eaae72c169f334cde1fd22011a884e0c9c6adc3fdc1fd13df8236a3"},
+ {file = "coincurve-20.0.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9de1ec57f43c3526bc462be58fb97910dc1fdd5acab6c71eda9f9719a5bd7489"},
+ {file = "coincurve-20.0.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a6f007c44c726b5c0b3724093c0d4fb8e294f6b6869beb02d7473b21777473a3"},
+ {file = "coincurve-20.0.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:0ff1f3b81330db5092c24da2102e4fcba5094f14945b3eb40746456ceabdd6d9"},
+ {file = "coincurve-20.0.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:82f7de97694d9343f26bd1c8e081b168e5f525894c12445548ce458af227f536"},
+ {file = "coincurve-20.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:e905b4b084b4f3b61e5a5d58ac2632fd1d07b7b13b4c6d778335a6ca1dafd7a3"},
+ {file = "coincurve-20.0.0-cp310-cp310-win_arm64.whl", hash = "sha256:3657bb5ed0baf1cf8cf356e7d44aa90a7902cc3dd4a435c6d4d0bed0553ad4f7"},
+ {file = "coincurve-20.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:44087d1126d43925bf9a2391ce5601bf30ce0dba4466c239172dc43226696018"},
+ {file = "coincurve-20.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5ccf0ba38b0f307a9b3ce28933f6c71dc12ef3a0985712ca09f48591afd597c8"},
+ {file = "coincurve-20.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:566bc5986debdf8572b6be824fd4de03d533c49f3de778e29f69017ae3fe82d8"},
+ {file = "coincurve-20.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f4d70283168e146f025005c15406086513d5d35e89a60cf4326025930d45013a"},
+ {file = "coincurve-20.0.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:763c6122dd7d5e7a81c86414ce360dbe9a2d4afa1ca6c853ee03d63820b3d0c5"},
+ {file = "coincurve-20.0.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f00c361c356bcea386d47a191bb8ac60429f4b51c188966a201bfecaf306ff7f"},
+ {file = "coincurve-20.0.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4af57bdadd2e64d117dd0b33cfefe76e90c7a6c496a7b034fc65fd01ec249b15"},
+ {file = "coincurve-20.0.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a26437b7cbde13fb6e09261610b788ca2a0ca2195c62030afd1e1e0d1a62e035"},
+ {file = "coincurve-20.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:ed51f8bba35e6c7676ad65539c3dbc35acf014fc402101fa24f6b0a15a74ab9e"},
+ {file = "coincurve-20.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:594b840fc25d74118407edbbbc754b815f1bba9759dbf4f67f1c2b78396df2d3"},
+ {file = "coincurve-20.0.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:4df4416a6c0370d777aa725a25b14b04e45aa228da1251c258ff91444643f688"},
+ {file = "coincurve-20.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1ccc3e4db55abf3fc0e604a187fdb05f0702bc5952e503d9a75f4ae6eeb4cb3a"},
+ {file = "coincurve-20.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac8335b1658a2ef5b3eb66d52647742fe8c6f413ad5b9d5310d7ea6d8060d40f"},
+ {file = "coincurve-20.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c7ac025e485a0229fd5394e0bf6b4a75f8a4f6cee0dcf6f0b01a2ef05c5210ff"},
+ {file = "coincurve-20.0.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e46e3f1c21b3330857bcb1a3a5b942f645c8bce912a8a2b252216f34acfe4195"},
+ {file = "coincurve-20.0.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:df9ff9b17a1d27271bf476cf3fa92df4c151663b11a55d8cea838b8f88d83624"},
+ {file = "coincurve-20.0.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:4155759f071375699282e03b3d95fb473ee05c022641c077533e0d906311e57a"},
+ {file = "coincurve-20.0.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:0530b9dd02fc6f6c2916716974b79bdab874227f560c422801ade290e3fc5013"},
+ {file = "coincurve-20.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:eacf9c0ce8739c84549a89c083b1f3526c8780b84517ee75d6b43d276e55f8a0"},
+ {file = "coincurve-20.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:52a67bfddbd6224dfa42085c88ad176559801b57d6a8bd30d92ee040de88b7b3"},
+ {file = "coincurve-20.0.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:61e951b1d695b62376f60519a84c4facaf756eeb9c5aff975bea0942833f185d"},
+ {file = "coincurve-20.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4e9e548db77f4ea34c0d748dddefc698adb0ee3fab23ed19f80fb2118dac70f6"},
+ {file = "coincurve-20.0.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8cdbf0da0e0809366fdfff236b7eb6e663669c7b1f46361a4c4d05f5b7e94c57"},
+ {file = "coincurve-20.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d72222b4ecd3952e8ffcbf59bc7e0d1b181161ba170b60e5c8e1f359a43bbe7e"},
+ {file = "coincurve-20.0.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9add43c4807f0c17a940ce4076334c28f51d09c145cd478400e89dcfb83fb59d"},
+ {file = "coincurve-20.0.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:bcc94cceea6ec8863815134083e6221a034b1ecef822d0277cf6ad2e70009b7f"},
+ {file = "coincurve-20.0.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1ffbdfef6a6d147988eabaed681287a9a7e6ba45ecc0a8b94ba62ad0a7656d97"},
+ {file = "coincurve-20.0.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:13335c19c7e5f36eaba2a53c68073d981980d7dc7abfee68d29f2da887ccd24e"},
+ {file = "coincurve-20.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:7fbfb8d16cf2bea2cf48fc5246d4cb0a06607d73bb5c57c007c9aed7509f855e"},
+ {file = "coincurve-20.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4870047704cddaae7f0266a549c927407c2ba0ec92d689e3d2b511736812a905"},
+ {file = "coincurve-20.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:81ce41263517b0a9f43cd570c87720b3c13324929584fa28d2e4095969b6015d"},
+ {file = "coincurve-20.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:572083ccce6c7b514d482f25f394368f4ae888f478bd0b067519d33160ea2fcc"},
+ {file = "coincurve-20.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee5bc78a31a2f1370baf28aaff3949bc48f940a12b0359d1cd2c4115742874e6"},
+ {file = "coincurve-20.0.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2895d032e281c4e747947aae4bcfeef7c57eabfd9be22886c0ca4e1365c7c1f"},
+ {file = "coincurve-20.0.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d3e2f21957ada0e1742edbde117bb41758fa8691b69c8d186c23e9e522ea71cd"},
+ {file = "coincurve-20.0.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:c2baa26b1aad1947ca07b3aa9e6a98940c5141c6bdd0f9b44d89e36da7282ffa"},
+ {file = "coincurve-20.0.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7eacc7944ddf9e2b7448ecbe84753841ab9874b8c332a4f5cc3b2f184db9f4a2"},
+ {file = "coincurve-20.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:c293c095dc690178b822cadaaeb81de3cc0d28f8bdf8216ed23551dcce153a26"},
+ {file = "coincurve-20.0.0-cp39-cp39-win_arm64.whl", hash = "sha256:11a47083a0b7092d3eb50929f74ffd947c4a5e7035796b81310ea85289088c7a"},
+ {file = "coincurve-20.0.0.tar.gz", hash = "sha256:872419e404300302e938849b6b92a196fabdad651060b559dc310e52f8392829"},
+]
+
+[package.dependencies]
+asn1crypto = "*"
+cffi = ">=1.3.0"
+
+[package.extras]
+dev = ["coverage", "pytest", "pytest-benchmark"]
+
+[[package]]
+name = "colorama"
+version = "0.4.6"
+description = "Cross-platform colored terminal text."
+optional = false
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
+files = [
+ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
+ {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
+]
+
+[[package]]
+name = "coverage"
+version = "7.6.1"
+description = "Code coverage measurement for Python"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "coverage-7.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b06079abebbc0e89e6163b8e8f0e16270124c154dc6e4a47b413dd538859af16"},
+ {file = "coverage-7.6.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cf4b19715bccd7ee27b6b120e7e9dd56037b9c0681dcc1adc9ba9db3d417fa36"},
+ {file = "coverage-7.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61c0abb4c85b095a784ef23fdd4aede7a2628478e7baba7c5e3deba61070a02"},
+ {file = "coverage-7.6.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fd21f6ae3f08b41004dfb433fa895d858f3f5979e7762d052b12aef444e29afc"},
+ {file = "coverage-7.6.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f59d57baca39b32db42b83b2a7ba6f47ad9c394ec2076b084c3f029b7afca23"},
+ {file = "coverage-7.6.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a1ac0ae2b8bd743b88ed0502544847c3053d7171a3cff9228af618a068ed9c34"},
+ {file = "coverage-7.6.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e6a08c0be454c3b3beb105c0596ebdc2371fab6bb90c0c0297f4e58fd7e1012c"},
+ {file = "coverage-7.6.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f5796e664fe802da4f57a168c85359a8fbf3eab5e55cd4e4569fbacecc903959"},
+ {file = "coverage-7.6.1-cp310-cp310-win32.whl", hash = "sha256:7bb65125fcbef8d989fa1dd0e8a060999497629ca5b0efbca209588a73356232"},
+ {file = "coverage-7.6.1-cp310-cp310-win_amd64.whl", hash = "sha256:3115a95daa9bdba70aea750db7b96b37259a81a709223c8448fa97727d546fe0"},
+ {file = "coverage-7.6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7dea0889685db8550f839fa202744652e87c60015029ce3f60e006f8c4462c93"},
+ {file = "coverage-7.6.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ed37bd3c3b063412f7620464a9ac1314d33100329f39799255fb8d3027da50d3"},
+ {file = "coverage-7.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d85f5e9a5f8b73e2350097c3756ef7e785f55bd71205defa0bfdaf96c31616ff"},
+ {file = "coverage-7.6.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bc572be474cafb617672c43fe989d6e48d3c83af02ce8de73fff1c6bb3c198d"},
+ {file = "coverage-7.6.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c0420b573964c760df9e9e86d1a9a622d0d27f417e1a949a8a66dd7bcee7bc6"},
+ {file = "coverage-7.6.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1f4aa8219db826ce6be7099d559f8ec311549bfc4046f7f9fe9b5cea5c581c56"},
+ {file = "coverage-7.6.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:fc5a77d0c516700ebad189b587de289a20a78324bc54baee03dd486f0855d234"},
+ {file = "coverage-7.6.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b48f312cca9621272ae49008c7f613337c53fadca647d6384cc129d2996d1133"},
+ {file = "coverage-7.6.1-cp311-cp311-win32.whl", hash = "sha256:1125ca0e5fd475cbbba3bb67ae20bd2c23a98fac4e32412883f9bcbaa81c314c"},
+ {file = "coverage-7.6.1-cp311-cp311-win_amd64.whl", hash = "sha256:8ae539519c4c040c5ffd0632784e21b2f03fc1340752af711f33e5be83a9d6c6"},
+ {file = "coverage-7.6.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:95cae0efeb032af8458fc27d191f85d1717b1d4e49f7cb226cf526ff28179778"},
+ {file = "coverage-7.6.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5621a9175cf9d0b0c84c2ef2b12e9f5f5071357c4d2ea6ca1cf01814f45d2391"},
+ {file = "coverage-7.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:260933720fdcd75340e7dbe9060655aff3af1f0c5d20f46b57f262ab6c86a5e8"},
+ {file = "coverage-7.6.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07e2ca0ad381b91350c0ed49d52699b625aab2b44b65e1b4e02fa9df0e92ad2d"},
+ {file = "coverage-7.6.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c44fee9975f04b33331cb8eb272827111efc8930cfd582e0320613263ca849ca"},
+ {file = "coverage-7.6.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:877abb17e6339d96bf08e7a622d05095e72b71f8afd8a9fefc82cf30ed944163"},
+ {file = "coverage-7.6.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3e0cadcf6733c09154b461f1ca72d5416635e5e4ec4e536192180d34ec160f8a"},
+ {file = "coverage-7.6.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c3c02d12f837d9683e5ab2f3d9844dc57655b92c74e286c262e0fc54213c216d"},
+ {file = "coverage-7.6.1-cp312-cp312-win32.whl", hash = "sha256:e05882b70b87a18d937ca6768ff33cc3f72847cbc4de4491c8e73880766718e5"},
+ {file = "coverage-7.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:b5d7b556859dd85f3a541db6a4e0167b86e7273e1cdc973e5b175166bb634fdb"},
+ {file = "coverage-7.6.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a4acd025ecc06185ba2b801f2de85546e0b8ac787cf9d3b06e7e2a69f925b106"},
+ {file = "coverage-7.6.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a6d3adcf24b624a7b778533480e32434a39ad8fa30c315208f6d3e5542aeb6e9"},
+ {file = "coverage-7.6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0c212c49b6c10e6951362f7c6df3329f04c2b1c28499563d4035d964ab8e08c"},
+ {file = "coverage-7.6.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6e81d7a3e58882450ec4186ca59a3f20a5d4440f25b1cff6f0902ad890e6748a"},
+ {file = "coverage-7.6.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78b260de9790fd81e69401c2dc8b17da47c8038176a79092a89cb2b7d945d060"},
+ {file = "coverage-7.6.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a78d169acd38300060b28d600344a803628c3fd585c912cacc9ea8790fe96862"},
+ {file = "coverage-7.6.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2c09f4ce52cb99dd7505cd0fc8e0e37c77b87f46bc9c1eb03fe3bc9991085388"},
+ {file = "coverage-7.6.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6878ef48d4227aace338d88c48738a4258213cd7b74fd9a3d4d7582bb1d8a155"},
+ {file = "coverage-7.6.1-cp313-cp313-win32.whl", hash = "sha256:44df346d5215a8c0e360307d46ffaabe0f5d3502c8a1cefd700b34baf31d411a"},
+ {file = "coverage-7.6.1-cp313-cp313-win_amd64.whl", hash = "sha256:8284cf8c0dd272a247bc154eb6c95548722dce90d098c17a883ed36e67cdb129"},
+ {file = "coverage-7.6.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:d3296782ca4eab572a1a4eca686d8bfb00226300dcefdf43faa25b5242ab8a3e"},
+ {file = "coverage-7.6.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:502753043567491d3ff6d08629270127e0c31d4184c4c8d98f92c26f65019962"},
+ {file = "coverage-7.6.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a89ecca80709d4076b95f89f308544ec8f7b4727e8a547913a35f16717856cb"},
+ {file = "coverage-7.6.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a318d68e92e80af8b00fa99609796fdbcdfef3629c77c6283566c6f02c6d6704"},
+ {file = "coverage-7.6.1-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13b0a73a0896988f053e4fbb7de6d93388e6dd292b0d87ee51d106f2c11b465b"},
+ {file = "coverage-7.6.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4421712dbfc5562150f7554f13dde997a2e932a6b5f352edcce948a815efee6f"},
+ {file = "coverage-7.6.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:166811d20dfea725e2e4baa71fffd6c968a958577848d2131f39b60043400223"},
+ {file = "coverage-7.6.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:225667980479a17db1048cb2bf8bfb39b8e5be8f164b8f6628b64f78a72cf9d3"},
+ {file = "coverage-7.6.1-cp313-cp313t-win32.whl", hash = "sha256:170d444ab405852903b7d04ea9ae9b98f98ab6d7e63e1115e82620807519797f"},
+ {file = "coverage-7.6.1-cp313-cp313t-win_amd64.whl", hash = "sha256:b9f222de8cded79c49bf184bdbc06630d4c58eec9459b939b4a690c82ed05657"},
+ {file = "coverage-7.6.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6db04803b6c7291985a761004e9060b2bca08da6d04f26a7f2294b8623a0c1a0"},
+ {file = "coverage-7.6.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f1adfc8ac319e1a348af294106bc6a8458a0f1633cc62a1446aebc30c5fa186a"},
+ {file = "coverage-7.6.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a95324a9de9650a729239daea117df21f4b9868ce32e63f8b650ebe6cef5595b"},
+ {file = "coverage-7.6.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b43c03669dc4618ec25270b06ecd3ee4fa94c7f9b3c14bae6571ca00ef98b0d3"},
+ {file = "coverage-7.6.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8929543a7192c13d177b770008bc4e8119f2e1f881d563fc6b6305d2d0ebe9de"},
+ {file = "coverage-7.6.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:a09ece4a69cf399510c8ab25e0950d9cf2b42f7b3cb0374f95d2e2ff594478a6"},
+ {file = "coverage-7.6.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:9054a0754de38d9dbd01a46621636689124d666bad1936d76c0341f7d71bf569"},
+ {file = "coverage-7.6.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0dbde0f4aa9a16fa4d754356a8f2e36296ff4d83994b2c9d8398aa32f222f989"},
+ {file = "coverage-7.6.1-cp38-cp38-win32.whl", hash = "sha256:da511e6ad4f7323ee5702e6633085fb76c2f893aaf8ce4c51a0ba4fc07580ea7"},
+ {file = "coverage-7.6.1-cp38-cp38-win_amd64.whl", hash = "sha256:3f1156e3e8f2872197af3840d8ad307a9dd18e615dc64d9ee41696f287c57ad8"},
+ {file = "coverage-7.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:abd5fd0db5f4dc9289408aaf34908072f805ff7792632250dcb36dc591d24255"},
+ {file = "coverage-7.6.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:547f45fa1a93154bd82050a7f3cddbc1a7a4dd2a9bf5cb7d06f4ae29fe94eaf8"},
+ {file = "coverage-7.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:645786266c8f18a931b65bfcefdbf6952dd0dea98feee39bd188607a9d307ed2"},
+ {file = "coverage-7.6.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9e0b2df163b8ed01d515807af24f63de04bebcecbd6c3bfeff88385789fdf75a"},
+ {file = "coverage-7.6.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:609b06f178fe8e9f89ef676532760ec0b4deea15e9969bf754b37f7c40326dbc"},
+ {file = "coverage-7.6.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:702855feff378050ae4f741045e19a32d57d19f3e0676d589df0575008ea5004"},
+ {file = "coverage-7.6.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:2bdb062ea438f22d99cba0d7829c2ef0af1d768d1e4a4f528087224c90b132cb"},
+ {file = "coverage-7.6.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9c56863d44bd1c4fe2abb8a4d6f5371d197f1ac0ebdee542f07f35895fc07f36"},
+ {file = "coverage-7.6.1-cp39-cp39-win32.whl", hash = "sha256:6e2cd258d7d927d09493c8df1ce9174ad01b381d4729a9d8d4e38670ca24774c"},
+ {file = "coverage-7.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:06a737c882bd26d0d6ee7269b20b12f14a8704807a01056c80bb881a4b2ce6ca"},
+ {file = "coverage-7.6.1-pp38.pp39.pp310-none-any.whl", hash = "sha256:e9a6e0eb86070e8ccaedfbd9d38fec54864f3125ab95419970575b42af7541df"},
+ {file = "coverage-7.6.1.tar.gz", hash = "sha256:953510dfb7b12ab69d20135a0662397f077c59b1e6379a768e97c59d852ee51d"},
+]
+
+[package.extras]
+toml = ["tomli"]
+
+[[package]]
+name = "cyclonedx-python-lib"
+version = "7.6.1"
+description = "Python library for CycloneDX"
+optional = false
+python-versions = "<4.0,>=3.8"
+files = [
+ {file = "cyclonedx_python_lib-7.6.1-py3-none-any.whl", hash = "sha256:6570f14ad191c4c2a87032f4fb0fc913e5c37a43a577898daeb42a3079e52126"},
+ {file = "cyclonedx_python_lib-7.6.1.tar.gz", hash = "sha256:42e510e957c2ce9c71dd33020e43ce53fe6d0c854cfdc3c56e854e9461e846eb"},
+]
+
+[package.dependencies]
+license-expression = ">=30,<31"
+packageurl-python = ">=0.11,<2"
+py-serializable = ">=1.1.0,<2.0.0"
+sortedcontainers = ">=2.4.0,<3.0.0"
+
+[package.extras]
+json-validation = ["jsonschema[format] (>=4.18,<5.0)"]
+validation = ["jsonschema[format] (>=4.18,<5.0)", "lxml (>=4,<6)"]
+xml-validation = ["lxml (>=4,<6)"]
+
+[[package]]
+name = "defusedxml"
+version = "0.7.1"
+description = "XML bomb protection for Python stdlib modules"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+files = [
+ {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"},
+ {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"},
+]
+
+[[package]]
+name = "deprecated"
+version = "1.2.14"
+description = "Python @deprecated decorator to deprecate old python classes, functions or methods."
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+files = [
+ {file = "Deprecated-1.2.14-py2.py3-none-any.whl", hash = "sha256:6fac8b097794a90302bdbb17b9b815e732d3c4720583ff1b198499d78470466c"},
+ {file = "Deprecated-1.2.14.tar.gz", hash = "sha256:e5323eb936458dccc2582dc6f9c322c852a775a27065ff2b0c4970b9d53d01b3"},
+]
+
+[package.dependencies]
+wrapt = ">=1.10,<2"
+
+[package.extras]
+dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "sphinx (<2)", "tox"]
+
+[[package]]
+name = "distlib"
+version = "0.3.8"
+description = "Distribution utilities"
+optional = false
+python-versions = "*"
+files = [
+ {file = "distlib-0.3.8-py2.py3-none-any.whl", hash = "sha256:034db59a0b96f8ca18035f36290806a9a6e6bd9d1ff91e45a7f172eb17e51784"},
+ {file = "distlib-0.3.8.tar.gz", hash = "sha256:1530ea13e350031b6312d8580ddb6b27a104275a31106523b8f123787f494f64"},
+]
+
+[[package]]
+name = "docstring-parser"
+version = "0.16"
+description = "Parse Python docstrings in reST, Google and Numpydoc format"
+optional = false
+python-versions = ">=3.6,<4.0"
+files = [
+ {file = "docstring_parser-0.16-py3-none-any.whl", hash = "sha256:bf0a1387354d3691d102edef7ec124f219ef639982d096e26e3b60aeffa90637"},
+ {file = "docstring_parser-0.16.tar.gz", hash = "sha256:538beabd0af1e2db0146b6bd3caa526c35a34d61af9fd2887f3a8a27a739aa6e"},
+]
+
+[[package]]
+name = "ecdsa"
+version = "0.19.0"
+description = "ECDSA cryptographic signature library (pure python)"
+optional = false
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.6"
+files = [
+ {file = "ecdsa-0.19.0-py2.py3-none-any.whl", hash = "sha256:2cea9b88407fdac7bbeca0833b189e4c9c53f2ef1e1eaa29f6224dbc809b707a"},
+ {file = "ecdsa-0.19.0.tar.gz", hash = "sha256:60eaad1199659900dd0af521ed462b793bbdf867432b3948e87416ae4caf6bf8"},
+]
+
+[package.dependencies]
+six = ">=1.9.0"
+
+[package.extras]
+gmpy = ["gmpy"]
+gmpy2 = ["gmpy2"]
+
+[[package]]
+name = "filelock"
+version = "3.16.1"
+description = "A platform independent file lock."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "filelock-3.16.1-py3-none-any.whl", hash = "sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0"},
+ {file = "filelock-3.16.1.tar.gz", hash = "sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435"},
+]
+
+[package.extras]
+docs = ["furo (>=2024.8.6)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4.1)"]
+testing = ["covdefaults (>=2.3)", "coverage (>=7.6.1)", "diff-cover (>=9.2)", "pytest (>=8.3.3)", "pytest-asyncio (>=0.24)", "pytest-cov (>=5)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.26.4)"]
+typing = ["typing-extensions (>=4.12.2)"]
+
+[[package]]
+name = "frozenlist"
+version = "1.4.1"
+description = "A list-like structure which implements collections.abc.MutableSequence"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "frozenlist-1.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f9aa1878d1083b276b0196f2dfbe00c9b7e752475ed3b682025ff20c1c1f51ac"},
+ {file = "frozenlist-1.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:29acab3f66f0f24674b7dc4736477bcd4bc3ad4b896f5f45379a67bce8b96868"},
+ {file = "frozenlist-1.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:74fb4bee6880b529a0c6560885fce4dc95936920f9f20f53d99a213f7bf66776"},
+ {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:590344787a90ae57d62511dd7c736ed56b428f04cd8c161fcc5e7232c130c69a"},
+ {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:068b63f23b17df8569b7fdca5517edef76171cf3897eb68beb01341131fbd2ad"},
+ {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c849d495bf5154cd8da18a9eb15db127d4dba2968d88831aff6f0331ea9bd4c"},
+ {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9750cc7fe1ae3b1611bb8cfc3f9ec11d532244235d75901fb6b8e42ce9229dfe"},
+ {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9b2de4cf0cdd5bd2dee4c4f63a653c61d2408055ab77b151c1957f221cabf2a"},
+ {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0633c8d5337cb5c77acbccc6357ac49a1770b8c487e5b3505c57b949b4b82e98"},
+ {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:27657df69e8801be6c3638054e202a135c7f299267f1a55ed3a598934f6c0d75"},
+ {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:f9a3ea26252bd92f570600098783d1371354d89d5f6b7dfd87359d669f2109b5"},
+ {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:4f57dab5fe3407b6c0c1cc907ac98e8a189f9e418f3b6e54d65a718aaafe3950"},
+ {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e02a0e11cf6597299b9f3bbd3f93d79217cb90cfd1411aec33848b13f5c656cc"},
+ {file = "frozenlist-1.4.1-cp310-cp310-win32.whl", hash = "sha256:a828c57f00f729620a442881cc60e57cfcec6842ba38e1b19fd3e47ac0ff8dc1"},
+ {file = "frozenlist-1.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:f56e2333dda1fe0f909e7cc59f021eba0d2307bc6f012a1ccf2beca6ba362439"},
+ {file = "frozenlist-1.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a0cb6f11204443f27a1628b0e460f37fb30f624be6051d490fa7d7e26d4af3d0"},
+ {file = "frozenlist-1.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b46c8ae3a8f1f41a0d2ef350c0b6e65822d80772fe46b653ab6b6274f61d4a49"},
+ {file = "frozenlist-1.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fde5bd59ab5357e3853313127f4d3565fc7dad314a74d7b5d43c22c6a5ed2ced"},
+ {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:722e1124aec435320ae01ee3ac7bec11a5d47f25d0ed6328f2273d287bc3abb0"},
+ {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2471c201b70d58a0f0c1f91261542a03d9a5e088ed3dc6c160d614c01649c106"},
+ {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c757a9dd70d72b076d6f68efdbb9bc943665ae954dad2801b874c8c69e185068"},
+ {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f146e0911cb2f1da549fc58fc7bcd2b836a44b79ef871980d605ec392ff6b0d2"},
+ {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f9c515e7914626b2a2e1e311794b4c35720a0be87af52b79ff8e1429fc25f19"},
+ {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c302220494f5c1ebeb0912ea782bcd5e2f8308037b3c7553fad0e48ebad6ad82"},
+ {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:442acde1e068288a4ba7acfe05f5f343e19fac87bfc96d89eb886b0363e977ec"},
+ {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:1b280e6507ea8a4fa0c0a7150b4e526a8d113989e28eaaef946cc77ffd7efc0a"},
+ {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:fe1a06da377e3a1062ae5fe0926e12b84eceb8a50b350ddca72dc85015873f74"},
+ {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:db9e724bebd621d9beca794f2a4ff1d26eed5965b004a97f1f1685a173b869c2"},
+ {file = "frozenlist-1.4.1-cp311-cp311-win32.whl", hash = "sha256:e774d53b1a477a67838a904131c4b0eef6b3d8a651f8b138b04f748fccfefe17"},
+ {file = "frozenlist-1.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:fb3c2db03683b5767dedb5769b8a40ebb47d6f7f45b1b3e3b4b51ec8ad9d9825"},
+ {file = "frozenlist-1.4.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:1979bc0aeb89b33b588c51c54ab0161791149f2461ea7c7c946d95d5f93b56ae"},
+ {file = "frozenlist-1.4.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:cc7b01b3754ea68a62bd77ce6020afaffb44a590c2289089289363472d13aedb"},
+ {file = "frozenlist-1.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c9c92be9fd329ac801cc420e08452b70e7aeab94ea4233a4804f0915c14eba9b"},
+ {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c3894db91f5a489fc8fa6a9991820f368f0b3cbdb9cd8849547ccfab3392d86"},
+ {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ba60bb19387e13597fb059f32cd4d59445d7b18b69a745b8f8e5db0346f33480"},
+ {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8aefbba5f69d42246543407ed2461db31006b0f76c4e32dfd6f42215a2c41d09"},
+ {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:780d3a35680ced9ce682fbcf4cb9c2bad3136eeff760ab33707b71db84664e3a"},
+ {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9acbb16f06fe7f52f441bb6f413ebae6c37baa6ef9edd49cdd567216da8600cd"},
+ {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:23b701e65c7b36e4bf15546a89279bd4d8675faabc287d06bbcfac7d3c33e1e6"},
+ {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:3e0153a805a98f5ada7e09826255ba99fb4f7524bb81bf6b47fb702666484ae1"},
+ {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:dd9b1baec094d91bf36ec729445f7769d0d0cf6b64d04d86e45baf89e2b9059b"},
+ {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:1a4471094e146b6790f61b98616ab8e44f72661879cc63fa1049d13ef711e71e"},
+ {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5667ed53d68d91920defdf4035d1cdaa3c3121dc0b113255124bcfada1cfa1b8"},
+ {file = "frozenlist-1.4.1-cp312-cp312-win32.whl", hash = "sha256:beee944ae828747fd7cb216a70f120767fc9f4f00bacae8543c14a6831673f89"},
+ {file = "frozenlist-1.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:64536573d0a2cb6e625cf309984e2d873979709f2cf22839bf2d61790b448ad5"},
+ {file = "frozenlist-1.4.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:20b51fa3f588ff2fe658663db52a41a4f7aa6c04f6201449c6c7c476bd255c0d"},
+ {file = "frozenlist-1.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:410478a0c562d1a5bcc2f7ea448359fcb050ed48b3c6f6f4f18c313a9bdb1826"},
+ {file = "frozenlist-1.4.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c6321c9efe29975232da3bd0af0ad216800a47e93d763ce64f291917a381b8eb"},
+ {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:48f6a4533887e189dae092f1cf981f2e3885175f7a0f33c91fb5b7b682b6bab6"},
+ {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6eb73fa5426ea69ee0e012fb59cdc76a15b1283d6e32e4f8dc4482ec67d1194d"},
+ {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fbeb989b5cc29e8daf7f976b421c220f1b8c731cbf22b9130d8815418ea45887"},
+ {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:32453c1de775c889eb4e22f1197fe3bdfe457d16476ea407472b9442e6295f7a"},
+ {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:693945278a31f2086d9bf3df0fe8254bbeaef1fe71e1351c3bd730aa7d31c41b"},
+ {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:1d0ce09d36d53bbbe566fe296965b23b961764c0bcf3ce2fa45f463745c04701"},
+ {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:3a670dc61eb0d0eb7080890c13de3066790f9049b47b0de04007090807c776b0"},
+ {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:dca69045298ce5c11fd539682cff879cc1e664c245d1c64da929813e54241d11"},
+ {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:a06339f38e9ed3a64e4c4e43aec7f59084033647f908e4259d279a52d3757d09"},
+ {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b7f2f9f912dca3934c1baec2e4585a674ef16fe00218d833856408c48d5beee7"},
+ {file = "frozenlist-1.4.1-cp38-cp38-win32.whl", hash = "sha256:e7004be74cbb7d9f34553a5ce5fb08be14fb33bc86f332fb71cbe5216362a497"},
+ {file = "frozenlist-1.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:5a7d70357e7cee13f470c7883a063aae5fe209a493c57d86eb7f5a6f910fae09"},
+ {file = "frozenlist-1.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:bfa4a17e17ce9abf47a74ae02f32d014c5e9404b6d9ac7f729e01562bbee601e"},
+ {file = "frozenlist-1.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b7e3ed87d4138356775346e6845cccbe66cd9e207f3cd11d2f0b9fd13681359d"},
+ {file = "frozenlist-1.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c99169d4ff810155ca50b4da3b075cbde79752443117d89429595c2e8e37fed8"},
+ {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edb678da49d9f72c9f6c609fbe41a5dfb9a9282f9e6a2253d5a91e0fc382d7c0"},
+ {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6db4667b187a6742b33afbbaf05a7bc551ffcf1ced0000a571aedbb4aa42fc7b"},
+ {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55fdc093b5a3cb41d420884cdaf37a1e74c3c37a31f46e66286d9145d2063bd0"},
+ {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82e8211d69a4f4bc360ea22cd6555f8e61a1bd211d1d5d39d3d228b48c83a897"},
+ {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89aa2c2eeb20957be2d950b85974b30a01a762f3308cd02bb15e1ad632e22dc7"},
+ {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9d3e0c25a2350080e9319724dede4f31f43a6c9779be48021a7f4ebde8b2d742"},
+ {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7268252af60904bf52c26173cbadc3a071cece75f873705419c8681f24d3edea"},
+ {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:0c250a29735d4f15321007fb02865f0e6b6a41a6b88f1f523ca1596ab5f50bd5"},
+ {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:96ec70beabbd3b10e8bfe52616a13561e58fe84c0101dd031dc78f250d5128b9"},
+ {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:23b2d7679b73fe0e5a4560b672a39f98dfc6f60df63823b0a9970525325b95f6"},
+ {file = "frozenlist-1.4.1-cp39-cp39-win32.whl", hash = "sha256:a7496bfe1da7fb1a4e1cc23bb67c58fab69311cc7d32b5a99c2007b4b2a0e932"},
+ {file = "frozenlist-1.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:e6a20a581f9ce92d389a8c7d7c3dd47c81fd5d6e655c8dddf341e14aa48659d0"},
+ {file = "frozenlist-1.4.1-py3-none-any.whl", hash = "sha256:04ced3e6a46b4cfffe20f9ae482818e34eba9b5fb0ce4056e4cc9b6e212d09b7"},
+ {file = "frozenlist-1.4.1.tar.gz", hash = "sha256:c037a86e8513059a2613aaba4d817bb90b9d9b6b69aace3ce9c877e8c8ed402b"},
+]
+
+[[package]]
+name = "h11"
+version = "0.14.0"
+description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"},
+ {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"},
+]
+
+[[package]]
+name = "html5lib"
+version = "1.1"
+description = "HTML parser based on the WHATWG HTML specification"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+files = [
+ {file = "html5lib-1.1-py2.py3-none-any.whl", hash = "sha256:0d78f8fde1c230e99fe37986a60526d7049ed4bf8a9fadbad5f00e22e58e041d"},
+ {file = "html5lib-1.1.tar.gz", hash = "sha256:b2e5b40261e20f354d198eae92afc10d750afb487ed5e50f9c4eaf07c184146f"},
+]
+
+[package.dependencies]
+six = ">=1.9"
+webencodings = "*"
+
+[package.extras]
+all = ["chardet (>=2.2)", "genshi", "lxml"]
+chardet = ["chardet (>=2.2)"]
+genshi = ["genshi"]
+lxml = ["lxml"]
+
+[[package]]
+name = "httpcore"
+version = "0.16.3"
+description = "A minimal low-level HTTP client."
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "httpcore-0.16.3-py3-none-any.whl", hash = "sha256:da1fb708784a938aa084bde4feb8317056c55037247c787bd7e19eb2c2949dc0"},
+ {file = "httpcore-0.16.3.tar.gz", hash = "sha256:c5d6f04e2fc530f39e0c077e6a30caa53f1451096120f1f38b954afd0b17c0cb"},
+]
+
+[package.dependencies]
+anyio = ">=3.0,<5.0"
+certifi = "*"
+h11 = ">=0.13,<0.15"
+sniffio = "==1.*"
+
+[package.extras]
+http2 = ["h2 (>=3,<5)"]
+socks = ["socksio (==1.*)"]
+
+[[package]]
+name = "httpx"
+version = "0.23.3"
+description = "The next generation HTTP client."
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "httpx-0.23.3-py3-none-any.whl", hash = "sha256:a211fcce9b1254ea24f0cd6af9869b3d29aba40154e947d2a07bb499b3e310d6"},
+ {file = "httpx-0.23.3.tar.gz", hash = "sha256:9818458eb565bb54898ccb9b8b251a28785dd4a55afbc23d0eb410754fe7d0f9"},
+]
+
+[package.dependencies]
+certifi = "*"
+httpcore = ">=0.15.0,<0.17.0"
+rfc3986 = {version = ">=1.3,<2", extras = ["idna2008"]}
+sniffio = "*"
+
+[package.extras]
+brotli = ["brotli", "brotlicffi"]
+cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<13)"]
+http2 = ["h2 (>=3,<5)"]
+socks = ["socksio (==1.*)"]
+
+[[package]]
+name = "identify"
+version = "2.6.1"
+description = "File identification library for Python"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "identify-2.6.1-py2.py3-none-any.whl", hash = "sha256:53863bcac7caf8d2ed85bd20312ea5dcfc22226800f6d6881f232d861db5a8f0"},
+ {file = "identify-2.6.1.tar.gz", hash = "sha256:91478c5fb7c3aac5ff7bf9b4344f803843dc586832d5f110d672b19aa1984c98"},
+]
+
+[package.extras]
+license = ["ukkonen"]
+
+[[package]]
+name = "idna"
+version = "3.10"
+description = "Internationalized Domain Names in Applications (IDNA)"
+optional = false
+python-versions = ">=3.6"
+files = [
+ {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"},
+ {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"},
+]
+
+[package.extras]
+all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"]
+
+[[package]]
+name = "immutabledict"
+version = "4.2.0"
+description = "Immutable wrapper around dictionaries (a fork of frozendict)"
+optional = false
+python-versions = ">=3.8,<4.0"
+files = [
+ {file = "immutabledict-4.2.0-py3-none-any.whl", hash = "sha256:d728b2c2410d698d95e6200237feb50a695584d20289ad3379a439aa3d90baba"},
+ {file = "immutabledict-4.2.0.tar.gz", hash = "sha256:e003fd81aad2377a5a758bf7e1086cf3b70b63e9a5cc2f46bce8d0a2b4727c5f"},
+]
+
+[[package]]
+name = "iniconfig"
+version = "2.0.0"
+description = "brain-dead simple config-ini parsing"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"},
+ {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"},
+]
+
+[[package]]
+name = "license-expression"
+version = "30.3.1"
+description = "license-expression is a comprehensive utility library to parse, compare, simplify and normalize license expressions (such as SPDX license expressions) using boolean logic."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "license_expression-30.3.1-py3-none-any.whl", hash = "sha256:97904b9185c7bbb1e98799606fa7424191c375e70ba63a524b6f7100e42ddc46"},
+ {file = "license_expression-30.3.1.tar.gz", hash = "sha256:60d5bec1f3364c256a92b9a08583d7ea933c7aa272c8d36d04144a89a3858c01"},
+]
+
+[package.dependencies]
+"boolean.py" = ">=4.0"
+
+[package.extras]
+docs = ["Sphinx (>=5.0.2)", "doc8 (>=0.11.2)", "sphinx-autobuild", "sphinx-copybutton", "sphinx-reredirects (>=0.1.2)", "sphinx-rtd-dark-mode (>=1.3.0)", "sphinx-rtd-theme (>=1.0.0)", "sphinxcontrib-apidoc (>=0.4.0)"]
+testing = ["black", "isort", "pytest (>=6,!=7.0.0)", "pytest-xdist (>=2)", "twine"]
+
+[[package]]
+name = "markdown-it-py"
+version = "3.0.0"
+description = "Python port of markdown-it. Markdown parsing, done right!"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"},
+ {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"},
+]
+
+[package.dependencies]
+mdurl = ">=0.1,<1.0"
+
+[package.extras]
+benchmarking = ["psutil", "pytest", "pytest-benchmark"]
+code-style = ["pre-commit (>=3.0,<4.0)"]
+compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"]
+linkify = ["linkify-it-py (>=1,<3)"]
+plugins = ["mdit-py-plugins"]
+profiling = ["gprof2dot"]
+rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"]
+testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"]
+
+[[package]]
+name = "mdurl"
+version = "0.1.2"
+description = "Markdown URL utilities"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"},
+ {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"},
+]
+
+[[package]]
+name = "msgpack"
+version = "1.1.0"
+description = "MessagePack serializer"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "msgpack-1.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7ad442d527a7e358a469faf43fda45aaf4ac3249c8310a82f0ccff9164e5dccd"},
+ {file = "msgpack-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:74bed8f63f8f14d75eec75cf3d04ad581da6b914001b474a5d3cd3372c8cc27d"},
+ {file = "msgpack-1.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:914571a2a5b4e7606997e169f64ce53a8b1e06f2cf2c3a7273aa106236d43dd5"},
+ {file = "msgpack-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c921af52214dcbb75e6bdf6a661b23c3e6417f00c603dd2070bccb5c3ef499f5"},
+ {file = "msgpack-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8ce0b22b890be5d252de90d0e0d119f363012027cf256185fc3d474c44b1b9e"},
+ {file = "msgpack-1.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:73322a6cc57fcee3c0c57c4463d828e9428275fb85a27aa2aa1a92fdc42afd7b"},
+ {file = "msgpack-1.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e1f3c3d21f7cf67bcf2da8e494d30a75e4cf60041d98b3f79875afb5b96f3a3f"},
+ {file = "msgpack-1.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:64fc9068d701233effd61b19efb1485587560b66fe57b3e50d29c5d78e7fef68"},
+ {file = "msgpack-1.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:42f754515e0f683f9c79210a5d1cad631ec3d06cea5172214d2176a42e67e19b"},
+ {file = "msgpack-1.1.0-cp310-cp310-win32.whl", hash = "sha256:3df7e6b05571b3814361e8464f9304c42d2196808e0119f55d0d3e62cd5ea044"},
+ {file = "msgpack-1.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:685ec345eefc757a7c8af44a3032734a739f8c45d1b0ac45efc5d8977aa4720f"},
+ {file = "msgpack-1.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3d364a55082fb2a7416f6c63ae383fbd903adb5a6cf78c5b96cc6316dc1cedc7"},
+ {file = "msgpack-1.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:79ec007767b9b56860e0372085f8504db5d06bd6a327a335449508bbee9648fa"},
+ {file = "msgpack-1.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6ad622bf7756d5a497d5b6836e7fc3752e2dd6f4c648e24b1803f6048596f701"},
+ {file = "msgpack-1.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e59bca908d9ca0de3dc8684f21ebf9a690fe47b6be93236eb40b99af28b6ea6"},
+ {file = "msgpack-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e1da8f11a3dd397f0a32c76165cf0c4eb95b31013a94f6ecc0b280c05c91b59"},
+ {file = "msgpack-1.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:452aff037287acb1d70a804ffd022b21fa2bb7c46bee884dbc864cc9024128a0"},
+ {file = "msgpack-1.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8da4bf6d54ceed70e8861f833f83ce0814a2b72102e890cbdfe4b34764cdd66e"},
+ {file = "msgpack-1.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:41c991beebf175faf352fb940bf2af9ad1fb77fd25f38d9142053914947cdbf6"},
+ {file = "msgpack-1.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a52a1f3a5af7ba1c9ace055b659189f6c669cf3657095b50f9602af3a3ba0fe5"},
+ {file = "msgpack-1.1.0-cp311-cp311-win32.whl", hash = "sha256:58638690ebd0a06427c5fe1a227bb6b8b9fdc2bd07701bec13c2335c82131a88"},
+ {file = "msgpack-1.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fd2906780f25c8ed5d7b323379f6138524ba793428db5d0e9d226d3fa6aa1788"},
+ {file = "msgpack-1.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:d46cf9e3705ea9485687aa4001a76e44748b609d260af21c4ceea7f2212a501d"},
+ {file = "msgpack-1.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5dbad74103df937e1325cc4bfeaf57713be0b4f15e1c2da43ccdd836393e2ea2"},
+ {file = "msgpack-1.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:58dfc47f8b102da61e8949708b3eafc3504509a5728f8b4ddef84bd9e16ad420"},
+ {file = "msgpack-1.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4676e5be1b472909b2ee6356ff425ebedf5142427842aa06b4dfd5117d1ca8a2"},
+ {file = "msgpack-1.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17fb65dd0bec285907f68b15734a993ad3fc94332b5bb21b0435846228de1f39"},
+ {file = "msgpack-1.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a51abd48c6d8ac89e0cfd4fe177c61481aca2d5e7ba42044fd218cfd8ea9899f"},
+ {file = "msgpack-1.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2137773500afa5494a61b1208619e3871f75f27b03bcfca7b3a7023284140247"},
+ {file = "msgpack-1.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:398b713459fea610861c8a7b62a6fec1882759f308ae0795b5413ff6a160cf3c"},
+ {file = "msgpack-1.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:06f5fd2f6bb2a7914922d935d3b8bb4a7fff3a9a91cfce6d06c13bc42bec975b"},
+ {file = "msgpack-1.1.0-cp312-cp312-win32.whl", hash = "sha256:ad33e8400e4ec17ba782f7b9cf868977d867ed784a1f5f2ab46e7ba53b6e1e1b"},
+ {file = "msgpack-1.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:115a7af8ee9e8cddc10f87636767857e7e3717b7a2e97379dc2054712693e90f"},
+ {file = "msgpack-1.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:071603e2f0771c45ad9bc65719291c568d4edf120b44eb36324dcb02a13bfddf"},
+ {file = "msgpack-1.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0f92a83b84e7c0749e3f12821949d79485971f087604178026085f60ce109330"},
+ {file = "msgpack-1.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4a1964df7b81285d00a84da4e70cb1383f2e665e0f1f2a7027e683956d04b734"},
+ {file = "msgpack-1.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59caf6a4ed0d164055ccff8fe31eddc0ebc07cf7326a2aaa0dbf7a4001cd823e"},
+ {file = "msgpack-1.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0907e1a7119b337971a689153665764adc34e89175f9a34793307d9def08e6ca"},
+ {file = "msgpack-1.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:65553c9b6da8166e819a6aa90ad15288599b340f91d18f60b2061f402b9a4915"},
+ {file = "msgpack-1.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7a946a8992941fea80ed4beae6bff74ffd7ee129a90b4dd5cf9c476a30e9708d"},
+ {file = "msgpack-1.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4b51405e36e075193bc051315dbf29168d6141ae2500ba8cd80a522964e31434"},
+ {file = "msgpack-1.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b4c01941fd2ff87c2a934ee6055bda4ed353a7846b8d4f341c428109e9fcde8c"},
+ {file = "msgpack-1.1.0-cp313-cp313-win32.whl", hash = "sha256:7c9a35ce2c2573bada929e0b7b3576de647b0defbd25f5139dcdaba0ae35a4cc"},
+ {file = "msgpack-1.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:bce7d9e614a04d0883af0b3d4d501171fbfca038f12c77fa838d9f198147a23f"},
+ {file = "msgpack-1.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c40ffa9a15d74e05ba1fe2681ea33b9caffd886675412612d93ab17b58ea2fec"},
+ {file = "msgpack-1.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f1ba6136e650898082d9d5a5217d5906d1e138024f836ff48691784bbe1adf96"},
+ {file = "msgpack-1.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e0856a2b7e8dcb874be44fea031d22e5b3a19121be92a1e098f46068a11b0870"},
+ {file = "msgpack-1.1.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:471e27a5787a2e3f974ba023f9e265a8c7cfd373632247deb225617e3100a3c7"},
+ {file = "msgpack-1.1.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:646afc8102935a388ffc3914b336d22d1c2d6209c773f3eb5dd4d6d3b6f8c1cb"},
+ {file = "msgpack-1.1.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:13599f8829cfbe0158f6456374e9eea9f44eee08076291771d8ae93eda56607f"},
+ {file = "msgpack-1.1.0-cp38-cp38-win32.whl", hash = "sha256:8a84efb768fb968381e525eeeb3d92857e4985aacc39f3c47ffd00eb4509315b"},
+ {file = "msgpack-1.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:879a7b7b0ad82481c52d3c7eb99bf6f0645dbdec5134a4bddbd16f3506947feb"},
+ {file = "msgpack-1.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:53258eeb7a80fc46f62fd59c876957a2d0e15e6449a9e71842b6d24419d88ca1"},
+ {file = "msgpack-1.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7e7b853bbc44fb03fbdba34feb4bd414322180135e2cb5164f20ce1c9795ee48"},
+ {file = "msgpack-1.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f3e9b4936df53b970513eac1758f3882c88658a220b58dcc1e39606dccaaf01c"},
+ {file = "msgpack-1.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:46c34e99110762a76e3911fc923222472c9d681f1094096ac4102c18319e6468"},
+ {file = "msgpack-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a706d1e74dd3dea05cb54580d9bd8b2880e9264856ce5068027eed09680aa74"},
+ {file = "msgpack-1.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:534480ee5690ab3cbed89d4c8971a5c631b69a8c0883ecfea96c19118510c846"},
+ {file = "msgpack-1.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:8cf9e8c3a2153934a23ac160cc4cba0ec035f6867c8013cc6077a79823370346"},
+ {file = "msgpack-1.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3180065ec2abbe13a4ad37688b61b99d7f9e012a535b930e0e683ad6bc30155b"},
+ {file = "msgpack-1.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c5a91481a3cc573ac8c0d9aace09345d989dc4a0202b7fcb312c88c26d4e71a8"},
+ {file = "msgpack-1.1.0-cp39-cp39-win32.whl", hash = "sha256:f80bc7d47f76089633763f952e67f8214cb7b3ee6bfa489b3cb6a84cfac114cd"},
+ {file = "msgpack-1.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:4d1b7ff2d6146e16e8bd665ac726a89c74163ef8cd39fa8c1087d4e52d3a2325"},
+ {file = "msgpack-1.1.0.tar.gz", hash = "sha256:dd432ccc2c72b914e4cb77afce64aab761c1137cc698be3984eee260bcb2896e"},
+]
+
+[[package]]
+name = "multidict"
+version = "6.1.0"
+description = "multidict implementation"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3380252550e372e8511d49481bd836264c009adb826b23fefcc5dd3c69692f60"},
+ {file = "multidict-6.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:99f826cbf970077383d7de805c0681799491cb939c25450b9b5b3ced03ca99f1"},
+ {file = "multidict-6.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a114d03b938376557927ab23f1e950827c3b893ccb94b62fd95d430fd0e5cf53"},
+ {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1c416351ee6271b2f49b56ad7f308072f6f44b37118d69c2cad94f3fa8a40d5"},
+ {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6b5d83030255983181005e6cfbac1617ce9746b219bc2aad52201ad121226581"},
+ {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3e97b5e938051226dc025ec80980c285b053ffb1e25a3db2a3aa3bc046bf7f56"},
+ {file = "multidict-6.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d618649d4e70ac6efcbba75be98b26ef5078faad23592f9b51ca492953012429"},
+ {file = "multidict-6.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10524ebd769727ac77ef2278390fb0068d83f3acb7773792a5080f2b0abf7748"},
+ {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ff3827aef427c89a25cc96ded1759271a93603aba9fb977a6d264648ebf989db"},
+ {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:06809f4f0f7ab7ea2cabf9caca7d79c22c0758b58a71f9d32943ae13c7ace056"},
+ {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f179dee3b863ab1c59580ff60f9d99f632f34ccb38bf67a33ec6b3ecadd0fd76"},
+ {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:aaed8b0562be4a0876ee3b6946f6869b7bcdb571a5d1496683505944e268b160"},
+ {file = "multidict-6.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3c8b88a2ccf5493b6c8da9076fb151ba106960a2df90c2633f342f120751a9e7"},
+ {file = "multidict-6.1.0-cp310-cp310-win32.whl", hash = "sha256:4a9cb68166a34117d6646c0023c7b759bf197bee5ad4272f420a0141d7eb03a0"},
+ {file = "multidict-6.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:20b9b5fbe0b88d0bdef2012ef7dee867f874b72528cf1d08f1d59b0e3850129d"},
+ {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:3efe2c2cb5763f2f1b275ad2bf7a287d3f7ebbef35648a9726e3b69284a4f3d6"},
+ {file = "multidict-6.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c7053d3b0353a8b9de430a4f4b4268ac9a4fb3481af37dfe49825bf45ca24156"},
+ {file = "multidict-6.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:27e5fc84ccef8dfaabb09d82b7d179c7cf1a3fbc8a966f8274fcb4ab2eb4cadb"},
+ {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e2b90b43e696f25c62656389d32236e049568b39320e2735d51f08fd362761b"},
+ {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d83a047959d38a7ff552ff94be767b7fd79b831ad1cd9920662db05fec24fe72"},
+ {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d1a9dd711d0877a1ece3d2e4fea11a8e75741ca21954c919406b44e7cf971304"},
+ {file = "multidict-6.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec2abea24d98246b94913b76a125e855eb5c434f7c46546046372fe60f666351"},
+ {file = "multidict-6.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4867cafcbc6585e4b678876c489b9273b13e9fff9f6d6d66add5e15d11d926cb"},
+ {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5b48204e8d955c47c55b72779802b219a39acc3ee3d0116d5080c388970b76e3"},
+ {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:d8fff389528cad1618fb4b26b95550327495462cd745d879a8c7c2115248e399"},
+ {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a7a9541cd308eed5e30318430a9c74d2132e9a8cb46b901326272d780bf2d423"},
+ {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:da1758c76f50c39a2efd5e9859ce7d776317eb1dd34317c8152ac9251fc574a3"},
+ {file = "multidict-6.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c943a53e9186688b45b323602298ab727d8865d8c9ee0b17f8d62d14b56f0753"},
+ {file = "multidict-6.1.0-cp311-cp311-win32.whl", hash = "sha256:90f8717cb649eea3504091e640a1b8568faad18bd4b9fcd692853a04475a4b80"},
+ {file = "multidict-6.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:82176036e65644a6cc5bd619f65f6f19781e8ec2e5330f51aa9ada7504cc1926"},
+ {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:b04772ed465fa3cc947db808fa306d79b43e896beb677a56fb2347ca1a49c1fa"},
+ {file = "multidict-6.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6180c0ae073bddeb5a97a38c03f30c233e0a4d39cd86166251617d1bbd0af436"},
+ {file = "multidict-6.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:071120490b47aa997cca00666923a83f02c7fbb44f71cf7f136df753f7fa8761"},
+ {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50b3a2710631848991d0bf7de077502e8994c804bb805aeb2925a981de58ec2e"},
+ {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b58c621844d55e71c1b7f7c498ce5aa6985d743a1a59034c57a905b3f153c1ef"},
+ {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55b6d90641869892caa9ca42ff913f7ff1c5ece06474fbd32fb2cf6834726c95"},
+ {file = "multidict-6.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b820514bfc0b98a30e3d85462084779900347e4d49267f747ff54060cc33925"},
+ {file = "multidict-6.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:10a9b09aba0c5b48c53761b7c720aaaf7cf236d5fe394cd399c7ba662d5f9966"},
+ {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1e16bf3e5fc9f44632affb159d30a437bfe286ce9e02754759be5536b169b305"},
+ {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:76f364861c3bfc98cbbcbd402d83454ed9e01a5224bb3a28bf70002a230f73e2"},
+ {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:820c661588bd01a0aa62a1283f20d2be4281b086f80dad9e955e690c75fb54a2"},
+ {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:0e5f362e895bc5b9e67fe6e4ded2492d8124bdf817827f33c5b46c2fe3ffaca6"},
+ {file = "multidict-6.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3ec660d19bbc671e3a6443325f07263be452c453ac9e512f5eb935e7d4ac28b3"},
+ {file = "multidict-6.1.0-cp312-cp312-win32.whl", hash = "sha256:58130ecf8f7b8112cdb841486404f1282b9c86ccb30d3519faf301b2e5659133"},
+ {file = "multidict-6.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:188215fc0aafb8e03341995e7c4797860181562380f81ed0a87ff455b70bf1f1"},
+ {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:d569388c381b24671589335a3be6e1d45546c2988c2ebe30fdcada8457a31008"},
+ {file = "multidict-6.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:052e10d2d37810b99cc170b785945421141bf7bb7d2f8799d431e7db229c385f"},
+ {file = "multidict-6.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f90c822a402cb865e396a504f9fc8173ef34212a342d92e362ca498cad308e28"},
+ {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b225d95519a5bf73860323e633a664b0d85ad3d5bede6d30d95b35d4dfe8805b"},
+ {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:23bfd518810af7de1116313ebd9092cb9aa629beb12f6ed631ad53356ed6b86c"},
+ {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c09fcfdccdd0b57867577b719c69e347a436b86cd83747f179dbf0cc0d4c1f3"},
+ {file = "multidict-6.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf6bea52ec97e95560af5ae576bdac3aa3aae0b6758c6efa115236d9e07dae44"},
+ {file = "multidict-6.1.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57feec87371dbb3520da6192213c7d6fc892d5589a93db548331954de8248fd2"},
+ {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0c3f390dc53279cbc8ba976e5f8035eab997829066756d811616b652b00a23a3"},
+ {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:59bfeae4b25ec05b34f1956eaa1cb38032282cd4dfabc5056d0a1ec4d696d3aa"},
+ {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:b2f59caeaf7632cc633b5cf6fc449372b83bbdf0da4ae04d5be36118e46cc0aa"},
+ {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:37bb93b2178e02b7b618893990941900fd25b6b9ac0fa49931a40aecdf083fe4"},
+ {file = "multidict-6.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4e9f48f58c2c523d5a06faea47866cd35b32655c46b443f163d08c6d0ddb17d6"},
+ {file = "multidict-6.1.0-cp313-cp313-win32.whl", hash = "sha256:3a37ffb35399029b45c6cc33640a92bef403c9fd388acce75cdc88f58bd19a81"},
+ {file = "multidict-6.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:e9aa71e15d9d9beaad2c6b9319edcdc0a49a43ef5c0a4c8265ca9ee7d6c67774"},
+ {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:db7457bac39421addd0c8449933ac32d8042aae84a14911a757ae6ca3eef1392"},
+ {file = "multidict-6.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d094ddec350a2fb899fec68d8353c78233debde9b7d8b4beeafa70825f1c281a"},
+ {file = "multidict-6.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5845c1fd4866bb5dd3125d89b90e57ed3138241540897de748cdf19de8a2fca2"},
+ {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9079dfc6a70abe341f521f78405b8949f96db48da98aeb43f9907f342f627cdc"},
+ {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3914f5aaa0f36d5d60e8ece6a308ee1c9784cd75ec8151062614657a114c4478"},
+ {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c08be4f460903e5a9d0f76818db3250f12e9c344e79314d1d570fc69d7f4eae4"},
+ {file = "multidict-6.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d093be959277cb7dee84b801eb1af388b6ad3ca6a6b6bf1ed7585895789d027d"},
+ {file = "multidict-6.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3702ea6872c5a2a4eeefa6ffd36b042e9773f05b1f37ae3ef7264b1163c2dcf6"},
+ {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2090f6a85cafc5b2db085124d752757c9d251548cedabe9bd31afe6363e0aff2"},
+ {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:f67f217af4b1ff66c68a87318012de788dd95fcfeb24cc889011f4e1c7454dfd"},
+ {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:189f652a87e876098bbc67b4da1049afb5f5dfbaa310dd67c594b01c10388db6"},
+ {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:6bb5992037f7a9eff7991ebe4273ea7f51f1c1c511e6a2ce511d0e7bdb754492"},
+ {file = "multidict-6.1.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:ac10f4c2b9e770c4e393876e35a7046879d195cd123b4f116d299d442b335bcd"},
+ {file = "multidict-6.1.0-cp38-cp38-win32.whl", hash = "sha256:e27bbb6d14416713a8bd7aaa1313c0fc8d44ee48d74497a0ff4c3a1b6ccb5167"},
+ {file = "multidict-6.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:22f3105d4fb15c8f57ff3959a58fcab6ce36814486500cd7485651230ad4d4ef"},
+ {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4e18b656c5e844539d506a0a06432274d7bd52a7487e6828c63a63d69185626c"},
+ {file = "multidict-6.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a185f876e69897a6f3325c3f19f26a297fa058c5e456bfcff8015e9a27e83ae1"},
+ {file = "multidict-6.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ab7c4ceb38d91570a650dba194e1ca87c2b543488fe9309b4212694174fd539c"},
+ {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e617fb6b0b6953fffd762669610c1c4ffd05632c138d61ac7e14ad187870669c"},
+ {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:16e5f4bf4e603eb1fdd5d8180f1a25f30056f22e55ce51fb3d6ad4ab29f7d96f"},
+ {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4c035da3f544b1882bac24115f3e2e8760f10a0107614fc9839fd232200b875"},
+ {file = "multidict-6.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:957cf8e4b6e123a9eea554fa7ebc85674674b713551de587eb318a2df3e00255"},
+ {file = "multidict-6.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:483a6aea59cb89904e1ceabd2b47368b5600fb7de78a6e4a2c2987b2d256cf30"},
+ {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:87701f25a2352e5bf7454caa64757642734da9f6b11384c1f9d1a8e699758057"},
+ {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:682b987361e5fd7a139ed565e30d81fd81e9629acc7d925a205366877d8c8657"},
+ {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ce2186a7df133a9c895dea3331ddc5ddad42cdd0d1ea2f0a51e5d161e4762f28"},
+ {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:9f636b730f7e8cb19feb87094949ba54ee5357440b9658b2a32a5ce4bce53972"},
+ {file = "multidict-6.1.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:73eae06aa53af2ea5270cc066dcaf02cc60d2994bbb2c4ef5764949257d10f43"},
+ {file = "multidict-6.1.0-cp39-cp39-win32.whl", hash = "sha256:1ca0083e80e791cffc6efce7660ad24af66c8d4079d2a750b29001b53ff59ada"},
+ {file = "multidict-6.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:aa466da5b15ccea564bdab9c89175c762bc12825f4659c11227f515cee76fa4a"},
+ {file = "multidict-6.1.0-py3-none-any.whl", hash = "sha256:48e171e52d1c4d33888e529b999e5900356b9ae588c2f09a52dcefb158b27506"},
+ {file = "multidict-6.1.0.tar.gz", hash = "sha256:22ae2ebf9b0c69d206c003e2f6a914ea33f0a932d4aa16f236afc049d9958f4a"},
+]
+
+[[package]]
+name = "mypy"
+version = "1.11.2"
+description = "Optional static typing for Python"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "mypy-1.11.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d42a6dd818ffce7be66cce644f1dff482f1d97c53ca70908dff0b9ddc120b77a"},
+ {file = "mypy-1.11.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:801780c56d1cdb896eacd5619a83e427ce436d86a3bdf9112527f24a66618fef"},
+ {file = "mypy-1.11.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:41ea707d036a5307ac674ea172875f40c9d55c5394f888b168033177fce47383"},
+ {file = "mypy-1.11.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6e658bd2d20565ea86da7d91331b0eed6d2eee22dc031579e6297f3e12c758c8"},
+ {file = "mypy-1.11.2-cp310-cp310-win_amd64.whl", hash = "sha256:478db5f5036817fe45adb7332d927daa62417159d49783041338921dcf646fc7"},
+ {file = "mypy-1.11.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:75746e06d5fa1e91bfd5432448d00d34593b52e7e91a187d981d08d1f33d4385"},
+ {file = "mypy-1.11.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a976775ab2256aadc6add633d44f100a2517d2388906ec4f13231fafbb0eccca"},
+ {file = "mypy-1.11.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cd953f221ac1379050a8a646585a29574488974f79d8082cedef62744f0a0104"},
+ {file = "mypy-1.11.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:57555a7715c0a34421013144a33d280e73c08df70f3a18a552938587ce9274f4"},
+ {file = "mypy-1.11.2-cp311-cp311-win_amd64.whl", hash = "sha256:36383a4fcbad95f2657642a07ba22ff797de26277158f1cc7bd234821468b1b6"},
+ {file = "mypy-1.11.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e8960dbbbf36906c5c0b7f4fbf2f0c7ffb20f4898e6a879fcf56a41a08b0d318"},
+ {file = "mypy-1.11.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:06d26c277962f3fb50e13044674aa10553981ae514288cb7d0a738f495550b36"},
+ {file = "mypy-1.11.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6e7184632d89d677973a14d00ae4d03214c8bc301ceefcdaf5c474866814c987"},
+ {file = "mypy-1.11.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:3a66169b92452f72117e2da3a576087025449018afc2d8e9bfe5ffab865709ca"},
+ {file = "mypy-1.11.2-cp312-cp312-win_amd64.whl", hash = "sha256:969ea3ef09617aff826885a22ece0ddef69d95852cdad2f60c8bb06bf1f71f70"},
+ {file = "mypy-1.11.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:37c7fa6121c1cdfcaac97ce3d3b5588e847aa79b580c1e922bb5d5d2902df19b"},
+ {file = "mypy-1.11.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4a8a53bc3ffbd161b5b2a4fff2f0f1e23a33b0168f1c0778ec70e1a3d66deb86"},
+ {file = "mypy-1.11.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2ff93107f01968ed834f4256bc1fc4475e2fecf6c661260066a985b52741ddce"},
+ {file = "mypy-1.11.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:edb91dded4df17eae4537668b23f0ff6baf3707683734b6a818d5b9d0c0c31a1"},
+ {file = "mypy-1.11.2-cp38-cp38-win_amd64.whl", hash = "sha256:ee23de8530d99b6db0573c4ef4bd8f39a2a6f9b60655bf7a1357e585a3486f2b"},
+ {file = "mypy-1.11.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:801ca29f43d5acce85f8e999b1e431fb479cb02d0e11deb7d2abb56bdaf24fd6"},
+ {file = "mypy-1.11.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:af8d155170fcf87a2afb55b35dc1a0ac21df4431e7d96717621962e4b9192e70"},
+ {file = "mypy-1.11.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f7821776e5c4286b6a13138cc935e2e9b6fde05e081bdebf5cdb2bb97c9df81d"},
+ {file = "mypy-1.11.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:539c570477a96a4e6fb718b8d5c3e0c0eba1f485df13f86d2970c91f0673148d"},
+ {file = "mypy-1.11.2-cp39-cp39-win_amd64.whl", hash = "sha256:3f14cd3d386ac4d05c5a39a51b84387403dadbd936e17cb35882134d4f8f0d24"},
+ {file = "mypy-1.11.2-py3-none-any.whl", hash = "sha256:b499bc07dbdcd3de92b0a8b29fdf592c111276f6a12fe29c30f6c417dd546d12"},
+ {file = "mypy-1.11.2.tar.gz", hash = "sha256:7f9993ad3e0ffdc95c2a14b66dee63729f021968bff8ad911867579c65d13a79"},
+]
+
+[package.dependencies]
+mypy-extensions = ">=1.0.0"
+typing-extensions = ">=4.6.0"
+
+[package.extras]
+dmypy = ["psutil (>=4.0)"]
+install-types = ["pip"]
+mypyc = ["setuptools (>=50)"]
+reports = ["lxml"]
+
+[[package]]
+name = "mypy-extensions"
+version = "1.0.0"
+description = "Type system extensions for programs checked with the mypy type checker."
+optional = false
+python-versions = ">=3.5"
+files = [
+ {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"},
+ {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"},
+]
+
+[[package]]
+name = "nodeenv"
+version = "1.9.1"
+description = "Node.js virtual environment builder"
+optional = false
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
+files = [
+ {file = "nodeenv-1.9.1-py2.py3-none-any.whl", hash = "sha256:ba11c9782d29c27c70ffbdda2d7415098754709be8a7056d79a737cd901155c9"},
+ {file = "nodeenv-1.9.1.tar.gz", hash = "sha256:6ec12890a2dab7946721edbfbcd91f3319c6ccc9aec47be7c7e6b7011ee6645f"},
+]
+
+[[package]]
+name = "packageurl-python"
+version = "0.15.6"
+description = "A purl aka. Package URL parser and builder"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "packageurl_python-0.15.6-py3-none-any.whl", hash = "sha256:a40210652c89022772a6c8340d6066f7d5dc67132141e5284a4db7a27d0a8ab0"},
+ {file = "packageurl_python-0.15.6.tar.gz", hash = "sha256:cbc89afd15d5f4d05db4f1b61297e5b97a43f61f28799f6d282aff467ed2ee96"},
+]
+
+[package.extras]
+build = ["setuptools", "wheel"]
+lint = ["black", "isort", "mypy"]
+sqlalchemy = ["sqlalchemy (>=2.0.0)"]
+test = ["pytest"]
+
+[[package]]
+name = "packaging"
+version = "24.1"
+description = "Core utilities for Python packages"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"},
+ {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"},
+]
+
+[[package]]
+name = "pathspec"
+version = "0.12.1"
+description = "Utility library for gitignore style pattern matching of file paths."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"},
+ {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"},
+]
+
+[[package]]
+name = "pip"
+version = "24.2"
+description = "The PyPA recommended tool for installing Python packages."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "pip-24.2-py3-none-any.whl", hash = "sha256:2cd581cf58ab7fcfca4ce8efa6dcacd0de5bf8d0a3eb9ec927e07405f4d9e2a2"},
+ {file = "pip-24.2.tar.gz", hash = "sha256:5b5e490b5e9cb275c879595064adce9ebd31b854e3e803740b72f9ccf34a45b8"},
+]
+
+[[package]]
+name = "pip-api"
+version = "0.0.34"
+description = "An unofficial, importable pip API"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "pip_api-0.0.34-py3-none-any.whl", hash = "sha256:8b2d7d7c37f2447373aa2cf8b1f60a2f2b27a84e1e9e0294a3f6ef10eb3ba6bb"},
+ {file = "pip_api-0.0.34.tar.gz", hash = "sha256:9b75e958f14c5a2614bae415f2adf7eeb54d50a2cfbe7e24fd4826471bac3625"},
+]
+
+[package.dependencies]
+pip = "*"
+
+[[package]]
+name = "pip-audit"
+version = "2.7.3"
+description = "A tool for scanning Python environments for known vulnerabilities"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "pip_audit-2.7.3-py3-none-any.whl", hash = "sha256:46a11faee3323f76adf7987de8171daeb660e8f57d8088cc27fb1c1e5c7747b0"},
+ {file = "pip_audit-2.7.3.tar.gz", hash = "sha256:08891bbf179bffe478521f150818112bae998424f58bf9285c0078965aef38bc"},
+]
+
+[package.dependencies]
+CacheControl = {version = ">=0.13.0", extras = ["filecache"]}
+cyclonedx-python-lib = ">=5,<8"
+html5lib = ">=1.1"
+packaging = ">=23.0.0"
+pip-api = ">=0.0.28"
+pip-requirements-parser = ">=32.0.0"
+requests = ">=2.31.0"
+rich = ">=12.4"
+toml = ">=0.10"
+
+[package.extras]
+dev = ["build", "bump (>=1.3.2)", "pip-audit[doc,lint,test]"]
+doc = ["pdoc"]
+lint = ["interrogate", "mypy", "ruff (<0.4.3)", "setuptools", "types-html5lib", "types-requests", "types-toml"]
+test = ["coverage[toml] (>=7.0,!=7.3.3,<8.0)", "pretend", "pytest", "pytest-cov"]
+
+[[package]]
+name = "pip-requirements-parser"
+version = "32.0.1"
+description = "pip requirements parser - a mostly correct pip requirements parsing library because it uses pip's own code."
+optional = false
+python-versions = ">=3.6.0"
+files = [
+ {file = "pip-requirements-parser-32.0.1.tar.gz", hash = "sha256:b4fa3a7a0be38243123cf9d1f3518da10c51bdb165a2b2985566247f9155a7d3"},
+ {file = "pip_requirements_parser-32.0.1-py3-none-any.whl", hash = "sha256:4659bc2a667783e7a15d190f6fccf8b2486685b6dba4c19c3876314769c57526"},
+]
+
+[package.dependencies]
+packaging = "*"
+pyparsing = "*"
+
+[package.extras]
+docs = ["Sphinx (>=3.3.1)", "doc8 (>=0.8.1)", "sphinx-rtd-theme (>=0.5.0)"]
+testing = ["aboutcode-toolkit (>=6.0.0)", "black", "pytest (>=6,!=7.0.0)", "pytest-xdist (>=2)"]
+
+[[package]]
+name = "platformdirs"
+version = "4.3.6"
+description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"},
+ {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"},
+]
+
+[package.extras]
+docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"]
+test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"]
+type = ["mypy (>=1.11.2)"]
+
+[[package]]
+name = "pluggy"
+version = "1.5.0"
+description = "plugin and hook calling mechanisms for python"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"},
+ {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"},
+]
+
+[package.extras]
+dev = ["pre-commit", "tox"]
+testing = ["pytest", "pytest-benchmark"]
+
+[[package]]
+name = "pre-commit"
+version = "3.8.0"
+description = "A framework for managing and maintaining multi-language pre-commit hooks."
+optional = false
+python-versions = ">=3.9"
+files = [
+ {file = "pre_commit-3.8.0-py2.py3-none-any.whl", hash = "sha256:9a90a53bf82fdd8778d58085faf8d83df56e40dfe18f45b19446e26bf1b3a63f"},
+ {file = "pre_commit-3.8.0.tar.gz", hash = "sha256:8bb6494d4a20423842e198980c9ecf9f96607a07ea29549e180eef9ae80fe7af"},
+]
+
+[package.dependencies]
+cfgv = ">=2.0.0"
+identify = ">=1.0.0"
+nodeenv = ">=0.11.1"
+pyyaml = ">=5.1"
+virtualenv = ">=20.10.0"
+
+[[package]]
+name = "puyapy"
+version = "3.2.0"
+description = "An optimising compiler for Algorand Python"
+optional = false
+python-versions = "<4.0,>=3.12"
+files = [
+ {file = "puyapy-3.2.0-py3-none-any.whl", hash = "sha256:b5fbfecfd2174a67c91501314df295332ee1df5e40bbdf14ef844a7514e97631"},
+]
+
+[package.dependencies]
+attrs = ">=23.2.0,<24.0.0"
+cattrs = ">=24.1,<25.0"
+colorama = {version = ">=0.4.6,<0.5.0", markers = "sys_platform == \"win32\""}
+docstring-parser = ">=0.14.1"
+immutabledict = ">=4.2.0,<5.0.0"
+mypy_extensions = ">=1.0.0,<2.0.0"
+packaging = ">=24.0,<25.0"
+pycryptodomex = ">=3.6.0,<4"
+structlog = ">=24.1.0,<25.0.0"
+typing-extensions = ">=4.11.0,<5.0.0"
+
+[[package]]
+name = "py-algorand-sdk"
+version = "2.6.1"
+description = "Algorand SDK in Python"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "py-algorand-sdk-2.6.1.tar.gz", hash = "sha256:9223929d05f532a9295711c5ff945aa8aa854bc5efedb37b821f15335106ea14"},
+ {file = "py_algorand_sdk-2.6.1-py3-none-any.whl", hash = "sha256:1257b0999f4c67dd66e0517da5081e014953d0a7d14edecc45d53b8aba1b7328"},
+]
+
+[package.dependencies]
+msgpack = ">=1.0.0,<2"
+pycryptodomex = ">=3.6.0,<4"
+pynacl = ">=1.4.0,<2"
+
+[[package]]
+name = "py-serializable"
+version = "1.1.1"
+description = "Library for serializing and deserializing Python Objects to and from JSON and XML."
+optional = false
+python-versions = "<4.0,>=3.8"
+files = [
+ {file = "py_serializable-1.1.1-py3-none-any.whl", hash = "sha256:008cf879c8a227851e745e307c1a1c9b58bc22ab87f3794a3750513b6c9e8713"},
+ {file = "py_serializable-1.1.1.tar.gz", hash = "sha256:f268db3afc42c8786da6dc64a8a36e33a82cf65cdcff22d1188b0927f6d4cfa9"},
+]
+
+[package.dependencies]
+defusedxml = ">=0.7.1,<0.8.0"
+
+[[package]]
+name = "pycparser"
+version = "2.22"
+description = "C parser in Python"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"},
+ {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"},
+]
+
+[[package]]
+name = "pycryptodomex"
+version = "3.20.0"
+description = "Cryptographic library for Python"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+files = [
+ {file = "pycryptodomex-3.20.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:645bd4ca6f543685d643dadf6a856cc382b654cc923460e3a10a49c1b3832aeb"},
+ {file = "pycryptodomex-3.20.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:ff5c9a67f8a4fba4aed887216e32cbc48f2a6fb2673bb10a99e43be463e15913"},
+ {file = "pycryptodomex-3.20.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:8ee606964553c1a0bc74057dd8782a37d1c2bc0f01b83193b6f8bb14523b877b"},
+ {file = "pycryptodomex-3.20.0-cp27-cp27m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7805830e0c56d88f4d491fa5ac640dfc894c5ec570d1ece6ed1546e9df2e98d6"},
+ {file = "pycryptodomex-3.20.0-cp27-cp27m-musllinux_1_1_aarch64.whl", hash = "sha256:bc3ee1b4d97081260d92ae813a83de4d2653206967c4a0a017580f8b9548ddbc"},
+ {file = "pycryptodomex-3.20.0-cp27-cp27m-win32.whl", hash = "sha256:8af1a451ff9e123d0d8bd5d5e60f8e3315c3a64f3cdd6bc853e26090e195cdc8"},
+ {file = "pycryptodomex-3.20.0-cp27-cp27m-win_amd64.whl", hash = "sha256:cbe71b6712429650e3883dc81286edb94c328ffcd24849accac0a4dbcc76958a"},
+ {file = "pycryptodomex-3.20.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:76bd15bb65c14900d98835fcd10f59e5e0435077431d3a394b60b15864fddd64"},
+ {file = "pycryptodomex-3.20.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:653b29b0819605fe0898829c8ad6400a6ccde096146730c2da54eede9b7b8baa"},
+ {file = "pycryptodomex-3.20.0-cp27-cp27mu-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62a5ec91388984909bb5398ea49ee61b68ecb579123694bffa172c3b0a107079"},
+ {file = "pycryptodomex-3.20.0-cp27-cp27mu-musllinux_1_1_aarch64.whl", hash = "sha256:108e5f1c1cd70ffce0b68739c75734437c919d2eaec8e85bffc2c8b4d2794305"},
+ {file = "pycryptodomex-3.20.0-cp35-abi3-macosx_10_9_universal2.whl", hash = "sha256:59af01efb011b0e8b686ba7758d59cf4a8263f9ad35911bfe3f416cee4f5c08c"},
+ {file = "pycryptodomex-3.20.0-cp35-abi3-macosx_10_9_x86_64.whl", hash = "sha256:82ee7696ed8eb9a82c7037f32ba9b7c59e51dda6f105b39f043b6ef293989cb3"},
+ {file = "pycryptodomex-3.20.0-cp35-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:91852d4480a4537d169c29a9d104dda44094c78f1f5b67bca76c29a91042b623"},
+ {file = "pycryptodomex-3.20.0-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bca649483d5ed251d06daf25957f802e44e6bb6df2e8f218ae71968ff8f8edc4"},
+ {file = "pycryptodomex-3.20.0-cp35-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6e186342cfcc3aafaad565cbd496060e5a614b441cacc3995ef0091115c1f6c5"},
+ {file = "pycryptodomex-3.20.0-cp35-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:25cd61e846aaab76d5791d006497134602a9e451e954833018161befc3b5b9ed"},
+ {file = "pycryptodomex-3.20.0-cp35-abi3-musllinux_1_1_i686.whl", hash = "sha256:9c682436c359b5ada67e882fec34689726a09c461efd75b6ea77b2403d5665b7"},
+ {file = "pycryptodomex-3.20.0-cp35-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:7a7a8f33a1f1fb762ede6cc9cbab8f2a9ba13b196bfaf7bc6f0b39d2ba315a43"},
+ {file = "pycryptodomex-3.20.0-cp35-abi3-win32.whl", hash = "sha256:c39778fd0548d78917b61f03c1fa8bfda6cfcf98c767decf360945fe6f97461e"},
+ {file = "pycryptodomex-3.20.0-cp35-abi3-win_amd64.whl", hash = "sha256:2a47bcc478741b71273b917232f521fd5704ab4b25d301669879e7273d3586cc"},
+ {file = "pycryptodomex-3.20.0-pp27-pypy_73-manylinux2010_x86_64.whl", hash = "sha256:1be97461c439a6af4fe1cf8bf6ca5936d3db252737d2f379cc6b2e394e12a458"},
+ {file = "pycryptodomex-3.20.0-pp27-pypy_73-win32.whl", hash = "sha256:19764605feea0df966445d46533729b645033f134baeb3ea26ad518c9fdf212c"},
+ {file = "pycryptodomex-3.20.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:f2e497413560e03421484189a6b65e33fe800d3bd75590e6d78d4dfdb7accf3b"},
+ {file = "pycryptodomex-3.20.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e48217c7901edd95f9f097feaa0388da215ed14ce2ece803d3f300b4e694abea"},
+ {file = "pycryptodomex-3.20.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d00fe8596e1cc46b44bf3907354e9377aa030ec4cd04afbbf6e899fc1e2a7781"},
+ {file = "pycryptodomex-3.20.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:88afd7a3af7ddddd42c2deda43d53d3dfc016c11327d0915f90ca34ebda91499"},
+ {file = "pycryptodomex-3.20.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d3584623e68a5064a04748fb6d76117a21a7cb5eaba20608a41c7d0c61721794"},
+ {file = "pycryptodomex-3.20.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0daad007b685db36d977f9de73f61f8da2a7104e20aca3effd30752fd56f73e1"},
+ {file = "pycryptodomex-3.20.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5dcac11031a71348faaed1f403a0debd56bf5404232284cf8c761ff918886ebc"},
+ {file = "pycryptodomex-3.20.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:69138068268127cd605e03438312d8f271135a33140e2742b417d027a0539427"},
+ {file = "pycryptodomex-3.20.0.tar.gz", hash = "sha256:7a710b79baddd65b806402e14766c721aee8fb83381769c27920f26476276c1e"},
+]
+
+[[package]]
+name = "pygments"
+version = "2.18.0"
+description = "Pygments is a syntax highlighting package written in Python."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"},
+ {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"},
+]
+
+[package.extras]
+windows-terminal = ["colorama (>=0.4.6)"]
+
+[[package]]
+name = "pynacl"
+version = "1.5.0"
+description = "Python binding to the Networking and Cryptography (NaCl) library"
+optional = false
+python-versions = ">=3.6"
+files = [
+ {file = "PyNaCl-1.5.0-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:401002a4aaa07c9414132aaed7f6836ff98f59277a234704ff66878c2ee4a0d1"},
+ {file = "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:52cb72a79269189d4e0dc537556f4740f7f0a9ec41c1322598799b0bdad4ef92"},
+ {file = "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a36d4a9dda1f19ce6e03c9a784a2921a4b726b02e1c736600ca9c22029474394"},
+ {file = "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:0c84947a22519e013607c9be43706dd42513f9e6ae5d39d3613ca1e142fba44d"},
+ {file = "PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06b8f6fa7f5de8d5d2f7573fe8c863c051225a27b61e6860fd047b1775807858"},
+ {file = "PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:a422368fc821589c228f4c49438a368831cb5bbc0eab5ebe1d7fac9dded6567b"},
+ {file = "PyNaCl-1.5.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:61f642bf2378713e2c2e1de73444a3778e5f0a38be6fee0fe532fe30060282ff"},
+ {file = "PyNaCl-1.5.0-cp36-abi3-win32.whl", hash = "sha256:e46dae94e34b085175f8abb3b0aaa7da40767865ac82c928eeb9e57e1ea8a543"},
+ {file = "PyNaCl-1.5.0-cp36-abi3-win_amd64.whl", hash = "sha256:20f42270d27e1b6a29f54032090b972d97f0a1b0948cc52392041ef7831fee93"},
+ {file = "PyNaCl-1.5.0.tar.gz", hash = "sha256:8ac7448f09ab85811607bdd21ec2464495ac8b7c66d146bf545b0f08fb9220ba"},
+]
+
+[package.dependencies]
+cffi = ">=1.4.1"
+
+[package.extras]
+docs = ["sphinx (>=1.6.5)", "sphinx-rtd-theme"]
+tests = ["hypothesis (>=3.27.0)", "pytest (>=3.2.1,!=3.3.0)"]
+
+[[package]]
+name = "pyparsing"
+version = "3.1.4"
+description = "pyparsing module - Classes and methods to define and execute parsing grammars"
+optional = false
+python-versions = ">=3.6.8"
+files = [
+ {file = "pyparsing-3.1.4-py3-none-any.whl", hash = "sha256:a6a7ee4235a3f944aa1fa2249307708f893fe5717dc603503c6c7969c070fb7c"},
+ {file = "pyparsing-3.1.4.tar.gz", hash = "sha256:f86ec8d1a83f11977c9a6ea7598e8c27fc5cddfa5b07ea2241edbbde1d7bc032"},
+]
+
+[package.extras]
+diagrams = ["jinja2", "railroad-diagrams"]
+
+[[package]]
+name = "pytest"
+version = "8.3.3"
+description = "pytest: simple powerful testing with Python"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "pytest-8.3.3-py3-none-any.whl", hash = "sha256:a6853c7375b2663155079443d2e45de913a911a11d669df02a50814944db57b2"},
+ {file = "pytest-8.3.3.tar.gz", hash = "sha256:70b98107bd648308a7952b06e6ca9a50bc660be218d53c257cc1fc94fda10181"},
+]
+
+[package.dependencies]
+colorama = {version = "*", markers = "sys_platform == \"win32\""}
+iniconfig = "*"
+packaging = "*"
+pluggy = ">=1.5,<2"
+
+[package.extras]
+dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"]
+
+[[package]]
+name = "pytest-cov"
+version = "5.0.0"
+description = "Pytest plugin for measuring coverage."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "pytest-cov-5.0.0.tar.gz", hash = "sha256:5837b58e9f6ebd335b0f8060eecce69b662415b16dc503883a02f45dfeb14857"},
+ {file = "pytest_cov-5.0.0-py3-none-any.whl", hash = "sha256:4f0764a1219df53214206bf1feea4633c3b558a2925c8b59f144f682861ce652"},
+]
+
+[package.dependencies]
+coverage = {version = ">=5.2.1", extras = ["toml"]}
+pytest = ">=4.6"
+
+[package.extras]
+testing = ["fields", "hunter", "process-tests", "pytest-xdist", "virtualenv"]
+
+[[package]]
+name = "python-dotenv"
+version = "1.0.1"
+description = "Read key-value pairs from a .env file and set them as environment variables"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "python-dotenv-1.0.1.tar.gz", hash = "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca"},
+ {file = "python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a"},
+]
+
+[package.extras]
+cli = ["click (>=5.0)"]
+
+[[package]]
+name = "pyyaml"
+version = "6.0.2"
+description = "YAML parser and emitter for Python"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"},
+ {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"},
+ {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"},
+ {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"},
+ {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"},
+ {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"},
+ {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"},
+ {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"},
+ {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"},
+ {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"},
+ {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"},
+ {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"},
+ {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"},
+ {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"},
+ {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"},
+ {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"},
+ {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"},
+ {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"},
+ {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"},
+ {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"},
+ {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"},
+ {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"},
+ {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"},
+ {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"},
+ {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"},
+ {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"},
+ {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"},
+ {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"},
+ {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"},
+ {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"},
+ {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"},
+ {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"},
+ {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"},
+ {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"},
+ {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"},
+ {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"},
+ {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"},
+ {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"},
+ {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"},
+ {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"},
+ {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"},
+ {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"},
+ {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"},
+ {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"},
+ {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"},
+ {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"},
+ {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"},
+ {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"},
+ {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"},
+ {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"},
+ {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"},
+ {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"},
+ {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"},
+]
+
+[[package]]
+name = "requests"
+version = "2.32.3"
+description = "Python HTTP for Humans."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"},
+ {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"},
+]
+
+[package.dependencies]
+certifi = ">=2017.4.17"
+charset-normalizer = ">=2,<4"
+idna = ">=2.5,<4"
+urllib3 = ">=1.21.1,<3"
+
+[package.extras]
+socks = ["PySocks (>=1.5.6,!=1.5.7)"]
+use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"]
+
+[[package]]
+name = "rfc3986"
+version = "1.5.0"
+description = "Validating URI References per RFC 3986"
+optional = false
+python-versions = "*"
+files = [
+ {file = "rfc3986-1.5.0-py2.py3-none-any.whl", hash = "sha256:a86d6e1f5b1dc238b218b012df0aa79409667bb209e58da56d0b94704e712a97"},
+ {file = "rfc3986-1.5.0.tar.gz", hash = "sha256:270aaf10d87d0d4e095063c65bf3ddbc6ee3d0b226328ce21e036f946e421835"},
+]
+
+[package.dependencies]
+idna = {version = "*", optional = true, markers = "extra == \"idna2008\""}
+
+[package.extras]
+idna2008 = ["idna"]
+
+[[package]]
+name = "rich"
+version = "13.9.1"
+description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal"
+optional = false
+python-versions = ">=3.8.0"
+files = [
+ {file = "rich-13.9.1-py3-none-any.whl", hash = "sha256:b340e739f30aa58921dc477b8adaa9ecdb7cecc217be01d93730ee1bc8aa83be"},
+ {file = "rich-13.9.1.tar.gz", hash = "sha256:097cffdf85db1babe30cc7deba5ab3a29e1b9885047dab24c57e9a7f8a9c1466"},
+]
+
+[package.dependencies]
+markdown-it-py = ">=2.2.0"
+pygments = ">=2.13.0,<3.0.0"
+
+[package.extras]
+jupyter = ["ipywidgets (>=7.5.1,<9)"]
+
+[[package]]
+name = "ruff"
+version = "0.6.8"
+description = "An extremely fast Python linter and code formatter, written in Rust."
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "ruff-0.6.8-py3-none-linux_armv6l.whl", hash = "sha256:77944bca110ff0a43b768f05a529fecd0706aac7bcce36d7f1eeb4cbfca5f0f2"},
+ {file = "ruff-0.6.8-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:27b87e1801e786cd6ede4ada3faa5e254ce774de835e6723fd94551464c56b8c"},
+ {file = "ruff-0.6.8-py3-none-macosx_11_0_arm64.whl", hash = "sha256:cd48f945da2a6334f1793d7f701725a76ba93bf3d73c36f6b21fb04d5338dcf5"},
+ {file = "ruff-0.6.8-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:677e03c00f37c66cea033274295a983c7c546edea5043d0c798833adf4cf4c6f"},
+ {file = "ruff-0.6.8-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9f1476236b3eacfacfc0f66aa9e6cd39f2a624cb73ea99189556015f27c0bdeb"},
+ {file = "ruff-0.6.8-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6f5a2f17c7d32991169195d52a04c95b256378bbf0de8cb98478351eb70d526f"},
+ {file = "ruff-0.6.8-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:5fd0d4b7b1457c49e435ee1e437900ced9b35cb8dc5178921dfb7d98d65a08d0"},
+ {file = "ruff-0.6.8-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f8034b19b993e9601f2ddf2c517451e17a6ab5cdb1c13fdff50c1442a7171d87"},
+ {file = "ruff-0.6.8-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6cfb227b932ba8ef6e56c9f875d987973cd5e35bc5d05f5abf045af78ad8e098"},
+ {file = "ruff-0.6.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ef0411eccfc3909269fed47c61ffebdcb84a04504bafa6b6df9b85c27e813b0"},
+ {file = "ruff-0.6.8-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:007dee844738c3d2e6c24ab5bc7d43c99ba3e1943bd2d95d598582e9c1b27750"},
+ {file = "ruff-0.6.8-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:ce60058d3cdd8490e5e5471ef086b3f1e90ab872b548814e35930e21d848c9ce"},
+ {file = "ruff-0.6.8-py3-none-musllinux_1_2_i686.whl", hash = "sha256:1085c455d1b3fdb8021ad534379c60353b81ba079712bce7a900e834859182fa"},
+ {file = "ruff-0.6.8-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:70edf6a93b19481affd287d696d9e311388d808671bc209fb8907b46a8c3af44"},
+ {file = "ruff-0.6.8-py3-none-win32.whl", hash = "sha256:792213f7be25316f9b46b854df80a77e0da87ec66691e8f012f887b4a671ab5a"},
+ {file = "ruff-0.6.8-py3-none-win_amd64.whl", hash = "sha256:ec0517dc0f37cad14a5319ba7bba6e7e339d03fbf967a6d69b0907d61be7a263"},
+ {file = "ruff-0.6.8-py3-none-win_arm64.whl", hash = "sha256:8d3bb2e3fbb9875172119021a13eed38849e762499e3cfde9588e4b4d70968dc"},
+ {file = "ruff-0.6.8.tar.gz", hash = "sha256:a5bf44b1aa0adaf6d9d20f86162b34f7c593bfedabc51239953e446aefc8ce18"},
+]
+
+[[package]]
+name = "six"
+version = "1.16.0"
+description = "Python 2 and 3 compatibility utilities"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
+files = [
+ {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
+ {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
+]
+
+[[package]]
+name = "sniffio"
+version = "1.3.1"
+description = "Sniff out which async library your code is running under"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"},
+ {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"},
+]
+
+[[package]]
+name = "sortedcontainers"
+version = "2.4.0"
+description = "Sorted Containers -- Sorted List, Sorted Dict, Sorted Set"
+optional = false
+python-versions = "*"
+files = [
+ {file = "sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0"},
+ {file = "sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88"},
+]
+
+[[package]]
+name = "structlog"
+version = "24.4.0"
+description = "Structured Logging for Python"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "structlog-24.4.0-py3-none-any.whl", hash = "sha256:597f61e80a91cc0749a9fd2a098ed76715a1c8a01f73e336b746504d1aad7610"},
+ {file = "structlog-24.4.0.tar.gz", hash = "sha256:b27bfecede327a6d2da5fbc96bd859f114ecc398a6389d664f62085ee7ae6fc4"},
+]
+
+[package.extras]
+dev = ["freezegun (>=0.2.8)", "mypy (>=1.4)", "pretend", "pytest (>=6.0)", "pytest-asyncio (>=0.17)", "rich", "simplejson", "twisted"]
+docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-mermaid", "sphinxext-opengraph", "twisted"]
+tests = ["freezegun (>=0.2.8)", "pretend", "pytest (>=6.0)", "pytest-asyncio (>=0.17)", "simplejson"]
+typing = ["mypy (>=1.4)", "rich", "twisted"]
+
+[[package]]
+name = "toml"
+version = "0.10.2"
+description = "Python Library for Tom's Obvious, Minimal Language"
+optional = false
+python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
+files = [
+ {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"},
+ {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"},
+]
+
+[[package]]
+name = "typing-extensions"
+version = "4.12.2"
+description = "Backported and Experimental Type Hints for Python 3.8+"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"},
+ {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"},
+]
+
+[[package]]
+name = "urllib3"
+version = "2.2.3"
+description = "HTTP library with thread-safe connection pooling, file post, and more."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac"},
+ {file = "urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9"},
+]
+
+[package.extras]
+brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"]
+h2 = ["h2 (>=4,<5)"]
+socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"]
+zstd = ["zstandard (>=0.18.0)"]
+
+[[package]]
+name = "virtualenv"
+version = "20.26.6"
+description = "Virtual Python Environment builder"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "virtualenv-20.26.6-py3-none-any.whl", hash = "sha256:7345cc5b25405607a624d8418154577459c3e0277f5466dd79c49d5e492995f2"},
+ {file = "virtualenv-20.26.6.tar.gz", hash = "sha256:280aede09a2a5c317e409a00102e7077c6432c5a38f0ef938e643805a7ad2c48"},
+]
+
+[package.dependencies]
+distlib = ">=0.3.7,<1"
+filelock = ">=3.12.2,<4"
+platformdirs = ">=3.9.1,<5"
+
+[package.extras]
+docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"]
+test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8)", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10)"]
+
+[[package]]
+name = "webencodings"
+version = "0.5.1"
+description = "Character encoding aliases for legacy web content"
+optional = false
+python-versions = "*"
+files = [
+ {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"},
+ {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"},
+]
+
+[[package]]
+name = "wrapt"
+version = "1.16.0"
+description = "Module for decorators, wrappers and monkey patching."
+optional = false
+python-versions = ">=3.6"
+files = [
+ {file = "wrapt-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ffa565331890b90056c01db69c0fe634a776f8019c143a5ae265f9c6bc4bd6d4"},
+ {file = "wrapt-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e4fdb9275308292e880dcbeb12546df7f3e0f96c6b41197e0cf37d2826359020"},
+ {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb2dee3874a500de01c93d5c71415fcaef1d858370d405824783e7a8ef5db440"},
+ {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2a88e6010048489cda82b1326889ec075a8c856c2e6a256072b28eaee3ccf487"},
+ {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac83a914ebaf589b69f7d0a1277602ff494e21f4c2f743313414378f8f50a4cf"},
+ {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:73aa7d98215d39b8455f103de64391cb79dfcad601701a3aa0dddacf74911d72"},
+ {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:807cc8543a477ab7422f1120a217054f958a66ef7314f76dd9e77d3f02cdccd0"},
+ {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bf5703fdeb350e36885f2875d853ce13172ae281c56e509f4e6eca049bdfb136"},
+ {file = "wrapt-1.16.0-cp310-cp310-win32.whl", hash = "sha256:f6b2d0c6703c988d334f297aa5df18c45e97b0af3679bb75059e0e0bd8b1069d"},
+ {file = "wrapt-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:decbfa2f618fa8ed81c95ee18a387ff973143c656ef800c9f24fb7e9c16054e2"},
+ {file = "wrapt-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1a5db485fe2de4403f13fafdc231b0dbae5eca4359232d2efc79025527375b09"},
+ {file = "wrapt-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:75ea7d0ee2a15733684badb16de6794894ed9c55aa5e9903260922f0482e687d"},
+ {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a452f9ca3e3267cd4d0fcf2edd0d035b1934ac2bd7e0e57ac91ad6b95c0c6389"},
+ {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:43aa59eadec7890d9958748db829df269f0368521ba6dc68cc172d5d03ed8060"},
+ {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72554a23c78a8e7aa02abbd699d129eead8b147a23c56e08d08dfc29cfdddca1"},
+ {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d2efee35b4b0a347e0d99d28e884dfd82797852d62fcd7ebdeee26f3ceb72cf3"},
+ {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:6dcfcffe73710be01d90cae08c3e548d90932d37b39ef83969ae135d36ef3956"},
+ {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:eb6e651000a19c96f452c85132811d25e9264d836951022d6e81df2fff38337d"},
+ {file = "wrapt-1.16.0-cp311-cp311-win32.whl", hash = "sha256:66027d667efe95cc4fa945af59f92c5a02c6f5bb6012bff9e60542c74c75c362"},
+ {file = "wrapt-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:aefbc4cb0a54f91af643660a0a150ce2c090d3652cf4052a5397fb2de549cd89"},
+ {file = "wrapt-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5eb404d89131ec9b4f748fa5cfb5346802e5ee8836f57d516576e61f304f3b7b"},
+ {file = "wrapt-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9090c9e676d5236a6948330e83cb89969f433b1943a558968f659ead07cb3b36"},
+ {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94265b00870aa407bd0cbcfd536f17ecde43b94fb8d228560a1e9d3041462d73"},
+ {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2058f813d4f2b5e3a9eb2eb3faf8f1d99b81c3e51aeda4b168406443e8ba809"},
+ {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98b5e1f498a8ca1858a1cdbffb023bfd954da4e3fa2c0cb5853d40014557248b"},
+ {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:14d7dc606219cdd7405133c713f2c218d4252f2a469003f8c46bb92d5d095d81"},
+ {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:49aac49dc4782cb04f58986e81ea0b4768e4ff197b57324dcbd7699c5dfb40b9"},
+ {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:418abb18146475c310d7a6dc71143d6f7adec5b004ac9ce08dc7a34e2babdc5c"},
+ {file = "wrapt-1.16.0-cp312-cp312-win32.whl", hash = "sha256:685f568fa5e627e93f3b52fda002c7ed2fa1800b50ce51f6ed1d572d8ab3e7fc"},
+ {file = "wrapt-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:dcdba5c86e368442528f7060039eda390cc4091bfd1dca41e8046af7c910dda8"},
+ {file = "wrapt-1.16.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d462f28826f4657968ae51d2181a074dfe03c200d6131690b7d65d55b0f360f8"},
+ {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a33a747400b94b6d6b8a165e4480264a64a78c8a4c734b62136062e9a248dd39"},
+ {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3646eefa23daeba62643a58aac816945cadc0afaf21800a1421eeba5f6cfb9c"},
+ {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ebf019be5c09d400cf7b024aa52b1f3aeebeff51550d007e92c3c1c4afc2a40"},
+ {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:0d2691979e93d06a95a26257adb7bfd0c93818e89b1406f5a28f36e0d8c1e1fc"},
+ {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:1acd723ee2a8826f3d53910255643e33673e1d11db84ce5880675954183ec47e"},
+ {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:bc57efac2da352a51cc4658878a68d2b1b67dbe9d33c36cb826ca449d80a8465"},
+ {file = "wrapt-1.16.0-cp36-cp36m-win32.whl", hash = "sha256:da4813f751142436b075ed7aa012a8778aa43a99f7b36afe9b742d3ed8bdc95e"},
+ {file = "wrapt-1.16.0-cp36-cp36m-win_amd64.whl", hash = "sha256:6f6eac2360f2d543cc875a0e5efd413b6cbd483cb3ad7ebf888884a6e0d2e966"},
+ {file = "wrapt-1.16.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a0ea261ce52b5952bf669684a251a66df239ec6d441ccb59ec7afa882265d593"},
+ {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bd2d7ff69a2cac767fbf7a2b206add2e9a210e57947dd7ce03e25d03d2de292"},
+ {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9159485323798c8dc530a224bd3ffcf76659319ccc7bbd52e01e73bd0241a0c5"},
+ {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a86373cf37cd7764f2201b76496aba58a52e76dedfaa698ef9e9688bfd9e41cf"},
+ {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:73870c364c11f03ed072dda68ff7aea6d2a3a5c3fe250d917a429c7432e15228"},
+ {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b935ae30c6e7400022b50f8d359c03ed233d45b725cfdd299462f41ee5ffba6f"},
+ {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:db98ad84a55eb09b3c32a96c576476777e87c520a34e2519d3e59c44710c002c"},
+ {file = "wrapt-1.16.0-cp37-cp37m-win32.whl", hash = "sha256:9153ed35fc5e4fa3b2fe97bddaa7cbec0ed22412b85bcdaf54aeba92ea37428c"},
+ {file = "wrapt-1.16.0-cp37-cp37m-win_amd64.whl", hash = "sha256:66dfbaa7cfa3eb707bbfcd46dab2bc6207b005cbc9caa2199bcbc81d95071a00"},
+ {file = "wrapt-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1dd50a2696ff89f57bd8847647a1c363b687d3d796dc30d4dd4a9d1689a706f0"},
+ {file = "wrapt-1.16.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:44a2754372e32ab315734c6c73b24351d06e77ffff6ae27d2ecf14cf3d229202"},
+ {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e9723528b9f787dc59168369e42ae1c3b0d3fadb2f1a71de14531d321ee05b0"},
+ {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbed418ba5c3dce92619656802cc5355cb679e58d0d89b50f116e4a9d5a9603e"},
+ {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:941988b89b4fd6b41c3f0bfb20e92bd23746579736b7343283297c4c8cbae68f"},
+ {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6a42cd0cfa8ffc1915aef79cb4284f6383d8a3e9dcca70c445dcfdd639d51267"},
+ {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1ca9b6085e4f866bd584fb135a041bfc32cab916e69f714a7d1d397f8c4891ca"},
+ {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5e49454f19ef621089e204f862388d29e6e8d8b162efce05208913dde5b9ad6"},
+ {file = "wrapt-1.16.0-cp38-cp38-win32.whl", hash = "sha256:c31f72b1b6624c9d863fc095da460802f43a7c6868c5dda140f51da24fd47d7b"},
+ {file = "wrapt-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:490b0ee15c1a55be9c1bd8609b8cecd60e325f0575fc98f50058eae366e01f41"},
+ {file = "wrapt-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9b201ae332c3637a42f02d1045e1d0cccfdc41f1f2f801dafbaa7e9b4797bfc2"},
+ {file = "wrapt-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2076fad65c6736184e77d7d4729b63a6d1ae0b70da4868adeec40989858eb3fb"},
+ {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5cd603b575ebceca7da5a3a251e69561bec509e0b46e4993e1cac402b7247b8"},
+ {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b47cfad9e9bbbed2339081f4e346c93ecd7ab504299403320bf85f7f85c7d46c"},
+ {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8212564d49c50eb4565e502814f694e240c55551a5f1bc841d4fcaabb0a9b8a"},
+ {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5f15814a33e42b04e3de432e573aa557f9f0f56458745c2074952f564c50e664"},
+ {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db2e408d983b0e61e238cf579c09ef7020560441906ca990fe8412153e3b291f"},
+ {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:edfad1d29c73f9b863ebe7082ae9321374ccb10879eeabc84ba3b69f2579d537"},
+ {file = "wrapt-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed867c42c268f876097248e05b6117a65bcd1e63b779e916fe2e33cd6fd0d3c3"},
+ {file = "wrapt-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:eb1b046be06b0fce7249f1d025cd359b4b80fc1c3e24ad9eca33e0dcdb2e4a35"},
+ {file = "wrapt-1.16.0-py3-none-any.whl", hash = "sha256:6906c4100a8fcbf2fa735f6059214bb13b97f75b1a61777fcf6432121ef12ef1"},
+ {file = "wrapt-1.16.0.tar.gz", hash = "sha256:5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d"},
+]
+
+[[package]]
+name = "yarl"
+version = "1.13.1"
+description = "Yet another URL library"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "yarl-1.13.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:82e692fb325013a18a5b73a4fed5a1edaa7c58144dc67ad9ef3d604eccd451ad"},
+ {file = "yarl-1.13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df4e82e68f43a07735ae70a2d84c0353e58e20add20ec0af611f32cd5ba43fb4"},
+ {file = "yarl-1.13.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ec9dd328016d8d25702a24ee274932aebf6be9787ed1c28d021945d264235b3c"},
+ {file = "yarl-1.13.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5820bd4178e6a639b3ef1db8b18500a82ceab6d8b89309e121a6859f56585b05"},
+ {file = "yarl-1.13.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:86c438ce920e089c8c2388c7dcc8ab30dfe13c09b8af3d306bcabb46a053d6f7"},
+ {file = "yarl-1.13.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3de86547c820e4f4da4606d1c8ab5765dd633189791f15247706a2eeabc783ae"},
+ {file = "yarl-1.13.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ca53632007c69ddcdefe1e8cbc3920dd88825e618153795b57e6ebcc92e752a"},
+ {file = "yarl-1.13.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d4ee1d240b84e2f213565f0ec08caef27a0e657d4c42859809155cf3a29d1735"},
+ {file = "yarl-1.13.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c49f3e379177f4477f929097f7ed4b0622a586b0aa40c07ac8c0f8e40659a1ac"},
+ {file = "yarl-1.13.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:5c5e32fef09ce101fe14acd0f498232b5710effe13abac14cd95de9c274e689e"},
+ {file = "yarl-1.13.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:ab9524e45ee809a083338a749af3b53cc7efec458c3ad084361c1dbf7aaf82a2"},
+ {file = "yarl-1.13.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:b1481c048fe787f65e34cb06f7d6824376d5d99f1231eae4778bbe5c3831076d"},
+ {file = "yarl-1.13.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:31497aefd68036d8e31bfbacef915826ca2e741dbb97a8d6c7eac66deda3b606"},
+ {file = "yarl-1.13.1-cp310-cp310-win32.whl", hash = "sha256:1fa56f34b2236f5192cb5fceba7bbb09620e5337e0b6dfe2ea0ddbd19dd5b154"},
+ {file = "yarl-1.13.1-cp310-cp310-win_amd64.whl", hash = "sha256:1bbb418f46c7f7355084833051701b2301092e4611d9e392360c3ba2e3e69f88"},
+ {file = "yarl-1.13.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:216a6785f296169ed52cd7dcdc2612f82c20f8c9634bf7446327f50398732a51"},
+ {file = "yarl-1.13.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:40c6e73c03a6befb85b72da213638b8aaa80fe4136ec8691560cf98b11b8ae6e"},
+ {file = "yarl-1.13.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2430cf996113abe5aee387d39ee19529327205cda975d2b82c0e7e96e5fdabdc"},
+ {file = "yarl-1.13.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9fb4134cc6e005b99fa29dbc86f1ea0a298440ab6b07c6b3ee09232a3b48f495"},
+ {file = "yarl-1.13.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:309c104ecf67626c033845b860d31594a41343766a46fa58c3309c538a1e22b2"},
+ {file = "yarl-1.13.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f90575e9fe3aae2c1e686393a9689c724cd00045275407f71771ae5d690ccf38"},
+ {file = "yarl-1.13.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d2e1626be8712333a9f71270366f4a132f476ffbe83b689dd6dc0d114796c74"},
+ {file = "yarl-1.13.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b66c87da3c6da8f8e8b648878903ca54589038a0b1e08dde2c86d9cd92d4ac9"},
+ {file = "yarl-1.13.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cf1ad338620249f8dd6d4b6a91a69d1f265387df3697ad5dc996305cf6c26fb2"},
+ {file = "yarl-1.13.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9915300fe5a0aa663c01363db37e4ae8e7c15996ebe2c6cce995e7033ff6457f"},
+ {file = "yarl-1.13.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:703b0f584fcf157ef87816a3c0ff868e8c9f3c370009a8b23b56255885528f10"},
+ {file = "yarl-1.13.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:1d8e3ca29f643dd121f264a7c89f329f0fcb2e4461833f02de6e39fef80f89da"},
+ {file = "yarl-1.13.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7055bbade838d68af73aea13f8c86588e4bcc00c2235b4b6d6edb0dbd174e246"},
+ {file = "yarl-1.13.1-cp311-cp311-win32.whl", hash = "sha256:a3442c31c11088e462d44a644a454d48110f0588de830921fd201060ff19612a"},
+ {file = "yarl-1.13.1-cp311-cp311-win_amd64.whl", hash = "sha256:81bad32c8f8b5897c909bf3468bf601f1b855d12f53b6af0271963ee67fff0d2"},
+ {file = "yarl-1.13.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:f452cc1436151387d3d50533523291d5f77c6bc7913c116eb985304abdbd9ec9"},
+ {file = "yarl-1.13.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:9cec42a20eae8bebf81e9ce23fb0d0c729fc54cf00643eb251ce7c0215ad49fe"},
+ {file = "yarl-1.13.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d959fe96e5c2712c1876d69af0507d98f0b0e8d81bee14cfb3f6737470205419"},
+ {file = "yarl-1.13.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b8c837ab90c455f3ea8e68bee143472ee87828bff19ba19776e16ff961425b57"},
+ {file = "yarl-1.13.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:94a993f976cdcb2dc1b855d8b89b792893220db8862d1a619efa7451817c836b"},
+ {file = "yarl-1.13.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2b2442a415a5f4c55ced0fade7b72123210d579f7d950e0b5527fc598866e62c"},
+ {file = "yarl-1.13.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3fdbf0418489525231723cdb6c79e7738b3cbacbaed2b750cb033e4ea208f220"},
+ {file = "yarl-1.13.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6b7f6e699304717fdc265a7e1922561b02a93ceffdaefdc877acaf9b9f3080b8"},
+ {file = "yarl-1.13.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bcd5bf4132e6a8d3eb54b8d56885f3d3a38ecd7ecae8426ecf7d9673b270de43"},
+ {file = "yarl-1.13.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:2a93a4557f7fc74a38ca5a404abb443a242217b91cd0c4840b1ebedaad8919d4"},
+ {file = "yarl-1.13.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:22b739f99c7e4787922903f27a892744189482125cc7b95b747f04dd5c83aa9f"},
+ {file = "yarl-1.13.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:2db874dd1d22d4c2c657807562411ffdfabec38ce4c5ce48b4c654be552759dc"},
+ {file = "yarl-1.13.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:4feaaa4742517eaceafcbe74595ed335a494c84634d33961214b278126ec1485"},
+ {file = "yarl-1.13.1-cp312-cp312-win32.whl", hash = "sha256:bbf9c2a589be7414ac4a534d54e4517d03f1cbb142c0041191b729c2fa23f320"},
+ {file = "yarl-1.13.1-cp312-cp312-win_amd64.whl", hash = "sha256:d07b52c8c450f9366c34aa205754355e933922c79135125541daae6cbf31c799"},
+ {file = "yarl-1.13.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:95c6737f28069153c399d875317f226bbdea939fd48a6349a3b03da6829fb550"},
+ {file = "yarl-1.13.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:cd66152561632ed4b2a9192e7f8e5a1d41e28f58120b4761622e0355f0fe034c"},
+ {file = "yarl-1.13.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6a2acde25be0cf9be23a8f6cbd31734536a264723fca860af3ae5e89d771cd71"},
+ {file = "yarl-1.13.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9a18595e6a2ee0826bf7dfdee823b6ab55c9b70e8f80f8b77c37e694288f5de1"},
+ {file = "yarl-1.13.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a31d21089894942f7d9a8df166b495101b7258ff11ae0abec58e32daf8088813"},
+ {file = "yarl-1.13.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:45f209fb4bbfe8630e3d2e2052535ca5b53d4ce2d2026bed4d0637b0416830da"},
+ {file = "yarl-1.13.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f722f30366474a99745533cc4015b1781ee54b08de73260b2bbe13316079851"},
+ {file = "yarl-1.13.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f3bf60444269345d712838bb11cc4eadaf51ff1a364ae39ce87a5ca8ad3bb2c8"},
+ {file = "yarl-1.13.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:942c80a832a79c3707cca46bd12ab8aa58fddb34b1626d42b05aa8f0bcefc206"},
+ {file = "yarl-1.13.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:44b07e1690f010c3c01d353b5790ec73b2f59b4eae5b0000593199766b3f7a5c"},
+ {file = "yarl-1.13.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:396e59b8de7e4d59ff5507fb4322d2329865b909f29a7ed7ca37e63ade7f835c"},
+ {file = "yarl-1.13.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:3bb83a0f12701c0b91112a11148b5217617982e1e466069d0555be9b372f2734"},
+ {file = "yarl-1.13.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c92b89bffc660f1274779cb6fbb290ec1f90d6dfe14492523a0667f10170de26"},
+ {file = "yarl-1.13.1-cp313-cp313-win32.whl", hash = "sha256:269c201bbc01d2cbba5b86997a1e0f73ba5e2f471cfa6e226bcaa7fd664b598d"},
+ {file = "yarl-1.13.1-cp313-cp313-win_amd64.whl", hash = "sha256:1d0828e17fa701b557c6eaed5edbd9098eb62d8838344486248489ff233998b8"},
+ {file = "yarl-1.13.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:8be8cdfe20787e6a5fcbd010f8066227e2bb9058331a4eccddec6c0db2bb85b2"},
+ {file = "yarl-1.13.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:08d7148ff11cb8e886d86dadbfd2e466a76d5dd38c7ea8ebd9b0e07946e76e4b"},
+ {file = "yarl-1.13.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4afdf84610ca44dcffe8b6c22c68f309aff96be55f5ea2fa31c0c225d6b83e23"},
+ {file = "yarl-1.13.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0d12fe78dcf60efa205e9a63f395b5d343e801cf31e5e1dda0d2c1fb618073d"},
+ {file = "yarl-1.13.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:298c1eecfd3257aa16c0cb0bdffb54411e3e831351cd69e6b0739be16b1bdaa8"},
+ {file = "yarl-1.13.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c14c16831b565707149c742d87a6203eb5597f4329278446d5c0ae7a1a43928e"},
+ {file = "yarl-1.13.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a9bacedbb99685a75ad033fd4de37129449e69808e50e08034034c0bf063f99"},
+ {file = "yarl-1.13.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:658e8449b84b92a4373f99305de042b6bd0d19bf2080c093881e0516557474a5"},
+ {file = "yarl-1.13.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:373f16f38721c680316a6a00ae21cc178e3a8ef43c0227f88356a24c5193abd6"},
+ {file = "yarl-1.13.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:45d23c4668d4925688e2ea251b53f36a498e9ea860913ce43b52d9605d3d8177"},
+ {file = "yarl-1.13.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f7917697bcaa3bc3e83db91aa3a0e448bf5cde43c84b7fc1ae2427d2417c0224"},
+ {file = "yarl-1.13.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:5989a38ba1281e43e4663931a53fbf356f78a0325251fd6af09dd03b1d676a09"},
+ {file = "yarl-1.13.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:11b3ca8b42a024513adce810385fcabdd682772411d95bbbda3b9ed1a4257644"},
+ {file = "yarl-1.13.1-cp38-cp38-win32.whl", hash = "sha256:dcaef817e13eafa547cdfdc5284fe77970b891f731266545aae08d6cce52161e"},
+ {file = "yarl-1.13.1-cp38-cp38-win_amd64.whl", hash = "sha256:7addd26594e588503bdef03908fc207206adac5bd90b6d4bc3e3cf33a829f57d"},
+ {file = "yarl-1.13.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a0ae6637b173d0c40b9c1462e12a7a2000a71a3258fa88756a34c7d38926911c"},
+ {file = "yarl-1.13.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:576365c9f7469e1f6124d67b001639b77113cfd05e85ce0310f5f318fd02fe85"},
+ {file = "yarl-1.13.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:78f271722423b2d4851cf1f4fa1a1c4833a128d020062721ba35e1a87154a049"},
+ {file = "yarl-1.13.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9d74f3c335cfe9c21ea78988e67f18eb9822f5d31f88b41aec3a1ec5ecd32da5"},
+ {file = "yarl-1.13.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1891d69a6ba16e89473909665cd355d783a8a31bc84720902c5911dbb6373465"},
+ {file = "yarl-1.13.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fb382fd7b4377363cc9f13ba7c819c3c78ed97c36a82f16f3f92f108c787cbbf"},
+ {file = "yarl-1.13.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c8854b9f80693d20cec797d8e48a848c2fb273eb6f2587b57763ccba3f3bd4b"},
+ {file = "yarl-1.13.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bbf2c3f04ff50f16404ce70f822cdc59760e5e2d7965905f0e700270feb2bbfc"},
+ {file = "yarl-1.13.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:fb9f59f3848edf186a76446eb8bcf4c900fe147cb756fbbd730ef43b2e67c6a7"},
+ {file = "yarl-1.13.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:ef9b85fa1bc91c4db24407e7c4da93a5822a73dd4513d67b454ca7064e8dc6a3"},
+ {file = "yarl-1.13.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:098b870c18f1341786f290b4d699504e18f1cd050ed179af8123fd8232513424"},
+ {file = "yarl-1.13.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:8c723c91c94a3bc8033dd2696a0f53e5d5f8496186013167bddc3fb5d9df46a3"},
+ {file = "yarl-1.13.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:44a4c40a6f84e4d5955b63462a0e2a988f8982fba245cf885ce3be7618f6aa7d"},
+ {file = "yarl-1.13.1-cp39-cp39-win32.whl", hash = "sha256:84bbcdcf393139f0abc9f642bf03f00cac31010f3034faa03224a9ef0bb74323"},
+ {file = "yarl-1.13.1-cp39-cp39-win_amd64.whl", hash = "sha256:fc2931ac9ce9c61c9968989ec831d3a5e6fcaaff9474e7cfa8de80b7aff5a093"},
+ {file = "yarl-1.13.1-py3-none-any.whl", hash = "sha256:6a5185ad722ab4dd52d5fb1f30dcc73282eb1ed494906a92d1a228d3f89607b0"},
+ {file = "yarl-1.13.1.tar.gz", hash = "sha256:ec8cfe2295f3e5e44c51f57272afbd69414ae629ec7c6b27f5a410efc78b70a0"},
+]
+
+[package.dependencies]
+idna = ">=2.0"
+multidict = ">=4.0"
+
+[metadata]
+lock-version = "2.0"
+python-versions = "^3.12"
+content-hash = "852078fa7a63988bf414e1fd2969fa3ec29f915eaeebe4fbe2e31ae4899a4d74"
diff --git a/assets/arc-0062/poetry.toml b/assets/arc-0062/poetry.toml
new file mode 100644
index 000000000..ab1033bd3
--- /dev/null
+++ b/assets/arc-0062/poetry.toml
@@ -0,0 +1,2 @@
+[virtualenvs]
+in-project = true
diff --git a/assets/arc-0062/pyproject.toml b/assets/arc-0062/pyproject.toml
new file mode 100644
index 000000000..527883092
--- /dev/null
+++ b/assets/arc-0062/pyproject.toml
@@ -0,0 +1,64 @@
+[tool.poetry]
+name = "asa-circulating-supply"
+version = "0.1.0"
+description = "Algorand smart contracts"
+authors = ["cusma "]
+readme = "README.md"
+
+[tool.poetry.dependencies]
+python = "^3.12"
+algokit-utils = "^2.3.0"
+python-dotenv = "^1.0.0"
+algorand-python = "^2.1.0"
+algorand-python-testing = "^0.4.1"
+
+[tool.poetry.group.dev.dependencies]
+algokit-client-generator = "^1.1.6"
+black = {extras = ["d"], version = "*"}
+ruff = "^0.6.8"
+mypy = "*"
+pytest = "*"
+pytest-cov = "*"
+pip-audit = "*"
+pre-commit = "*"
+puyapy = "*"
+
+[build-system]
+requires = ["poetry-core"]
+build-backend = "poetry.core.masonry.api"
+
+[tool.ruff]
+line-length = 120
+select = ["E", "F", "ANN", "UP", "N", "C4", "B", "A", "YTT", "W", "FBT", "Q", "RUF", "I"]
+ignore = [
+ "ANN101", # no type for self
+ "ANN102", # no type for cls
+]
+unfixable = ["B", "RUF"]
+
+[tool.ruff.flake8-annotations]
+allow-star-arg-any = true
+suppress-none-returning = true
+
+[tool.pytest.ini_options]
+pythonpath = ["smart_contracts", "tests"]
+
+[tool.mypy]
+files = "smart_contracts/"
+python_version = "3.12"
+disallow_any_generics = true
+disallow_subclassing_any = true
+disallow_untyped_calls = true
+disallow_untyped_defs = true
+disallow_incomplete_defs = true
+check_untyped_defs = true
+disallow_untyped_decorators = true
+warn_redundant_casts = true
+warn_unused_ignores = true
+warn_return_any = true
+strict_equality = true
+strict_concatenate = true
+disallow_any_unimported = true
+disallow_any_expr = true
+disallow_any_decorated = true
+disallow_any_explicit = true
diff --git a/assets/arc-0062/smart_contracts/__init__.py b/assets/arc-0062/smart_contracts/__init__.py
new file mode 100644
index 000000000..e69de29bb
diff --git a/assets/arc-0062/smart_contracts/__main__.py b/assets/arc-0062/smart_contracts/__main__.py
new file mode 100644
index 000000000..ab2e910b8
--- /dev/null
+++ b/assets/arc-0062/smart_contracts/__main__.py
@@ -0,0 +1,64 @@
+import logging
+import sys
+from pathlib import Path
+
+from dotenv import load_dotenv
+
+from smart_contracts._helpers.build import build
+from smart_contracts._helpers.config import contracts
+from smart_contracts._helpers.deploy import deploy
+
+# Uncomment the following lines to enable auto generation of AVM Debugger compliant sourcemap and simulation trace file.
+# Learn more about using AlgoKit AVM Debugger to debug your TEAL source codes and inspect various kinds of
+# Algorand transactions in atomic groups -> https://github.com/algorandfoundation/algokit-avm-vscode-debugger
+# from algokit_utils.config import config
+# config.configure(debug=True, trace_all=True)
+logging.basicConfig(
+ level=logging.DEBUG, format="%(asctime)s %(levelname)-10s: %(message)s"
+)
+logger = logging.getLogger(__name__)
+logger.info("Loading .env")
+# For manual script execution (bypassing `algokit project deploy`) with a custom .env,
+# modify `load_dotenv()` accordingly. For example, `load_dotenv('.env.localnet')`.
+load_dotenv()
+root_path = Path(__file__).parent
+
+
+def main(action: str) -> None:
+ artifact_path = root_path / "artifacts"
+ match action:
+ case "build":
+ for contract in contracts:
+ logger.info(f"Building app at {contract.path}")
+ build(artifact_path / contract.name, contract.path)
+ case "deploy":
+ for contract in contracts:
+ logger.info(f"Deploying app {contract.name}")
+ output_dir = artifact_path / contract.name
+ app_spec_file_name = next(
+ (
+ file.name
+ for file in output_dir.iterdir()
+ if file.is_file() and file.suffixes == [".arc32", ".json"]
+ ),
+ None,
+ )
+ if app_spec_file_name is None:
+ raise Exception("Could not deploy app, .arc32.json file not found")
+ app_spec_path = output_dir / app_spec_file_name
+ if contract.deploy:
+ deploy(app_spec_path, contract.deploy)
+ case "all":
+ for contract in contracts:
+ logger.info(f"Building app at {contract.path}")
+ app_spec_path = build(artifact_path / contract.name, contract.path)
+ logger.info(f"Deploying {contract.path.name}")
+ if contract.deploy:
+ deploy(app_spec_path, contract.deploy)
+
+
+if __name__ == "__main__":
+ if len(sys.argv) > 1:
+ main(sys.argv[1])
+ else:
+ main("all")
diff --git a/assets/arc-0062/smart_contracts/_helpers/__init__.py b/assets/arc-0062/smart_contracts/_helpers/__init__.py
new file mode 100644
index 000000000..e69de29bb
diff --git a/assets/arc-0062/smart_contracts/_helpers/build.py b/assets/arc-0062/smart_contracts/_helpers/build.py
new file mode 100644
index 000000000..771b58575
--- /dev/null
+++ b/assets/arc-0062/smart_contracts/_helpers/build.py
@@ -0,0 +1,74 @@
+import logging
+import subprocess
+from pathlib import Path
+from shutil import rmtree
+
+logger = logging.getLogger(__name__)
+deployment_extension = "py"
+
+
+def _get_output_path(output_dir: Path, deployment_extension: str) -> Path:
+ return output_dir / Path(
+ "{contract_name}"
+ + ("_client" if deployment_extension == "py" else "Client")
+ + f".{deployment_extension}"
+ )
+
+
+def build(output_dir: Path, contract_path: Path) -> Path:
+ output_dir = output_dir.resolve()
+ if output_dir.exists():
+ rmtree(output_dir)
+ output_dir.mkdir(exist_ok=True, parents=True)
+ logger.info(f"Exporting {contract_path} to {output_dir}")
+
+ build_result = subprocess.run(
+ [
+ "algokit",
+ "--no-color",
+ "compile",
+ "python",
+ contract_path.absolute(),
+ f"--out-dir={output_dir}",
+ "--output-arc32",
+ ],
+ stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT,
+ text=True,
+ )
+ if build_result.returncode:
+ raise Exception(f"Could not build contract:\n{build_result.stdout}")
+
+ app_spec_file_names = [file.name for file in output_dir.glob("*.arc32.json")]
+
+ for app_spec_file_name in app_spec_file_names:
+ if app_spec_file_name is None:
+ raise Exception(
+ "Could not generate typed client, .arc32.json file not found"
+ )
+ print(app_spec_file_name)
+ generate_result = subprocess.run(
+ [
+ "algokit",
+ "generate",
+ "client",
+ output_dir,
+ "--output",
+ _get_output_path(output_dir, deployment_extension),
+ ],
+ stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT,
+ text=True,
+ )
+ if generate_result.returncode:
+ if "No such command" in generate_result.stdout:
+ raise Exception(
+ "Could not generate typed client, requires AlgoKit 2.0.0 or "
+ "later. Please update AlgoKit"
+ )
+ else:
+ raise Exception(
+ f"Could not generate typed client:\n{generate_result.stdout}"
+ )
+
+ return output_dir / app_spec_file_name
diff --git a/assets/arc-0062/smart_contracts/_helpers/config.py b/assets/arc-0062/smart_contracts/_helpers/config.py
new file mode 100644
index 000000000..8f3ca933e
--- /dev/null
+++ b/assets/arc-0062/smart_contracts/_helpers/config.py
@@ -0,0 +1,61 @@
+import dataclasses
+import importlib
+from collections.abc import Callable
+from pathlib import Path
+
+from algokit_utils import Account, ApplicationSpecification
+from algosdk.v2client.algod import AlgodClient
+from algosdk.v2client.indexer import IndexerClient
+
+
+@dataclasses.dataclass
+class SmartContract:
+ path: Path
+ name: str
+ deploy: (
+ Callable[[AlgodClient, IndexerClient, ApplicationSpecification, Account], None]
+ | None
+ ) = None
+
+
+def import_contract(folder: Path) -> Path:
+ """Imports the contract from a folder if it exists."""
+ contract_path = folder / "contract.py"
+ if contract_path.exists():
+ return contract_path
+ else:
+ raise Exception(f"Contract not found in {folder}")
+
+
+def import_deploy_if_exists(
+ folder: Path,
+) -> (
+ Callable[[AlgodClient, IndexerClient, ApplicationSpecification, Account], None]
+ | None
+):
+ """Imports the deploy function from a folder if it exists."""
+ try:
+ deploy_module = importlib.import_module(
+ f"{folder.parent.name}.{folder.name}.deploy_config"
+ )
+ return deploy_module.deploy # type: ignore
+ except ImportError:
+ return None
+
+
+def has_contract_file(directory: Path) -> bool:
+ """Checks whether the directory contains contract.py file."""
+ return (directory / "contract.py").exists()
+
+
+# define contracts to build and/or deploy
+base_dir = Path("smart_contracts")
+contracts = [
+ SmartContract(
+ path=import_contract(folder),
+ name=folder.name,
+ deploy=import_deploy_if_exists(folder),
+ )
+ for folder in base_dir.iterdir()
+ if folder.is_dir() and has_contract_file(folder)
+]
diff --git a/assets/arc-0062/smart_contracts/_helpers/deploy.py b/assets/arc-0062/smart_contracts/_helpers/deploy.py
new file mode 100644
index 000000000..10185a9e4
--- /dev/null
+++ b/assets/arc-0062/smart_contracts/_helpers/deploy.py
@@ -0,0 +1,53 @@
+# mypy: disable-error-code="no-untyped-call, misc"
+
+
+import logging
+from collections.abc import Callable
+from pathlib import Path
+
+from algokit_utils import (
+ Account,
+ ApplicationSpecification,
+ EnsureBalanceParameters,
+ ensure_funded,
+ get_account,
+ get_algod_client,
+ get_indexer_client,
+)
+from algosdk.util import algos_to_microalgos
+from algosdk.v2client.algod import AlgodClient
+from algosdk.v2client.indexer import IndexerClient
+
+logger = logging.getLogger(__name__)
+
+
+def deploy(
+ app_spec_path: Path,
+ deploy_callback: Callable[
+ [AlgodClient, IndexerClient, ApplicationSpecification, Account], None
+ ],
+ deployer_initial_funds: int = 2,
+) -> None:
+ # get clients
+ # by default client configuration is loaded from environment variables
+ algod_client = get_algod_client()
+ indexer_client = get_indexer_client()
+
+ # get app spec
+ app_spec = ApplicationSpecification.from_json(app_spec_path.read_text())
+
+ # get deployer account by name
+ deployer = get_account(algod_client, "DEPLOYER", fund_with_algos=0)
+
+ minimum_funds_micro_algos = algos_to_microalgos(deployer_initial_funds)
+ ensure_funded(
+ algod_client,
+ EnsureBalanceParameters(
+ account_to_fund=deployer,
+ min_spending_balance_micro_algos=minimum_funds_micro_algos,
+ min_funding_increment_micro_algos=minimum_funds_micro_algos,
+ ),
+ )
+
+ # use provided callback to deploy the app
+ deploy_callback(algod_client, indexer_client, app_spec, deployer)
diff --git a/assets/arc-0062/smart_contracts/artifacts/circulating_supply/CirculatingSupply.approval.teal b/assets/arc-0062/smart_contracts/artifacts/circulating_supply/CirculatingSupply.approval.teal
new file mode 100644
index 000000000..49260d864
--- /dev/null
+++ b/assets/arc-0062/smart_contracts/artifacts/circulating_supply/CirculatingSupply.approval.teal
@@ -0,0 +1,512 @@
+#pragma version 10
+
+smart_contracts.circulating_supply.contract.CirculatingSupply.approval_program:
+ txn ApplicationID
+ bnz main_entrypoint@2
+ callsub __init__
+
+main_entrypoint@2:
+ callsub __puya_arc4_router__
+ return
+
+
+// smart_contracts.circulating_supply.contract.CirculatingSupply.__puya_arc4_router__() -> uint64:
+__puya_arc4_router__:
+ // smart_contracts/circulating_supply/contract.py:20
+ // class CirculatingSupply(ARC4Contract):
+ proto 0 1
+ txn NumAppArgs
+ bz __puya_arc4_router___bare_routing@7
+ method "set_asset(uint64)void"
+ method "set_not_circulating_address(address,string)void"
+ method "arc62_get_circulating_supply(uint64)uint64"
+ txna ApplicationArgs 0
+ match __puya_arc4_router___set_asset_route@2 __puya_arc4_router___set_not_circulating_address_route@3 __puya_arc4_router___arc62_get_circulating_supply_route@4
+ int 0
+ retsub
+
+__puya_arc4_router___set_asset_route@2:
+ // smart_contracts/circulating_supply/contract.py:36
+ // @abimethod()
+ txn OnCompletion
+ !
+ assert // OnCompletion is NoOp
+ txn ApplicationID
+ assert // is not creating
+ // smart_contracts/circulating_supply/contract.py:20
+ // class CirculatingSupply(ARC4Contract):
+ txna ApplicationArgs 1
+ btoi
+ // smart_contracts/circulating_supply/contract.py:36
+ // @abimethod()
+ callsub set_asset
+ int 1
+ retsub
+
+__puya_arc4_router___set_not_circulating_address_route@3:
+ // smart_contracts/circulating_supply/contract.py:50
+ // @abimethod()
+ txn OnCompletion
+ !
+ assert // OnCompletion is NoOp
+ txn ApplicationID
+ assert // is not creating
+ // smart_contracts/circulating_supply/contract.py:20
+ // class CirculatingSupply(ARC4Contract):
+ txna ApplicationArgs 1
+ txna ApplicationArgs 2
+ extract 2 0
+ // smart_contracts/circulating_supply/contract.py:50
+ // @abimethod()
+ callsub set_not_circulating_address
+ int 1
+ retsub
+
+__puya_arc4_router___arc62_get_circulating_supply_route@4:
+ // smart_contracts/circulating_supply/contract.py:74
+ // @abimethod(readonly=True)
+ txn OnCompletion
+ !
+ assert // OnCompletion is NoOp
+ txn ApplicationID
+ assert // is not creating
+ // smart_contracts/circulating_supply/contract.py:20
+ // class CirculatingSupply(ARC4Contract):
+ txna ApplicationArgs 1
+ btoi
+ // smart_contracts/circulating_supply/contract.py:74
+ // @abimethod(readonly=True)
+ callsub arc62_get_circulating_supply
+ itob
+ byte 0x151f7c75
+ swap
+ concat
+ log
+ int 1
+ retsub
+
+__puya_arc4_router___bare_routing@7:
+ // smart_contracts/circulating_supply/contract.py:20
+ // class CirculatingSupply(ARC4Contract):
+ txn OnCompletion
+ bnz __puya_arc4_router___after_if_else@11
+ txn ApplicationID
+ !
+ assert // is creating
+ int 1
+ retsub
+
+__puya_arc4_router___after_if_else@11:
+ // smart_contracts/circulating_supply/contract.py:20
+ // class CirculatingSupply(ARC4Contract):
+ int 0
+ retsub
+
+
+// smart_contracts.circulating_supply.contract.CirculatingSupply.set_asset(asset_id: uint64) -> void:
+set_asset:
+ // smart_contracts/circulating_supply/contract.py:36-37
+ // @abimethod()
+ // def set_asset(self, asset_id: UInt64) -> None:
+ proto 1 0
+ // smart_contracts/circulating_supply/contract.py:45-46
+ // # Preconditions
+ // assert Txn.sender == asset.manager and not self.asset_id, err.UNAUTHORIZED
+ txn Sender
+ frame_dig -1
+ asset_params_get AssetManager
+ assert // asset exists
+ ==
+ bz set_asset_bool_false@3
+ int 0
+ byte "asset_id"
+ app_global_get_ex
+ assert // check self.asset_id exists
+ bnz set_asset_bool_false@3
+ int 1
+ b set_asset_bool_merge@4
+
+set_asset_bool_false@3:
+ int 0
+
+set_asset_bool_merge@4:
+ // smart_contracts/circulating_supply/contract.py:45-46
+ // # Preconditions
+ // assert Txn.sender == asset.manager and not self.asset_id, err.UNAUTHORIZED
+ assert // Unauthorized
+ // smart_contracts/circulating_supply/contract.py:47-48
+ // # Effects
+ // self.asset_id = asset_id
+ byte "asset_id"
+ frame_dig -1
+ app_global_put
+ retsub
+
+
+// smart_contracts.circulating_supply.contract.CirculatingSupply.set_not_circulating_address(address: bytes, label: bytes) -> void:
+set_not_circulating_address:
+ // smart_contracts/circulating_supply/contract.py:50-51
+ // @abimethod()
+ // def set_not_circulating_address(self, address: Address, label: String) -> None:
+ proto 2 0
+ // smart_contracts/circulating_supply/contract.py:59
+ // asset = Asset(self.asset_id)
+ int 0
+ byte "asset_id"
+ app_global_get_ex
+ assert // check self.asset_id exists
+ // smart_contracts/circulating_supply/contract.py:60-61
+ // # Preconditions
+ // assert Txn.sender == asset.manager, err.UNAUTHORIZED
+ txn Sender
+ swap
+ dup
+ asset_params_get AssetManager
+ assert // asset exists
+ uncover 2
+ ==
+ assert // Unauthorized
+ // smart_contracts/circulating_supply/contract.py:62
+ // assert Account(address.bytes).is_opted_in(asset), err.NOT_OPTED_IN
+ frame_dig -2
+ len
+ int 32
+ ==
+ assert // Address length is 32 bytes
+ frame_dig -2
+ swap
+ asset_holding_get AssetBalance
+ bury 1
+ assert // Not Opted-In
+ // smart_contracts/circulating_supply/contract.py:65
+ // case cfg.NOT_CIRCULATING_LABEL_1:
+ byte "burned"
+ // smart_contracts/circulating_supply/contract.py:67
+ // case cfg.NOT_CIRCULATING_LABEL_2:
+ byte "locked"
+ // smart_contracts/circulating_supply/contract.py:69
+ // case cfg.NOT_CIRCULATING_LABEL_3:
+ byte "generic"
+ // smart_contracts/circulating_supply/contract.py:63-72
+ // # Effects
+ // match label:
+ // case cfg.NOT_CIRCULATING_LABEL_1:
+ // self.not_circulating_label_1.value = address
+ // case cfg.NOT_CIRCULATING_LABEL_2:
+ // self.not_circulating_label_2.value = address
+ // case cfg.NOT_CIRCULATING_LABEL_3:
+ // self.not_circulating_label_3.value = address
+ // case _:
+ // assert False, err.INVALID_LABEL
+ frame_dig -1
+ match set_not_circulating_address_switch_case_0@1 set_not_circulating_address_switch_case_1@2 set_not_circulating_address_switch_case_2@3
+ // smart_contracts/circulating_supply/contract.py:72
+ // assert False, err.INVALID_LABEL
+ err // Invalid Label
+
+set_not_circulating_address_switch_case_0@1:
+ // smart_contracts/circulating_supply/contract.py:66
+ // self.not_circulating_label_1.value = address
+ byte "burned"
+ frame_dig -2
+ app_global_put
+ b set_not_circulating_address_switch_case_next@5
+
+set_not_circulating_address_switch_case_1@2:
+ // smart_contracts/circulating_supply/contract.py:68
+ // self.not_circulating_label_2.value = address
+ byte "locked"
+ frame_dig -2
+ app_global_put
+ b set_not_circulating_address_switch_case_next@5
+
+set_not_circulating_address_switch_case_2@3:
+ // smart_contracts/circulating_supply/contract.py:70
+ // self.not_circulating_label_3.value = address
+ byte "generic"
+ frame_dig -2
+ app_global_put
+
+set_not_circulating_address_switch_case_next@5:
+ retsub
+
+
+// smart_contracts.circulating_supply.contract.CirculatingSupply.arc62_get_circulating_supply(asset_id: uint64) -> uint64:
+arc62_get_circulating_supply:
+ // smart_contracts/circulating_supply/contract.py:74-75
+ // @abimethod(readonly=True)
+ // def arc62_get_circulating_supply(self, asset_id: UInt64) -> UInt64:
+ proto 1 1
+ byte ""
+ dupn 2
+ // smart_contracts/circulating_supply/contract.py:86
+ // not_circulating_1 = Account(self.not_circulating_label_1.value.bytes)
+ int 0
+ byte "burned"
+ app_global_get_ex
+ swap
+ dup
+ uncover 2
+ assert // check self.not_circulating_label_1 exists
+ len
+ int 32
+ ==
+ assert // Address length is 32 bytes
+ // smart_contracts/circulating_supply/contract.py:87
+ // not_circulating_2 = Account(self.not_circulating_label_2.value.bytes)
+ int 0
+ byte "locked"
+ app_global_get_ex
+ swap
+ dup
+ uncover 2
+ assert // check self.not_circulating_label_2 exists
+ len
+ int 32
+ ==
+ assert // Address length is 32 bytes
+ // smart_contracts/circulating_supply/contract.py:88
+ // not_circulating_3 = Account(self.not_circulating_label_3.value.bytes)
+ int 0
+ byte "generic"
+ app_global_get_ex
+ swap
+ dup
+ uncover 2
+ assert // check self.not_circulating_label_3 exists
+ len
+ int 32
+ ==
+ assert // Address length is 32 bytes
+ // smart_contracts/circulating_supply/contract.py:89-90
+ // # Preconditions
+ // assert asset_id == self.asset_id, err.INVALID_ASSET_ID
+ int 0
+ byte "asset_id"
+ app_global_get_ex
+ assert // check self.asset_id exists
+ frame_dig -1
+ ==
+ assert // Invalid ASA ID
+ // smart_contracts/circulating_supply/contract.py:94
+ // if asset.reserve == Global.zero_address
+ frame_dig -1
+ asset_params_get AssetReserve
+ assert // asset exists
+ global ZeroAddress
+ ==
+ // smart_contracts/circulating_supply/contract.py:94-95
+ // if asset.reserve == Global.zero_address
+ // or not asset.reserve.is_opted_in(asset)
+ bnz arc62_get_circulating_supply_ternary_true@2
+ // smart_contracts/circulating_supply/contract.py:95
+ // or not asset.reserve.is_opted_in(asset)
+ frame_dig -1
+ asset_params_get AssetReserve
+ assert // asset exists
+ frame_dig -1
+ asset_holding_get AssetBalance
+ bury 1
+ bnz arc62_get_circulating_supply_ternary_false@3
+
+arc62_get_circulating_supply_ternary_true@2:
+ // smart_contracts/circulating_supply/contract.py:93
+ // UInt64(0)
+ int 0
+ frame_bury 2
+ b arc62_get_circulating_supply_ternary_merge@4
+
+arc62_get_circulating_supply_ternary_false@3:
+ // smart_contracts/circulating_supply/contract.py:96
+ // else asset.balance(asset.reserve)
+ frame_dig -1
+ asset_params_get AssetReserve
+ assert // asset exists
+ frame_dig -1
+ asset_holding_get AssetBalance
+ assert // account opted into asset
+ frame_bury 2
+
+arc62_get_circulating_supply_ternary_merge@4:
+ // smart_contracts/circulating_supply/contract.py:100
+ // if not_circulating_1 == Global.zero_address
+ frame_dig 3
+ global ZeroAddress
+ ==
+ // smart_contracts/circulating_supply/contract.py:100-101
+ // if not_circulating_1 == Global.zero_address
+ // or not not_circulating_1.is_opted_in(asset)
+ bnz arc62_get_circulating_supply_ternary_true@6
+ // smart_contracts/circulating_supply/contract.py:101
+ // or not not_circulating_1.is_opted_in(asset)
+ frame_dig 3
+ frame_dig -1
+ asset_holding_get AssetBalance
+ bury 1
+ bnz arc62_get_circulating_supply_ternary_false@7
+
+arc62_get_circulating_supply_ternary_true@6:
+ // smart_contracts/circulating_supply/contract.py:99
+ // UInt64(0)
+ int 0
+ frame_bury 0
+ b arc62_get_circulating_supply_ternary_merge@8
+
+arc62_get_circulating_supply_ternary_false@7:
+ // smart_contracts/circulating_supply/contract.py:102
+ // else asset.balance(not_circulating_1)
+ frame_dig 3
+ frame_dig -1
+ asset_holding_get AssetBalance
+ assert // account opted into asset
+ frame_bury 0
+
+arc62_get_circulating_supply_ternary_merge@8:
+ // smart_contracts/circulating_supply/contract.py:106
+ // if not_circulating_2 == Global.zero_address
+ frame_dig 4
+ global ZeroAddress
+ ==
+ // smart_contracts/circulating_supply/contract.py:106-107
+ // if not_circulating_2 == Global.zero_address
+ // or not not_circulating_2.is_opted_in(asset)
+ bnz arc62_get_circulating_supply_ternary_true@10
+ // smart_contracts/circulating_supply/contract.py:107
+ // or not not_circulating_2.is_opted_in(asset)
+ frame_dig 4
+ frame_dig -1
+ asset_holding_get AssetBalance
+ bury 1
+ bnz arc62_get_circulating_supply_ternary_false@11
+
+arc62_get_circulating_supply_ternary_true@10:
+ // smart_contracts/circulating_supply/contract.py:105
+ // UInt64(0)
+ int 0
+ frame_bury 1
+ b arc62_get_circulating_supply_ternary_merge@12
+
+arc62_get_circulating_supply_ternary_false@11:
+ // smart_contracts/circulating_supply/contract.py:108
+ // else asset.balance(not_circulating_2)
+ frame_dig 4
+ frame_dig -1
+ asset_holding_get AssetBalance
+ assert // account opted into asset
+ frame_bury 1
+
+arc62_get_circulating_supply_ternary_merge@12:
+ // smart_contracts/circulating_supply/contract.py:112
+ // if not_circulating_3 == Global.zero_address
+ frame_dig 5
+ global ZeroAddress
+ ==
+ // smart_contracts/circulating_supply/contract.py:112-113
+ // if not_circulating_3 == Global.zero_address
+ // or not not_circulating_3.is_opted_in(asset)
+ bnz arc62_get_circulating_supply_ternary_true@14
+ // smart_contracts/circulating_supply/contract.py:113
+ // or not not_circulating_3.is_opted_in(asset)
+ frame_dig 5
+ frame_dig -1
+ asset_holding_get AssetBalance
+ bury 1
+ bnz arc62_get_circulating_supply_ternary_false@15
+
+arc62_get_circulating_supply_ternary_true@14:
+ // smart_contracts/circulating_supply/contract.py:111
+ // UInt64(0)
+ int 0
+ b arc62_get_circulating_supply_ternary_merge@16
+
+arc62_get_circulating_supply_ternary_false@15:
+ // smart_contracts/circulating_supply/contract.py:114
+ // else asset.balance(not_circulating_3)
+ frame_dig 5
+ frame_dig -1
+ asset_holding_get AssetBalance
+ assert // account opted into asset
+
+arc62_get_circulating_supply_ternary_merge@16:
+ // smart_contracts/circulating_supply/contract.py:117
+ // asset.total
+ frame_dig -1
+ asset_params_get AssetTotal
+ assert // asset exists
+ // smart_contracts/circulating_supply/contract.py:117-118
+ // asset.total
+ // - reserve_balance
+ frame_dig 2
+ -
+ // smart_contracts/circulating_supply/contract.py:117-119
+ // asset.total
+ // - reserve_balance
+ // - not_circulating_balance_1
+ frame_dig 0
+ -
+ // smart_contracts/circulating_supply/contract.py:117-120
+ // asset.total
+ // - reserve_balance
+ // - not_circulating_balance_1
+ // - not_circulating_balance_2
+ frame_dig 1
+ -
+ // smart_contracts/circulating_supply/contract.py:117-121
+ // asset.total
+ // - reserve_balance
+ // - not_circulating_balance_1
+ // - not_circulating_balance_2
+ // - not_circulating_balance_3
+ swap
+ -
+ // smart_contracts/circulating_supply/contract.py:116-122
+ // return (
+ // asset.total
+ // - reserve_balance
+ // - not_circulating_balance_1
+ // - not_circulating_balance_2
+ // - not_circulating_balance_3
+ // )
+ frame_bury 0
+ retsub
+
+
+// smart_contracts.circulating_supply.contract.CirculatingSupply.__init__() -> void:
+__init__:
+ // smart_contracts/circulating_supply/contract.py:23
+ // def __init__(self) -> None:
+ proto 0 0
+ // smart_contracts/circulating_supply/contract.py:24-25
+ // # Global State
+ // self.asset_id = UInt64()
+ byte "asset_id"
+ int 0
+ app_global_put
+ // smart_contracts/circulating_supply/contract.py:27
+ // Address(), key=cfg.NOT_CIRCULATING_LABEL_1
+ byte "burned"
+ global ZeroAddress
+ // smart_contracts/circulating_supply/contract.py:26-28
+ // self.not_circulating_label_1 = GlobalState(
+ // Address(), key=cfg.NOT_CIRCULATING_LABEL_1
+ // )
+ app_global_put
+ // smart_contracts/circulating_supply/contract.py:30
+ // Address(), key=cfg.NOT_CIRCULATING_LABEL_2
+ byte "locked"
+ global ZeroAddress
+ // smart_contracts/circulating_supply/contract.py:29-31
+ // self.not_circulating_label_2 = GlobalState(
+ // Address(), key=cfg.NOT_CIRCULATING_LABEL_2
+ // )
+ app_global_put
+ // smart_contracts/circulating_supply/contract.py:33
+ // Address(), key=cfg.NOT_CIRCULATING_LABEL_3
+ byte "generic"
+ global ZeroAddress
+ // smart_contracts/circulating_supply/contract.py:32-34
+ // self.not_circulating_label_3 = GlobalState(
+ // Address(), key=cfg.NOT_CIRCULATING_LABEL_3
+ // )
+ app_global_put
+ retsub
diff --git a/assets/arc-0062/smart_contracts/artifacts/circulating_supply/CirculatingSupply.arc32.json b/assets/arc-0062/smart_contracts/artifacts/circulating_supply/CirculatingSupply.arc32.json
new file mode 100644
index 000000000..e6230dd07
--- /dev/null
+++ b/assets/arc-0062/smart_contracts/artifacts/circulating_supply/CirculatingSupply.arc32.json
@@ -0,0 +1,122 @@
+{
+ "hints": {
+ "set_asset(uint64)void": {
+ "call_config": {
+ "no_op": "CALL"
+ }
+ },
+ "set_not_circulating_address(address,string)void": {
+ "call_config": {
+ "no_op": "CALL"
+ }
+ },
+ "arc62_get_circulating_supply(uint64)uint64": {
+ "read_only": true,
+ "call_config": {
+ "no_op": "CALL"
+ }
+ }
+ },
+ "source": {
+ "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgpzbWFydF9jb250cmFjdHMuY2lyY3VsYXRpbmdfc3VwcGx5LmNvbnRyYWN0LkNpcmN1bGF0aW5nU3VwcGx5LmFwcHJvdmFsX3Byb2dyYW06CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYm56IG1haW5fZW50cnlwb2ludEAyCiAgICBjYWxsc3ViIF9faW5pdF9fCgptYWluX2VudHJ5cG9pbnRAMjoKICAgIGNhbGxzdWIgX19wdXlhX2FyYzRfcm91dGVyX18KICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy5jaXJjdWxhdGluZ19zdXBwbHkuY29udHJhY3QuQ2lyY3VsYXRpbmdTdXBwbHkuX19wdXlhX2FyYzRfcm91dGVyX18oKSAtPiB1aW50NjQ6Cl9fcHV5YV9hcmM0X3JvdXRlcl9fOgogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weToyMAogICAgLy8gY2xhc3MgQ2lyY3VsYXRpbmdTdXBwbHkoQVJDNENvbnRyYWN0KToKICAgIHByb3RvIDAgMQogICAgdHhuIE51bUFwcEFyZ3MKICAgIGJ6IF9fcHV5YV9hcmM0X3JvdXRlcl9fX2JhcmVfcm91dGluZ0A3CiAgICBtZXRob2QgInNldF9hc3NldCh1aW50NjQpdm9pZCIKICAgIG1ldGhvZCAic2V0X25vdF9jaXJjdWxhdGluZ19hZGRyZXNzKGFkZHJlc3Msc3RyaW5nKXZvaWQiCiAgICBtZXRob2QgImFyYzYyX2dldF9jaXJjdWxhdGluZ19zdXBwbHkodWludDY0KXVpbnQ2NCIKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIG1hdGNoIF9fcHV5YV9hcmM0X3JvdXRlcl9fX3NldF9hc3NldF9yb3V0ZUAyIF9fcHV5YV9hcmM0X3JvdXRlcl9fX3NldF9ub3RfY2lyY3VsYXRpbmdfYWRkcmVzc19yb3V0ZUAzIF9fcHV5YV9hcmM0X3JvdXRlcl9fX2FyYzYyX2dldF9jaXJjdWxhdGluZ19zdXBwbHlfcm91dGVANAogICAgaW50IDAKICAgIHJldHN1YgoKX19wdXlhX2FyYzRfcm91dGVyX19fc2V0X2Fzc2V0X3JvdXRlQDI6CiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjM2CiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydCAvLyBpcyBub3QgY3JlYXRpbmcKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6MjAKICAgIC8vIGNsYXNzIENpcmN1bGF0aW5nU3VwcGx5KEFSQzRDb250cmFjdCk6CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjM2CiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIGNhbGxzdWIgc2V0X2Fzc2V0CiAgICBpbnQgMQogICAgcmV0c3ViCgpfX3B1eWFfYXJjNF9yb3V0ZXJfX19zZXRfbm90X2NpcmN1bGF0aW5nX2FkZHJlc3Nfcm91dGVAMzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6NTAKICAgIC8vIEBhYmltZXRob2QoKQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYXNzZXJ0IC8vIGlzIG5vdCBjcmVhdGluZwogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weToyMAogICAgLy8gY2xhc3MgQ2lyY3VsYXRpbmdTdXBwbHkoQVJDNENvbnRyYWN0KToKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGV4dHJhY3QgMiAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjUwCiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIGNhbGxzdWIgc2V0X25vdF9jaXJjdWxhdGluZ19hZGRyZXNzCiAgICBpbnQgMQogICAgcmV0c3ViCgpfX3B1eWFfYXJjNF9yb3V0ZXJfX19hcmM2Ml9nZXRfY2lyY3VsYXRpbmdfc3VwcGx5X3JvdXRlQDQ6CiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5Ojc0CiAgICAvLyBAYWJpbWV0aG9kKHJlYWRvbmx5PVRydWUpCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBhc3NlcnQgLy8gaXMgbm90IGNyZWF0aW5nCiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjIwCiAgICAvLyBjbGFzcyBDaXJjdWxhdGluZ1N1cHBseShBUkM0Q29udHJhY3QpOgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgYnRvaQogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weTo3NAogICAgLy8gQGFiaW1ldGhvZChyZWFkb25seT1UcnVlKQogICAgY2FsbHN1YiBhcmM2Ml9nZXRfY2lyY3VsYXRpbmdfc3VwcGx5CiAgICBpdG9iCiAgICBieXRlIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnQgMQogICAgcmV0c3ViCgpfX3B1eWFfYXJjNF9yb3V0ZXJfX19iYXJlX3JvdXRpbmdANzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6MjAKICAgIC8vIGNsYXNzIENpcmN1bGF0aW5nU3VwcGx5KEFSQzRDb250cmFjdCk6CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBibnogX19wdXlhX2FyYzRfcm91dGVyX19fYWZ0ZXJfaWZfZWxzZUAxMQogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgICEKICAgIGFzc2VydCAvLyBpcyBjcmVhdGluZwogICAgaW50IDEKICAgIHJldHN1YgoKX19wdXlhX2FyYzRfcm91dGVyX19fYWZ0ZXJfaWZfZWxzZUAxMToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6MjAKICAgIC8vIGNsYXNzIENpcmN1bGF0aW5nU3VwcGx5KEFSQzRDb250cmFjdCk6CiAgICBpbnQgMAogICAgcmV0c3ViCgoKLy8gc21hcnRfY29udHJhY3RzLmNpcmN1bGF0aW5nX3N1cHBseS5jb250cmFjdC5DaXJjdWxhdGluZ1N1cHBseS5zZXRfYXNzZXQoYXNzZXRfaWQ6IHVpbnQ2NCkgLT4gdm9pZDoKc2V0X2Fzc2V0OgogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weTozNi0zNwogICAgLy8gQGFiaW1ldGhvZCgpCiAgICAvLyBkZWYgc2V0X2Fzc2V0KHNlbGYsIGFzc2V0X2lkOiBVSW50NjQpIC0+IE5vbmU6CiAgICBwcm90byAxIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6NDUtNDYKICAgIC8vICMgUHJlY29uZGl0aW9ucwogICAgLy8gYXNzZXJ0IFR4bi5zZW5kZXIgPT0gYXNzZXQubWFuYWdlciBhbmQgbm90IHNlbGYuYXNzZXRfaWQsIGVyci5VTkFVVEhPUklaRUQKICAgIHR4biBTZW5kZXIKICAgIGZyYW1lX2RpZyAtMQogICAgYXNzZXRfcGFyYW1zX2dldCBBc3NldE1hbmFnZXIKICAgIGFzc2VydCAvLyBhc3NldCBleGlzdHMKICAgID09CiAgICBieiBzZXRfYXNzZXRfYm9vbF9mYWxzZUAzCiAgICBpbnQgMAogICAgYnl0ZSAiYXNzZXRfaWQiCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYuYXNzZXRfaWQgZXhpc3RzCiAgICBibnogc2V0X2Fzc2V0X2Jvb2xfZmFsc2VAMwogICAgaW50IDEKICAgIGIgc2V0X2Fzc2V0X2Jvb2xfbWVyZ2VANAoKc2V0X2Fzc2V0X2Jvb2xfZmFsc2VAMzoKICAgIGludCAwCgpzZXRfYXNzZXRfYm9vbF9tZXJnZUA0OgogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weTo0NS00NgogICAgLy8gIyBQcmVjb25kaXRpb25zCiAgICAvLyBhc3NlcnQgVHhuLnNlbmRlciA9PSBhc3NldC5tYW5hZ2VyIGFuZCBub3Qgc2VsZi5hc3NldF9pZCwgZXJyLlVOQVVUSE9SSVpFRAogICAgYXNzZXJ0IC8vIFVuYXV0aG9yaXplZAogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weTo0Ny00OAogICAgLy8gIyBFZmZlY3RzCiAgICAvLyBzZWxmLmFzc2V0X2lkID0gYXNzZXRfaWQKICAgIGJ5dGUgImFzc2V0X2lkIgogICAgZnJhbWVfZGlnIC0xCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCgoKLy8gc21hcnRfY29udHJhY3RzLmNpcmN1bGF0aW5nX3N1cHBseS5jb250cmFjdC5DaXJjdWxhdGluZ1N1cHBseS5zZXRfbm90X2NpcmN1bGF0aW5nX2FkZHJlc3MoYWRkcmVzczogYnl0ZXMsIGxhYmVsOiBieXRlcykgLT4gdm9pZDoKc2V0X25vdF9jaXJjdWxhdGluZ19hZGRyZXNzOgogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weTo1MC01MQogICAgLy8gQGFiaW1ldGhvZCgpCiAgICAvLyBkZWYgc2V0X25vdF9jaXJjdWxhdGluZ19hZGRyZXNzKHNlbGYsIGFkZHJlc3M6IEFkZHJlc3MsIGxhYmVsOiBTdHJpbmcpIC0+IE5vbmU6CiAgICBwcm90byAyIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6NTkKICAgIC8vIGFzc2V0ID0gQXNzZXQoc2VsZi5hc3NldF9pZCkKICAgIGludCAwCiAgICBieXRlICJhc3NldF9pZCIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5hc3NldF9pZCBleGlzdHMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6NjAtNjEKICAgIC8vICMgUHJlY29uZGl0aW9ucwogICAgLy8gYXNzZXJ0IFR4bi5zZW5kZXIgPT0gYXNzZXQubWFuYWdlciwgZXJyLlVOQVVUSE9SSVpFRAogICAgdHhuIFNlbmRlcgogICAgc3dhcAogICAgZHVwCiAgICBhc3NldF9wYXJhbXNfZ2V0IEFzc2V0TWFuYWdlcgogICAgYXNzZXJ0IC8vIGFzc2V0IGV4aXN0cwogICAgdW5jb3ZlciAyCiAgICA9PQogICAgYXNzZXJ0IC8vIFVuYXV0aG9yaXplZAogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weTo2MgogICAgLy8gYXNzZXJ0IEFjY291bnQoYWRkcmVzcy5ieXRlcykuaXNfb3B0ZWRfaW4oYXNzZXQpLCBlcnIuTk9UX09QVEVEX0lOCiAgICBmcmFtZV9kaWcgLTIKICAgIGxlbgogICAgaW50IDMyCiAgICA9PQogICAgYXNzZXJ0IC8vIEFkZHJlc3MgbGVuZ3RoIGlzIDMyIGJ5dGVzCiAgICBmcmFtZV9kaWcgLTIKICAgIHN3YXAKICAgIGFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gTm90IE9wdGVkLUluCiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjY1CiAgICAvLyBjYXNlIGNmZy5OT1RfQ0lSQ1VMQVRJTkdfTEFCRUxfMToKICAgIGJ5dGUgImJ1cm5lZCIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6NjcKICAgIC8vIGNhc2UgY2ZnLk5PVF9DSVJDVUxBVElOR19MQUJFTF8yOgogICAgYnl0ZSAibG9ja2VkIgogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weTo2OQogICAgLy8gY2FzZSBjZmcuTk9UX0NJUkNVTEFUSU5HX0xBQkVMXzM6CiAgICBieXRlICJnZW5lcmljIgogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weTo2My03MgogICAgLy8gIyBFZmZlY3RzCiAgICAvLyBtYXRjaCBsYWJlbDoKICAgIC8vICAgICBjYXNlIGNmZy5OT1RfQ0lSQ1VMQVRJTkdfTEFCRUxfMToKICAgIC8vICAgICAgICAgc2VsZi5ub3RfY2lyY3VsYXRpbmdfbGFiZWxfMS52YWx1ZSA9IGFkZHJlc3MKICAgIC8vICAgICBjYXNlIGNmZy5OT1RfQ0lSQ1VMQVRJTkdfTEFCRUxfMjoKICAgIC8vICAgICAgICAgc2VsZi5ub3RfY2lyY3VsYXRpbmdfbGFiZWxfMi52YWx1ZSA9IGFkZHJlc3MKICAgIC8vICAgICBjYXNlIGNmZy5OT1RfQ0lSQ1VMQVRJTkdfTEFCRUxfMzoKICAgIC8vICAgICAgICAgc2VsZi5ub3RfY2lyY3VsYXRpbmdfbGFiZWxfMy52YWx1ZSA9IGFkZHJlc3MKICAgIC8vICAgICBjYXNlIF86CiAgICAvLyAgICAgICAgIGFzc2VydCBGYWxzZSwgZXJyLklOVkFMSURfTEFCRUwKICAgIGZyYW1lX2RpZyAtMQogICAgbWF0Y2ggc2V0X25vdF9jaXJjdWxhdGluZ19hZGRyZXNzX3N3aXRjaF9jYXNlXzBAMSBzZXRfbm90X2NpcmN1bGF0aW5nX2FkZHJlc3Nfc3dpdGNoX2Nhc2VfMUAyIHNldF9ub3RfY2lyY3VsYXRpbmdfYWRkcmVzc19zd2l0Y2hfY2FzZV8yQDMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6NzIKICAgIC8vIGFzc2VydCBGYWxzZSwgZXJyLklOVkFMSURfTEFCRUwKICAgIGVyciAvLyBJbnZhbGlkIExhYmVsCgpzZXRfbm90X2NpcmN1bGF0aW5nX2FkZHJlc3Nfc3dpdGNoX2Nhc2VfMEAxOgogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weTo2NgogICAgLy8gc2VsZi5ub3RfY2lyY3VsYXRpbmdfbGFiZWxfMS52YWx1ZSA9IGFkZHJlc3MKICAgIGJ5dGUgImJ1cm5lZCIKICAgIGZyYW1lX2RpZyAtMgogICAgYXBwX2dsb2JhbF9wdXQKICAgIGIgc2V0X25vdF9jaXJjdWxhdGluZ19hZGRyZXNzX3N3aXRjaF9jYXNlX25leHRANQoKc2V0X25vdF9jaXJjdWxhdGluZ19hZGRyZXNzX3N3aXRjaF9jYXNlXzFAMjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6NjgKICAgIC8vIHNlbGYubm90X2NpcmN1bGF0aW5nX2xhYmVsXzIudmFsdWUgPSBhZGRyZXNzCiAgICBieXRlICJsb2NrZWQiCiAgICBmcmFtZV9kaWcgLTIKICAgIGFwcF9nbG9iYWxfcHV0CiAgICBiIHNldF9ub3RfY2lyY3VsYXRpbmdfYWRkcmVzc19zd2l0Y2hfY2FzZV9uZXh0QDUKCnNldF9ub3RfY2lyY3VsYXRpbmdfYWRkcmVzc19zd2l0Y2hfY2FzZV8yQDM6CiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjcwCiAgICAvLyBzZWxmLm5vdF9jaXJjdWxhdGluZ19sYWJlbF8zLnZhbHVlID0gYWRkcmVzcwogICAgYnl0ZSAiZ2VuZXJpYyIKICAgIGZyYW1lX2RpZyAtMgogICAgYXBwX2dsb2JhbF9wdXQKCnNldF9ub3RfY2lyY3VsYXRpbmdfYWRkcmVzc19zd2l0Y2hfY2FzZV9uZXh0QDU6CiAgICByZXRzdWIKCgovLyBzbWFydF9jb250cmFjdHMuY2lyY3VsYXRpbmdfc3VwcGx5LmNvbnRyYWN0LkNpcmN1bGF0aW5nU3VwcGx5LmFyYzYyX2dldF9jaXJjdWxhdGluZ19zdXBwbHkoYXNzZXRfaWQ6IHVpbnQ2NCkgLT4gdWludDY0OgphcmM2Ml9nZXRfY2lyY3VsYXRpbmdfc3VwcGx5OgogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weTo3NC03NQogICAgLy8gQGFiaW1ldGhvZChyZWFkb25seT1UcnVlKQogICAgLy8gZGVmIGFyYzYyX2dldF9jaXJjdWxhdGluZ19zdXBwbHkoc2VsZiwgYXNzZXRfaWQ6IFVJbnQ2NCkgLT4gVUludDY0OgogICAgcHJvdG8gMSAxCiAgICBieXRlICIiCiAgICBkdXBuIDIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6ODYKICAgIC8vIG5vdF9jaXJjdWxhdGluZ18xID0gQWNjb3VudChzZWxmLm5vdF9jaXJjdWxhdGluZ19sYWJlbF8xLnZhbHVlLmJ5dGVzKQogICAgaW50IDAKICAgIGJ5dGUgImJ1cm5lZCIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBzd2FwCiAgICBkdXAKICAgIHVuY292ZXIgMgogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYubm90X2NpcmN1bGF0aW5nX2xhYmVsXzEgZXhpc3RzCiAgICBsZW4KICAgIGludCAzMgogICAgPT0KICAgIGFzc2VydCAvLyBBZGRyZXNzIGxlbmd0aCBpcyAzMiBieXRlcwogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weTo4NwogICAgLy8gbm90X2NpcmN1bGF0aW5nXzIgPSBBY2NvdW50KHNlbGYubm90X2NpcmN1bGF0aW5nX2xhYmVsXzIudmFsdWUuYnl0ZXMpCiAgICBpbnQgMAogICAgYnl0ZSAibG9ja2VkIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIHN3YXAKICAgIGR1cAogICAgdW5jb3ZlciAyCiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5ub3RfY2lyY3VsYXRpbmdfbGFiZWxfMiBleGlzdHMKICAgIGxlbgogICAgaW50IDMyCiAgICA9PQogICAgYXNzZXJ0IC8vIEFkZHJlc3MgbGVuZ3RoIGlzIDMyIGJ5dGVzCiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5Ojg4CiAgICAvLyBub3RfY2lyY3VsYXRpbmdfMyA9IEFjY291bnQoc2VsZi5ub3RfY2lyY3VsYXRpbmdfbGFiZWxfMy52YWx1ZS5ieXRlcykKICAgIGludCAwCiAgICBieXRlICJnZW5lcmljIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIHN3YXAKICAgIGR1cAogICAgdW5jb3ZlciAyCiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5ub3RfY2lyY3VsYXRpbmdfbGFiZWxfMyBleGlzdHMKICAgIGxlbgogICAgaW50IDMyCiAgICA9PQogICAgYXNzZXJ0IC8vIEFkZHJlc3MgbGVuZ3RoIGlzIDMyIGJ5dGVzCiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5Ojg5LTkwCiAgICAvLyAjIFByZWNvbmRpdGlvbnMKICAgIC8vIGFzc2VydCBhc3NldF9pZCA9PSBzZWxmLmFzc2V0X2lkLCBlcnIuSU5WQUxJRF9BU1NFVF9JRAogICAgaW50IDAKICAgIGJ5dGUgImFzc2V0X2lkIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBzZWxmLmFzc2V0X2lkIGV4aXN0cwogICAgZnJhbWVfZGlnIC0xCiAgICA9PQogICAgYXNzZXJ0IC8vIEludmFsaWQgQVNBIElECiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5Ojk0CiAgICAvLyBpZiBhc3NldC5yZXNlcnZlID09IEdsb2JhbC56ZXJvX2FkZHJlc3MKICAgIGZyYW1lX2RpZyAtMQogICAgYXNzZXRfcGFyYW1zX2dldCBBc3NldFJlc2VydmUKICAgIGFzc2VydCAvLyBhc3NldCBleGlzdHMKICAgIGdsb2JhbCBaZXJvQWRkcmVzcwogICAgPT0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6OTQtOTUKICAgIC8vIGlmIGFzc2V0LnJlc2VydmUgPT0gR2xvYmFsLnplcm9fYWRkcmVzcwogICAgLy8gb3Igbm90IGFzc2V0LnJlc2VydmUuaXNfb3B0ZWRfaW4oYXNzZXQpCiAgICBibnogYXJjNjJfZ2V0X2NpcmN1bGF0aW5nX3N1cHBseV90ZXJuYXJ5X3RydWVAMgogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weTo5NQogICAgLy8gb3Igbm90IGFzc2V0LnJlc2VydmUuaXNfb3B0ZWRfaW4oYXNzZXQpCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X3BhcmFtc19nZXQgQXNzZXRSZXNlcnZlCiAgICBhc3NlcnQgLy8gYXNzZXQgZXhpc3RzCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQogICAgYnVyeSAxCiAgICBibnogYXJjNjJfZ2V0X2NpcmN1bGF0aW5nX3N1cHBseV90ZXJuYXJ5X2ZhbHNlQDMKCmFyYzYyX2dldF9jaXJjdWxhdGluZ19zdXBwbHlfdGVybmFyeV90cnVlQDI6CiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjkzCiAgICAvLyBVSW50NjQoMCkKICAgIGludCAwCiAgICBmcmFtZV9idXJ5IDIKICAgIGIgYXJjNjJfZ2V0X2NpcmN1bGF0aW5nX3N1cHBseV90ZXJuYXJ5X21lcmdlQDQKCmFyYzYyX2dldF9jaXJjdWxhdGluZ19zdXBwbHlfdGVybmFyeV9mYWxzZUAzOgogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weTo5NgogICAgLy8gZWxzZSBhc3NldC5iYWxhbmNlKGFzc2V0LnJlc2VydmUpCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X3BhcmFtc19nZXQgQXNzZXRSZXNlcnZlCiAgICBhc3NlcnQgLy8gYXNzZXQgZXhpc3RzCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQogICAgYXNzZXJ0IC8vIGFjY291bnQgb3B0ZWQgaW50byBhc3NldAogICAgZnJhbWVfYnVyeSAyCgphcmM2Ml9nZXRfY2lyY3VsYXRpbmdfc3VwcGx5X3Rlcm5hcnlfbWVyZ2VANDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6MTAwCiAgICAvLyBpZiBub3RfY2lyY3VsYXRpbmdfMSA9PSBHbG9iYWwuemVyb19hZGRyZXNzCiAgICBmcmFtZV9kaWcgMwogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weToxMDAtMTAxCiAgICAvLyBpZiBub3RfY2lyY3VsYXRpbmdfMSA9PSBHbG9iYWwuemVyb19hZGRyZXNzCiAgICAvLyBvciBub3Qgbm90X2NpcmN1bGF0aW5nXzEuaXNfb3B0ZWRfaW4oYXNzZXQpCiAgICBibnogYXJjNjJfZ2V0X2NpcmN1bGF0aW5nX3N1cHBseV90ZXJuYXJ5X3RydWVANgogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weToxMDEKICAgIC8vIG9yIG5vdCBub3RfY2lyY3VsYXRpbmdfMS5pc19vcHRlZF9pbihhc3NldCkKICAgIGZyYW1lX2RpZyAzCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQogICAgYnVyeSAxCiAgICBibnogYXJjNjJfZ2V0X2NpcmN1bGF0aW5nX3N1cHBseV90ZXJuYXJ5X2ZhbHNlQDcKCmFyYzYyX2dldF9jaXJjdWxhdGluZ19zdXBwbHlfdGVybmFyeV90cnVlQDY6CiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5Ojk5CiAgICAvLyBVSW50NjQoMCkKICAgIGludCAwCiAgICBmcmFtZV9idXJ5IDAKICAgIGIgYXJjNjJfZ2V0X2NpcmN1bGF0aW5nX3N1cHBseV90ZXJuYXJ5X21lcmdlQDgKCmFyYzYyX2dldF9jaXJjdWxhdGluZ19zdXBwbHlfdGVybmFyeV9mYWxzZUA3OgogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weToxMDIKICAgIC8vIGVsc2UgYXNzZXQuYmFsYW5jZShub3RfY2lyY3VsYXRpbmdfMSkKICAgIGZyYW1lX2RpZyAzCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQogICAgYXNzZXJ0IC8vIGFjY291bnQgb3B0ZWQgaW50byBhc3NldAogICAgZnJhbWVfYnVyeSAwCgphcmM2Ml9nZXRfY2lyY3VsYXRpbmdfc3VwcGx5X3Rlcm5hcnlfbWVyZ2VAODoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6MTA2CiAgICAvLyBpZiBub3RfY2lyY3VsYXRpbmdfMiA9PSBHbG9iYWwuemVyb19hZGRyZXNzCiAgICBmcmFtZV9kaWcgNAogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weToxMDYtMTA3CiAgICAvLyBpZiBub3RfY2lyY3VsYXRpbmdfMiA9PSBHbG9iYWwuemVyb19hZGRyZXNzCiAgICAvLyBvciBub3Qgbm90X2NpcmN1bGF0aW5nXzIuaXNfb3B0ZWRfaW4oYXNzZXQpCiAgICBibnogYXJjNjJfZ2V0X2NpcmN1bGF0aW5nX3N1cHBseV90ZXJuYXJ5X3RydWVAMTAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6MTA3CiAgICAvLyBvciBub3Qgbm90X2NpcmN1bGF0aW5nXzIuaXNfb3B0ZWRfaW4oYXNzZXQpCiAgICBmcmFtZV9kaWcgNAogICAgZnJhbWVfZGlnIC0xCiAgICBhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYm56IGFyYzYyX2dldF9jaXJjdWxhdGluZ19zdXBwbHlfdGVybmFyeV9mYWxzZUAxMQoKYXJjNjJfZ2V0X2NpcmN1bGF0aW5nX3N1cHBseV90ZXJuYXJ5X3RydWVAMTA6CiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjEwNQogICAgLy8gVUludDY0KDApCiAgICBpbnQgMAogICAgZnJhbWVfYnVyeSAxCiAgICBiIGFyYzYyX2dldF9jaXJjdWxhdGluZ19zdXBwbHlfdGVybmFyeV9tZXJnZUAxMgoKYXJjNjJfZ2V0X2NpcmN1bGF0aW5nX3N1cHBseV90ZXJuYXJ5X2ZhbHNlQDExOgogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weToxMDgKICAgIC8vIGVsc2UgYXNzZXQuYmFsYW5jZShub3RfY2lyY3VsYXRpbmdfMikKICAgIGZyYW1lX2RpZyA0CiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQogICAgYXNzZXJ0IC8vIGFjY291bnQgb3B0ZWQgaW50byBhc3NldAogICAgZnJhbWVfYnVyeSAxCgphcmM2Ml9nZXRfY2lyY3VsYXRpbmdfc3VwcGx5X3Rlcm5hcnlfbWVyZ2VAMTI6CiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjExMgogICAgLy8gaWYgbm90X2NpcmN1bGF0aW5nXzMgPT0gR2xvYmFsLnplcm9fYWRkcmVzcwogICAgZnJhbWVfZGlnIDUKICAgIGdsb2JhbCBaZXJvQWRkcmVzcwogICAgPT0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6MTEyLTExMwogICAgLy8gaWYgbm90X2NpcmN1bGF0aW5nXzMgPT0gR2xvYmFsLnplcm9fYWRkcmVzcwogICAgLy8gb3Igbm90IG5vdF9jaXJjdWxhdGluZ18zLmlzX29wdGVkX2luKGFzc2V0KQogICAgYm56IGFyYzYyX2dldF9jaXJjdWxhdGluZ19zdXBwbHlfdGVybmFyeV90cnVlQDE0CiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjExMwogICAgLy8gb3Igbm90IG5vdF9jaXJjdWxhdGluZ18zLmlzX29wdGVkX2luKGFzc2V0KQogICAgZnJhbWVfZGlnIDUKICAgIGZyYW1lX2RpZyAtMQogICAgYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCiAgICBidXJ5IDEKICAgIGJueiBhcmM2Ml9nZXRfY2lyY3VsYXRpbmdfc3VwcGx5X3Rlcm5hcnlfZmFsc2VAMTUKCmFyYzYyX2dldF9jaXJjdWxhdGluZ19zdXBwbHlfdGVybmFyeV90cnVlQDE0OgogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weToxMTEKICAgIC8vIFVJbnQ2NCgwKQogICAgaW50IDAKICAgIGIgYXJjNjJfZ2V0X2NpcmN1bGF0aW5nX3N1cHBseV90ZXJuYXJ5X21lcmdlQDE2CgphcmM2Ml9nZXRfY2lyY3VsYXRpbmdfc3VwcGx5X3Rlcm5hcnlfZmFsc2VAMTU6CiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjExNAogICAgLy8gZWxzZSBhc3NldC5iYWxhbmNlKG5vdF9jaXJjdWxhdGluZ18zKQogICAgZnJhbWVfZGlnIDUKICAgIGZyYW1lX2RpZyAtMQogICAgYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCiAgICBhc3NlcnQgLy8gYWNjb3VudCBvcHRlZCBpbnRvIGFzc2V0CgphcmM2Ml9nZXRfY2lyY3VsYXRpbmdfc3VwcGx5X3Rlcm5hcnlfbWVyZ2VAMTY6CiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjExNwogICAgLy8gYXNzZXQudG90YWwKICAgIGZyYW1lX2RpZyAtMQogICAgYXNzZXRfcGFyYW1zX2dldCBBc3NldFRvdGFsCiAgICBhc3NlcnQgLy8gYXNzZXQgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjExNy0xMTgKICAgIC8vIGFzc2V0LnRvdGFsCiAgICAvLyAtIHJlc2VydmVfYmFsYW5jZQogICAgZnJhbWVfZGlnIDIKICAgIC0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6MTE3LTExOQogICAgLy8gYXNzZXQudG90YWwKICAgIC8vIC0gcmVzZXJ2ZV9iYWxhbmNlCiAgICAvLyAtIG5vdF9jaXJjdWxhdGluZ19iYWxhbmNlXzEKICAgIGZyYW1lX2RpZyAwCiAgICAtCiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjExNy0xMjAKICAgIC8vIGFzc2V0LnRvdGFsCiAgICAvLyAtIHJlc2VydmVfYmFsYW5jZQogICAgLy8gLSBub3RfY2lyY3VsYXRpbmdfYmFsYW5jZV8xCiAgICAvLyAtIG5vdF9jaXJjdWxhdGluZ19iYWxhbmNlXzIKICAgIGZyYW1lX2RpZyAxCiAgICAtCiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjExNy0xMjEKICAgIC8vIGFzc2V0LnRvdGFsCiAgICAvLyAtIHJlc2VydmVfYmFsYW5jZQogICAgLy8gLSBub3RfY2lyY3VsYXRpbmdfYmFsYW5jZV8xCiAgICAvLyAtIG5vdF9jaXJjdWxhdGluZ19iYWxhbmNlXzIKICAgIC8vIC0gbm90X2NpcmN1bGF0aW5nX2JhbGFuY2VfMwogICAgc3dhcAogICAgLQogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weToxMTYtMTIyCiAgICAvLyByZXR1cm4gKAogICAgLy8gICAgIGFzc2V0LnRvdGFsCiAgICAvLyAgICAgLSByZXNlcnZlX2JhbGFuY2UKICAgIC8vICAgICAtIG5vdF9jaXJjdWxhdGluZ19iYWxhbmNlXzEKICAgIC8vICAgICAtIG5vdF9jaXJjdWxhdGluZ19iYWxhbmNlXzIKICAgIC8vICAgICAtIG5vdF9jaXJjdWxhdGluZ19iYWxhbmNlXzMKICAgIC8vICkKICAgIGZyYW1lX2J1cnkgMAogICAgcmV0c3ViCgoKLy8gc21hcnRfY29udHJhY3RzLmNpcmN1bGF0aW5nX3N1cHBseS5jb250cmFjdC5DaXJjdWxhdGluZ1N1cHBseS5fX2luaXRfXygpIC0+IHZvaWQ6Cl9faW5pdF9fOgogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weToyMwogICAgLy8gZGVmIF9faW5pdF9fKHNlbGYpIC0+IE5vbmU6CiAgICBwcm90byAwIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6MjQtMjUKICAgIC8vICMgR2xvYmFsIFN0YXRlCiAgICAvLyBzZWxmLmFzc2V0X2lkID0gVUludDY0KCkKICAgIGJ5dGUgImFzc2V0X2lkIgogICAgaW50IDAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjI3CiAgICAvLyBBZGRyZXNzKCksIGtleT1jZmcuTk9UX0NJUkNVTEFUSU5HX0xBQkVMXzEKICAgIGJ5dGUgImJ1cm5lZCIKICAgIGdsb2JhbCBaZXJvQWRkcmVzcwogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weToyNi0yOAogICAgLy8gc2VsZi5ub3RfY2lyY3VsYXRpbmdfbGFiZWxfMSA9IEdsb2JhbFN0YXRlKAogICAgLy8gICAgIEFkZHJlc3MoKSwga2V5PWNmZy5OT1RfQ0lSQ1VMQVRJTkdfTEFCRUxfMQogICAgLy8gKQogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6MzAKICAgIC8vIEFkZHJlc3MoKSwga2V5PWNmZy5OT1RfQ0lSQ1VMQVRJTkdfTEFCRUxfMgogICAgYnl0ZSAibG9ja2VkIgogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjI5LTMxCiAgICAvLyBzZWxmLm5vdF9jaXJjdWxhdGluZ19sYWJlbF8yID0gR2xvYmFsU3RhdGUoCiAgICAvLyAgICAgQWRkcmVzcygpLCBrZXk9Y2ZnLk5PVF9DSVJDVUxBVElOR19MQUJFTF8yCiAgICAvLyApCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weTozMwogICAgLy8gQWRkcmVzcygpLCBrZXk9Y2ZnLk5PVF9DSVJDVUxBVElOR19MQUJFTF8zCiAgICBieXRlICJnZW5lcmljIgogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjMyLTM0CiAgICAvLyBzZWxmLm5vdF9jaXJjdWxhdGluZ19sYWJlbF8zID0gR2xvYmFsU3RhdGUoCiAgICAvLyAgICAgQWRkcmVzcygpLCBrZXk9Y2ZnLk5PVF9DSVJDVUxBVElOR19MQUJFTF8zCiAgICAvLyApCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCg==",
+ "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCgpzbWFydF9jb250cmFjdHMuY2lyY3VsYXRpbmdfc3VwcGx5LmNvbnRyYWN0LkNpcmN1bGF0aW5nU3VwcGx5LmNsZWFyX3N0YXRlX3Byb2dyYW06CiAgICBpbnQgMQogICAgcmV0dXJuCg=="
+ },
+ "state": {
+ "global": {
+ "num_byte_slices": 3,
+ "num_uints": 1
+ },
+ "local": {
+ "num_byte_slices": 0,
+ "num_uints": 0
+ }
+ },
+ "schema": {
+ "global": {
+ "declared": {
+ "asset_id": {
+ "type": "uint64",
+ "key": "asset_id"
+ },
+ "not_circulating_label_1": {
+ "type": "bytes",
+ "key": "burned"
+ },
+ "not_circulating_label_2": {
+ "type": "bytes",
+ "key": "locked"
+ },
+ "not_circulating_label_3": {
+ "type": "bytes",
+ "key": "generic"
+ }
+ },
+ "reserved": {}
+ },
+ "local": {
+ "declared": {},
+ "reserved": {}
+ }
+ },
+ "contract": {
+ "name": "CirculatingSupply",
+ "desc": "ARC-62 Reference Implementation",
+ "methods": [
+ {
+ "name": "set_asset",
+ "args": [
+ {
+ "type": "uint64",
+ "name": "asset_id",
+ "desc": "ASA ID of the circulating supply"
+ }
+ ],
+ "readonly": false,
+ "returns": {
+ "type": "void"
+ },
+ "desc": "Set the ASA ID for the circulating supply - Authorization: ASA Manager Address"
+ },
+ {
+ "name": "set_not_circulating_address",
+ "args": [
+ {
+ "type": "address",
+ "name": "address",
+ "desc": "Address to assign to the label to"
+ },
+ {
+ "type": "string",
+ "name": "label",
+ "desc": "Not-circulating label selector"
+ }
+ ],
+ "readonly": false,
+ "returns": {
+ "type": "void"
+ },
+ "desc": "Set non-circulating supply addresses - Authorization: ASA Manager Address"
+ },
+ {
+ "name": "arc62_get_circulating_supply",
+ "args": [
+ {
+ "type": "uint64",
+ "name": "asset_id",
+ "desc": "ASA ID of the circulating supply"
+ }
+ ],
+ "readonly": true,
+ "returns": {
+ "type": "uint64",
+ "desc": "ASA circulating supply"
+ },
+ "desc": "Get ASA circulating supply"
+ }
+ ],
+ "networks": {}
+ },
+ "bare_call_config": {
+ "no_op": "CREATE"
+ }
+}
\ No newline at end of file
diff --git a/assets/arc-0062/smart_contracts/artifacts/circulating_supply/CirculatingSupply.clear.teal b/assets/arc-0062/smart_contracts/artifacts/circulating_supply/CirculatingSupply.clear.teal
new file mode 100644
index 000000000..607017949
--- /dev/null
+++ b/assets/arc-0062/smart_contracts/artifacts/circulating_supply/CirculatingSupply.clear.teal
@@ -0,0 +1,5 @@
+#pragma version 10
+
+smart_contracts.circulating_supply.contract.CirculatingSupply.clear_state_program:
+ int 1
+ return
diff --git a/assets/arc-0062/smart_contracts/artifacts/circulating_supply/circulating_supply_client.py b/assets/arc-0062/smart_contracts/artifacts/circulating_supply/circulating_supply_client.py
new file mode 100644
index 000000000..02633825f
--- /dev/null
+++ b/assets/arc-0062/smart_contracts/artifacts/circulating_supply/circulating_supply_client.py
@@ -0,0 +1,731 @@
+# flake8: noqa
+# fmt: off
+# mypy: disable-error-code="no-any-return, no-untyped-call, misc, type-arg"
+# This file was automatically generated by algokit-client-generator.
+# DO NOT MODIFY IT BY HAND.
+# requires: algokit-utils@^1.2.0
+import base64
+import dataclasses
+import decimal
+import typing
+from abc import ABC, abstractmethod
+
+import algokit_utils
+import algosdk
+from algosdk.v2client import models
+from algosdk.atomic_transaction_composer import (
+ AtomicTransactionComposer,
+ AtomicTransactionResponse,
+ SimulateAtomicTransactionResponse,
+ TransactionSigner,
+ TransactionWithSigner
+)
+
+_APP_SPEC_JSON = r"""{
+ "hints": {
+ "set_asset(uint64)void": {
+ "call_config": {
+ "no_op": "CALL"
+ }
+ },
+ "set_not_circulating_address(address,string)void": {
+ "call_config": {
+ "no_op": "CALL"
+ }
+ },
+ "arc62_get_circulating_supply(uint64)uint64": {
+ "read_only": true,
+ "call_config": {
+ "no_op": "CALL"
+ }
+ }
+ },
+ "source": {
+ "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgpzbWFydF9jb250cmFjdHMuY2lyY3VsYXRpbmdfc3VwcGx5LmNvbnRyYWN0LkNpcmN1bGF0aW5nU3VwcGx5LmFwcHJvdmFsX3Byb2dyYW06CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYm56IG1haW5fZW50cnlwb2ludEAyCiAgICBjYWxsc3ViIF9faW5pdF9fCgptYWluX2VudHJ5cG9pbnRAMjoKICAgIGNhbGxzdWIgX19wdXlhX2FyYzRfcm91dGVyX18KICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy5jaXJjdWxhdGluZ19zdXBwbHkuY29udHJhY3QuQ2lyY3VsYXRpbmdTdXBwbHkuX19wdXlhX2FyYzRfcm91dGVyX18oKSAtPiB1aW50NjQ6Cl9fcHV5YV9hcmM0X3JvdXRlcl9fOgogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weToyMAogICAgLy8gY2xhc3MgQ2lyY3VsYXRpbmdTdXBwbHkoQVJDNENvbnRyYWN0KToKICAgIHByb3RvIDAgMQogICAgdHhuIE51bUFwcEFyZ3MKICAgIGJ6IF9fcHV5YV9hcmM0X3JvdXRlcl9fX2JhcmVfcm91dGluZ0A3CiAgICBtZXRob2QgInNldF9hc3NldCh1aW50NjQpdm9pZCIKICAgIG1ldGhvZCAic2V0X25vdF9jaXJjdWxhdGluZ19hZGRyZXNzKGFkZHJlc3Msc3RyaW5nKXZvaWQiCiAgICBtZXRob2QgImFyYzYyX2dldF9jaXJjdWxhdGluZ19zdXBwbHkodWludDY0KXVpbnQ2NCIKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIG1hdGNoIF9fcHV5YV9hcmM0X3JvdXRlcl9fX3NldF9hc3NldF9yb3V0ZUAyIF9fcHV5YV9hcmM0X3JvdXRlcl9fX3NldF9ub3RfY2lyY3VsYXRpbmdfYWRkcmVzc19yb3V0ZUAzIF9fcHV5YV9hcmM0X3JvdXRlcl9fX2FyYzYyX2dldF9jaXJjdWxhdGluZ19zdXBwbHlfcm91dGVANAogICAgaW50IDAKICAgIHJldHN1YgoKX19wdXlhX2FyYzRfcm91dGVyX19fc2V0X2Fzc2V0X3JvdXRlQDI6CiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjM2CiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydCAvLyBpcyBub3QgY3JlYXRpbmcKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6MjAKICAgIC8vIGNsYXNzIENpcmN1bGF0aW5nU3VwcGx5KEFSQzRDb250cmFjdCk6CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBidG9pCiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjM2CiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIGNhbGxzdWIgc2V0X2Fzc2V0CiAgICBpbnQgMQogICAgcmV0c3ViCgpfX3B1eWFfYXJjNF9yb3V0ZXJfX19zZXRfbm90X2NpcmN1bGF0aW5nX2FkZHJlc3Nfcm91dGVAMzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6NTAKICAgIC8vIEBhYmltZXRob2QoKQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYXNzZXJ0IC8vIGlzIG5vdCBjcmVhdGluZwogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weToyMAogICAgLy8gY2xhc3MgQ2lyY3VsYXRpbmdTdXBwbHkoQVJDNENvbnRyYWN0KToKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGV4dHJhY3QgMiAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjUwCiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIGNhbGxzdWIgc2V0X25vdF9jaXJjdWxhdGluZ19hZGRyZXNzCiAgICBpbnQgMQogICAgcmV0c3ViCgpfX3B1eWFfYXJjNF9yb3V0ZXJfX19hcmM2Ml9nZXRfY2lyY3VsYXRpbmdfc3VwcGx5X3JvdXRlQDQ6CiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5Ojc0CiAgICAvLyBAYWJpbWV0aG9kKHJlYWRvbmx5PVRydWUpCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBhc3NlcnQgLy8gaXMgbm90IGNyZWF0aW5nCiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjIwCiAgICAvLyBjbGFzcyBDaXJjdWxhdGluZ1N1cHBseShBUkM0Q29udHJhY3QpOgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgYnRvaQogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weTo3NAogICAgLy8gQGFiaW1ldGhvZChyZWFkb25seT1UcnVlKQogICAgY2FsbHN1YiBhcmM2Ml9nZXRfY2lyY3VsYXRpbmdfc3VwcGx5CiAgICBpdG9iCiAgICBieXRlIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnQgMQogICAgcmV0c3ViCgpfX3B1eWFfYXJjNF9yb3V0ZXJfX19iYXJlX3JvdXRpbmdANzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6MjAKICAgIC8vIGNsYXNzIENpcmN1bGF0aW5nU3VwcGx5KEFSQzRDb250cmFjdCk6CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBibnogX19wdXlhX2FyYzRfcm91dGVyX19fYWZ0ZXJfaWZfZWxzZUAxMQogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgICEKICAgIGFzc2VydCAvLyBpcyBjcmVhdGluZwogICAgaW50IDEKICAgIHJldHN1YgoKX19wdXlhX2FyYzRfcm91dGVyX19fYWZ0ZXJfaWZfZWxzZUAxMToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6MjAKICAgIC8vIGNsYXNzIENpcmN1bGF0aW5nU3VwcGx5KEFSQzRDb250cmFjdCk6CiAgICBpbnQgMAogICAgcmV0c3ViCgoKLy8gc21hcnRfY29udHJhY3RzLmNpcmN1bGF0aW5nX3N1cHBseS5jb250cmFjdC5DaXJjdWxhdGluZ1N1cHBseS5zZXRfYXNzZXQoYXNzZXRfaWQ6IHVpbnQ2NCkgLT4gdm9pZDoKc2V0X2Fzc2V0OgogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weTozNi0zNwogICAgLy8gQGFiaW1ldGhvZCgpCiAgICAvLyBkZWYgc2V0X2Fzc2V0KHNlbGYsIGFzc2V0X2lkOiBVSW50NjQpIC0+IE5vbmU6CiAgICBwcm90byAxIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6NDUtNDYKICAgIC8vICMgUHJlY29uZGl0aW9ucwogICAgLy8gYXNzZXJ0IFR4bi5zZW5kZXIgPT0gYXNzZXQubWFuYWdlciBhbmQgbm90IHNlbGYuYXNzZXRfaWQsIGVyci5VTkFVVEhPUklaRUQKICAgIHR4biBTZW5kZXIKICAgIGZyYW1lX2RpZyAtMQogICAgYXNzZXRfcGFyYW1zX2dldCBBc3NldE1hbmFnZXIKICAgIGFzc2VydCAvLyBhc3NldCBleGlzdHMKICAgID09CiAgICBieiBzZXRfYXNzZXRfYm9vbF9mYWxzZUAzCiAgICBpbnQgMAogICAgYnl0ZSAiYXNzZXRfaWQiCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYuYXNzZXRfaWQgZXhpc3RzCiAgICBibnogc2V0X2Fzc2V0X2Jvb2xfZmFsc2VAMwogICAgaW50IDEKICAgIGIgc2V0X2Fzc2V0X2Jvb2xfbWVyZ2VANAoKc2V0X2Fzc2V0X2Jvb2xfZmFsc2VAMzoKICAgIGludCAwCgpzZXRfYXNzZXRfYm9vbF9tZXJnZUA0OgogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weTo0NS00NgogICAgLy8gIyBQcmVjb25kaXRpb25zCiAgICAvLyBhc3NlcnQgVHhuLnNlbmRlciA9PSBhc3NldC5tYW5hZ2VyIGFuZCBub3Qgc2VsZi5hc3NldF9pZCwgZXJyLlVOQVVUSE9SSVpFRAogICAgYXNzZXJ0IC8vIFVuYXV0aG9yaXplZAogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weTo0Ny00OAogICAgLy8gIyBFZmZlY3RzCiAgICAvLyBzZWxmLmFzc2V0X2lkID0gYXNzZXRfaWQKICAgIGJ5dGUgImFzc2V0X2lkIgogICAgZnJhbWVfZGlnIC0xCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCgoKLy8gc21hcnRfY29udHJhY3RzLmNpcmN1bGF0aW5nX3N1cHBseS5jb250cmFjdC5DaXJjdWxhdGluZ1N1cHBseS5zZXRfbm90X2NpcmN1bGF0aW5nX2FkZHJlc3MoYWRkcmVzczogYnl0ZXMsIGxhYmVsOiBieXRlcykgLT4gdm9pZDoKc2V0X25vdF9jaXJjdWxhdGluZ19hZGRyZXNzOgogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weTo1MC01MQogICAgLy8gQGFiaW1ldGhvZCgpCiAgICAvLyBkZWYgc2V0X25vdF9jaXJjdWxhdGluZ19hZGRyZXNzKHNlbGYsIGFkZHJlc3M6IEFkZHJlc3MsIGxhYmVsOiBTdHJpbmcpIC0+IE5vbmU6CiAgICBwcm90byAyIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6NTkKICAgIC8vIGFzc2V0ID0gQXNzZXQoc2VsZi5hc3NldF9pZCkKICAgIGludCAwCiAgICBieXRlICJhc3NldF9pZCIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5hc3NldF9pZCBleGlzdHMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6NjAtNjEKICAgIC8vICMgUHJlY29uZGl0aW9ucwogICAgLy8gYXNzZXJ0IFR4bi5zZW5kZXIgPT0gYXNzZXQubWFuYWdlciwgZXJyLlVOQVVUSE9SSVpFRAogICAgdHhuIFNlbmRlcgogICAgc3dhcAogICAgZHVwCiAgICBhc3NldF9wYXJhbXNfZ2V0IEFzc2V0TWFuYWdlcgogICAgYXNzZXJ0IC8vIGFzc2V0IGV4aXN0cwogICAgdW5jb3ZlciAyCiAgICA9PQogICAgYXNzZXJ0IC8vIFVuYXV0aG9yaXplZAogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weTo2MgogICAgLy8gYXNzZXJ0IEFjY291bnQoYWRkcmVzcy5ieXRlcykuaXNfb3B0ZWRfaW4oYXNzZXQpLCBlcnIuTk9UX09QVEVEX0lOCiAgICBmcmFtZV9kaWcgLTIKICAgIGxlbgogICAgaW50IDMyCiAgICA9PQogICAgYXNzZXJ0IC8vIEFkZHJlc3MgbGVuZ3RoIGlzIDMyIGJ5dGVzCiAgICBmcmFtZV9kaWcgLTIKICAgIHN3YXAKICAgIGFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gTm90IE9wdGVkLUluCiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjY1CiAgICAvLyBjYXNlIGNmZy5OT1RfQ0lSQ1VMQVRJTkdfTEFCRUxfMToKICAgIGJ5dGUgImJ1cm5lZCIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6NjcKICAgIC8vIGNhc2UgY2ZnLk5PVF9DSVJDVUxBVElOR19MQUJFTF8yOgogICAgYnl0ZSAibG9ja2VkIgogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weTo2OQogICAgLy8gY2FzZSBjZmcuTk9UX0NJUkNVTEFUSU5HX0xBQkVMXzM6CiAgICBieXRlICJnZW5lcmljIgogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weTo2My03MgogICAgLy8gIyBFZmZlY3RzCiAgICAvLyBtYXRjaCBsYWJlbDoKICAgIC8vICAgICBjYXNlIGNmZy5OT1RfQ0lSQ1VMQVRJTkdfTEFCRUxfMToKICAgIC8vICAgICAgICAgc2VsZi5ub3RfY2lyY3VsYXRpbmdfbGFiZWxfMS52YWx1ZSA9IGFkZHJlc3MKICAgIC8vICAgICBjYXNlIGNmZy5OT1RfQ0lSQ1VMQVRJTkdfTEFCRUxfMjoKICAgIC8vICAgICAgICAgc2VsZi5ub3RfY2lyY3VsYXRpbmdfbGFiZWxfMi52YWx1ZSA9IGFkZHJlc3MKICAgIC8vICAgICBjYXNlIGNmZy5OT1RfQ0lSQ1VMQVRJTkdfTEFCRUxfMzoKICAgIC8vICAgICAgICAgc2VsZi5ub3RfY2lyY3VsYXRpbmdfbGFiZWxfMy52YWx1ZSA9IGFkZHJlc3MKICAgIC8vICAgICBjYXNlIF86CiAgICAvLyAgICAgICAgIGFzc2VydCBGYWxzZSwgZXJyLklOVkFMSURfTEFCRUwKICAgIGZyYW1lX2RpZyAtMQogICAgbWF0Y2ggc2V0X25vdF9jaXJjdWxhdGluZ19hZGRyZXNzX3N3aXRjaF9jYXNlXzBAMSBzZXRfbm90X2NpcmN1bGF0aW5nX2FkZHJlc3Nfc3dpdGNoX2Nhc2VfMUAyIHNldF9ub3RfY2lyY3VsYXRpbmdfYWRkcmVzc19zd2l0Y2hfY2FzZV8yQDMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6NzIKICAgIC8vIGFzc2VydCBGYWxzZSwgZXJyLklOVkFMSURfTEFCRUwKICAgIGVyciAvLyBJbnZhbGlkIExhYmVsCgpzZXRfbm90X2NpcmN1bGF0aW5nX2FkZHJlc3Nfc3dpdGNoX2Nhc2VfMEAxOgogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weTo2NgogICAgLy8gc2VsZi5ub3RfY2lyY3VsYXRpbmdfbGFiZWxfMS52YWx1ZSA9IGFkZHJlc3MKICAgIGJ5dGUgImJ1cm5lZCIKICAgIGZyYW1lX2RpZyAtMgogICAgYXBwX2dsb2JhbF9wdXQKICAgIGIgc2V0X25vdF9jaXJjdWxhdGluZ19hZGRyZXNzX3N3aXRjaF9jYXNlX25leHRANQoKc2V0X25vdF9jaXJjdWxhdGluZ19hZGRyZXNzX3N3aXRjaF9jYXNlXzFAMjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6NjgKICAgIC8vIHNlbGYubm90X2NpcmN1bGF0aW5nX2xhYmVsXzIudmFsdWUgPSBhZGRyZXNzCiAgICBieXRlICJsb2NrZWQiCiAgICBmcmFtZV9kaWcgLTIKICAgIGFwcF9nbG9iYWxfcHV0CiAgICBiIHNldF9ub3RfY2lyY3VsYXRpbmdfYWRkcmVzc19zd2l0Y2hfY2FzZV9uZXh0QDUKCnNldF9ub3RfY2lyY3VsYXRpbmdfYWRkcmVzc19zd2l0Y2hfY2FzZV8yQDM6CiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjcwCiAgICAvLyBzZWxmLm5vdF9jaXJjdWxhdGluZ19sYWJlbF8zLnZhbHVlID0gYWRkcmVzcwogICAgYnl0ZSAiZ2VuZXJpYyIKICAgIGZyYW1lX2RpZyAtMgogICAgYXBwX2dsb2JhbF9wdXQKCnNldF9ub3RfY2lyY3VsYXRpbmdfYWRkcmVzc19zd2l0Y2hfY2FzZV9uZXh0QDU6CiAgICByZXRzdWIKCgovLyBzbWFydF9jb250cmFjdHMuY2lyY3VsYXRpbmdfc3VwcGx5LmNvbnRyYWN0LkNpcmN1bGF0aW5nU3VwcGx5LmFyYzYyX2dldF9jaXJjdWxhdGluZ19zdXBwbHkoYXNzZXRfaWQ6IHVpbnQ2NCkgLT4gdWludDY0OgphcmM2Ml9nZXRfY2lyY3VsYXRpbmdfc3VwcGx5OgogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weTo3NC03NQogICAgLy8gQGFiaW1ldGhvZChyZWFkb25seT1UcnVlKQogICAgLy8gZGVmIGFyYzYyX2dldF9jaXJjdWxhdGluZ19zdXBwbHkoc2VsZiwgYXNzZXRfaWQ6IFVJbnQ2NCkgLT4gVUludDY0OgogICAgcHJvdG8gMSAxCiAgICBieXRlICIiCiAgICBkdXBuIDIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6ODYKICAgIC8vIG5vdF9jaXJjdWxhdGluZ18xID0gQWNjb3VudChzZWxmLm5vdF9jaXJjdWxhdGluZ19sYWJlbF8xLnZhbHVlLmJ5dGVzKQogICAgaW50IDAKICAgIGJ5dGUgImJ1cm5lZCIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBzd2FwCiAgICBkdXAKICAgIHVuY292ZXIgMgogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYubm90X2NpcmN1bGF0aW5nX2xhYmVsXzEgZXhpc3RzCiAgICBsZW4KICAgIGludCAzMgogICAgPT0KICAgIGFzc2VydCAvLyBBZGRyZXNzIGxlbmd0aCBpcyAzMiBieXRlcwogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weTo4NwogICAgLy8gbm90X2NpcmN1bGF0aW5nXzIgPSBBY2NvdW50KHNlbGYubm90X2NpcmN1bGF0aW5nX2xhYmVsXzIudmFsdWUuYnl0ZXMpCiAgICBpbnQgMAogICAgYnl0ZSAibG9ja2VkIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIHN3YXAKICAgIGR1cAogICAgdW5jb3ZlciAyCiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5ub3RfY2lyY3VsYXRpbmdfbGFiZWxfMiBleGlzdHMKICAgIGxlbgogICAgaW50IDMyCiAgICA9PQogICAgYXNzZXJ0IC8vIEFkZHJlc3MgbGVuZ3RoIGlzIDMyIGJ5dGVzCiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5Ojg4CiAgICAvLyBub3RfY2lyY3VsYXRpbmdfMyA9IEFjY291bnQoc2VsZi5ub3RfY2lyY3VsYXRpbmdfbGFiZWxfMy52YWx1ZS5ieXRlcykKICAgIGludCAwCiAgICBieXRlICJnZW5lcmljIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIHN3YXAKICAgIGR1cAogICAgdW5jb3ZlciAyCiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5ub3RfY2lyY3VsYXRpbmdfbGFiZWxfMyBleGlzdHMKICAgIGxlbgogICAgaW50IDMyCiAgICA9PQogICAgYXNzZXJ0IC8vIEFkZHJlc3MgbGVuZ3RoIGlzIDMyIGJ5dGVzCiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5Ojg5LTkwCiAgICAvLyAjIFByZWNvbmRpdGlvbnMKICAgIC8vIGFzc2VydCBhc3NldF9pZCA9PSBzZWxmLmFzc2V0X2lkLCBlcnIuSU5WQUxJRF9BU1NFVF9JRAogICAgaW50IDAKICAgIGJ5dGUgImFzc2V0X2lkIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBzZWxmLmFzc2V0X2lkIGV4aXN0cwogICAgZnJhbWVfZGlnIC0xCiAgICA9PQogICAgYXNzZXJ0IC8vIEludmFsaWQgQVNBIElECiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5Ojk0CiAgICAvLyBpZiBhc3NldC5yZXNlcnZlID09IEdsb2JhbC56ZXJvX2FkZHJlc3MKICAgIGZyYW1lX2RpZyAtMQogICAgYXNzZXRfcGFyYW1zX2dldCBBc3NldFJlc2VydmUKICAgIGFzc2VydCAvLyBhc3NldCBleGlzdHMKICAgIGdsb2JhbCBaZXJvQWRkcmVzcwogICAgPT0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6OTQtOTUKICAgIC8vIGlmIGFzc2V0LnJlc2VydmUgPT0gR2xvYmFsLnplcm9fYWRkcmVzcwogICAgLy8gb3Igbm90IGFzc2V0LnJlc2VydmUuaXNfb3B0ZWRfaW4oYXNzZXQpCiAgICBibnogYXJjNjJfZ2V0X2NpcmN1bGF0aW5nX3N1cHBseV90ZXJuYXJ5X3RydWVAMgogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weTo5NQogICAgLy8gb3Igbm90IGFzc2V0LnJlc2VydmUuaXNfb3B0ZWRfaW4oYXNzZXQpCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X3BhcmFtc19nZXQgQXNzZXRSZXNlcnZlCiAgICBhc3NlcnQgLy8gYXNzZXQgZXhpc3RzCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQogICAgYnVyeSAxCiAgICBibnogYXJjNjJfZ2V0X2NpcmN1bGF0aW5nX3N1cHBseV90ZXJuYXJ5X2ZhbHNlQDMKCmFyYzYyX2dldF9jaXJjdWxhdGluZ19zdXBwbHlfdGVybmFyeV90cnVlQDI6CiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjkzCiAgICAvLyBVSW50NjQoMCkKICAgIGludCAwCiAgICBmcmFtZV9idXJ5IDIKICAgIGIgYXJjNjJfZ2V0X2NpcmN1bGF0aW5nX3N1cHBseV90ZXJuYXJ5X21lcmdlQDQKCmFyYzYyX2dldF9jaXJjdWxhdGluZ19zdXBwbHlfdGVybmFyeV9mYWxzZUAzOgogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weTo5NgogICAgLy8gZWxzZSBhc3NldC5iYWxhbmNlKGFzc2V0LnJlc2VydmUpCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X3BhcmFtc19nZXQgQXNzZXRSZXNlcnZlCiAgICBhc3NlcnQgLy8gYXNzZXQgZXhpc3RzCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQogICAgYXNzZXJ0IC8vIGFjY291bnQgb3B0ZWQgaW50byBhc3NldAogICAgZnJhbWVfYnVyeSAyCgphcmM2Ml9nZXRfY2lyY3VsYXRpbmdfc3VwcGx5X3Rlcm5hcnlfbWVyZ2VANDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6MTAwCiAgICAvLyBpZiBub3RfY2lyY3VsYXRpbmdfMSA9PSBHbG9iYWwuemVyb19hZGRyZXNzCiAgICBmcmFtZV9kaWcgMwogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weToxMDAtMTAxCiAgICAvLyBpZiBub3RfY2lyY3VsYXRpbmdfMSA9PSBHbG9iYWwuemVyb19hZGRyZXNzCiAgICAvLyBvciBub3Qgbm90X2NpcmN1bGF0aW5nXzEuaXNfb3B0ZWRfaW4oYXNzZXQpCiAgICBibnogYXJjNjJfZ2V0X2NpcmN1bGF0aW5nX3N1cHBseV90ZXJuYXJ5X3RydWVANgogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weToxMDEKICAgIC8vIG9yIG5vdCBub3RfY2lyY3VsYXRpbmdfMS5pc19vcHRlZF9pbihhc3NldCkKICAgIGZyYW1lX2RpZyAzCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQogICAgYnVyeSAxCiAgICBibnogYXJjNjJfZ2V0X2NpcmN1bGF0aW5nX3N1cHBseV90ZXJuYXJ5X2ZhbHNlQDcKCmFyYzYyX2dldF9jaXJjdWxhdGluZ19zdXBwbHlfdGVybmFyeV90cnVlQDY6CiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5Ojk5CiAgICAvLyBVSW50NjQoMCkKICAgIGludCAwCiAgICBmcmFtZV9idXJ5IDAKICAgIGIgYXJjNjJfZ2V0X2NpcmN1bGF0aW5nX3N1cHBseV90ZXJuYXJ5X21lcmdlQDgKCmFyYzYyX2dldF9jaXJjdWxhdGluZ19zdXBwbHlfdGVybmFyeV9mYWxzZUA3OgogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weToxMDIKICAgIC8vIGVsc2UgYXNzZXQuYmFsYW5jZShub3RfY2lyY3VsYXRpbmdfMSkKICAgIGZyYW1lX2RpZyAzCiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQogICAgYXNzZXJ0IC8vIGFjY291bnQgb3B0ZWQgaW50byBhc3NldAogICAgZnJhbWVfYnVyeSAwCgphcmM2Ml9nZXRfY2lyY3VsYXRpbmdfc3VwcGx5X3Rlcm5hcnlfbWVyZ2VAODoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6MTA2CiAgICAvLyBpZiBub3RfY2lyY3VsYXRpbmdfMiA9PSBHbG9iYWwuemVyb19hZGRyZXNzCiAgICBmcmFtZV9kaWcgNAogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weToxMDYtMTA3CiAgICAvLyBpZiBub3RfY2lyY3VsYXRpbmdfMiA9PSBHbG9iYWwuemVyb19hZGRyZXNzCiAgICAvLyBvciBub3Qgbm90X2NpcmN1bGF0aW5nXzIuaXNfb3B0ZWRfaW4oYXNzZXQpCiAgICBibnogYXJjNjJfZ2V0X2NpcmN1bGF0aW5nX3N1cHBseV90ZXJuYXJ5X3RydWVAMTAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6MTA3CiAgICAvLyBvciBub3Qgbm90X2NpcmN1bGF0aW5nXzIuaXNfb3B0ZWRfaW4oYXNzZXQpCiAgICBmcmFtZV9kaWcgNAogICAgZnJhbWVfZGlnIC0xCiAgICBhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKICAgIGJ1cnkgMQogICAgYm56IGFyYzYyX2dldF9jaXJjdWxhdGluZ19zdXBwbHlfdGVybmFyeV9mYWxzZUAxMQoKYXJjNjJfZ2V0X2NpcmN1bGF0aW5nX3N1cHBseV90ZXJuYXJ5X3RydWVAMTA6CiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjEwNQogICAgLy8gVUludDY0KDApCiAgICBpbnQgMAogICAgZnJhbWVfYnVyeSAxCiAgICBiIGFyYzYyX2dldF9jaXJjdWxhdGluZ19zdXBwbHlfdGVybmFyeV9tZXJnZUAxMgoKYXJjNjJfZ2V0X2NpcmN1bGF0aW5nX3N1cHBseV90ZXJuYXJ5X2ZhbHNlQDExOgogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weToxMDgKICAgIC8vIGVsc2UgYXNzZXQuYmFsYW5jZShub3RfY2lyY3VsYXRpbmdfMikKICAgIGZyYW1lX2RpZyA0CiAgICBmcmFtZV9kaWcgLTEKICAgIGFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQogICAgYXNzZXJ0IC8vIGFjY291bnQgb3B0ZWQgaW50byBhc3NldAogICAgZnJhbWVfYnVyeSAxCgphcmM2Ml9nZXRfY2lyY3VsYXRpbmdfc3VwcGx5X3Rlcm5hcnlfbWVyZ2VAMTI6CiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjExMgogICAgLy8gaWYgbm90X2NpcmN1bGF0aW5nXzMgPT0gR2xvYmFsLnplcm9fYWRkcmVzcwogICAgZnJhbWVfZGlnIDUKICAgIGdsb2JhbCBaZXJvQWRkcmVzcwogICAgPT0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6MTEyLTExMwogICAgLy8gaWYgbm90X2NpcmN1bGF0aW5nXzMgPT0gR2xvYmFsLnplcm9fYWRkcmVzcwogICAgLy8gb3Igbm90IG5vdF9jaXJjdWxhdGluZ18zLmlzX29wdGVkX2luKGFzc2V0KQogICAgYm56IGFyYzYyX2dldF9jaXJjdWxhdGluZ19zdXBwbHlfdGVybmFyeV90cnVlQDE0CiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjExMwogICAgLy8gb3Igbm90IG5vdF9jaXJjdWxhdGluZ18zLmlzX29wdGVkX2luKGFzc2V0KQogICAgZnJhbWVfZGlnIDUKICAgIGZyYW1lX2RpZyAtMQogICAgYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCiAgICBidXJ5IDEKICAgIGJueiBhcmM2Ml9nZXRfY2lyY3VsYXRpbmdfc3VwcGx5X3Rlcm5hcnlfZmFsc2VAMTUKCmFyYzYyX2dldF9jaXJjdWxhdGluZ19zdXBwbHlfdGVybmFyeV90cnVlQDE0OgogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weToxMTEKICAgIC8vIFVJbnQ2NCgwKQogICAgaW50IDAKICAgIGIgYXJjNjJfZ2V0X2NpcmN1bGF0aW5nX3N1cHBseV90ZXJuYXJ5X21lcmdlQDE2CgphcmM2Ml9nZXRfY2lyY3VsYXRpbmdfc3VwcGx5X3Rlcm5hcnlfZmFsc2VAMTU6CiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjExNAogICAgLy8gZWxzZSBhc3NldC5iYWxhbmNlKG5vdF9jaXJjdWxhdGluZ18zKQogICAgZnJhbWVfZGlnIDUKICAgIGZyYW1lX2RpZyAtMQogICAgYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCiAgICBhc3NlcnQgLy8gYWNjb3VudCBvcHRlZCBpbnRvIGFzc2V0CgphcmM2Ml9nZXRfY2lyY3VsYXRpbmdfc3VwcGx5X3Rlcm5hcnlfbWVyZ2VAMTY6CiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjExNwogICAgLy8gYXNzZXQudG90YWwKICAgIGZyYW1lX2RpZyAtMQogICAgYXNzZXRfcGFyYW1zX2dldCBBc3NldFRvdGFsCiAgICBhc3NlcnQgLy8gYXNzZXQgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjExNy0xMTgKICAgIC8vIGFzc2V0LnRvdGFsCiAgICAvLyAtIHJlc2VydmVfYmFsYW5jZQogICAgZnJhbWVfZGlnIDIKICAgIC0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6MTE3LTExOQogICAgLy8gYXNzZXQudG90YWwKICAgIC8vIC0gcmVzZXJ2ZV9iYWxhbmNlCiAgICAvLyAtIG5vdF9jaXJjdWxhdGluZ19iYWxhbmNlXzEKICAgIGZyYW1lX2RpZyAwCiAgICAtCiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjExNy0xMjAKICAgIC8vIGFzc2V0LnRvdGFsCiAgICAvLyAtIHJlc2VydmVfYmFsYW5jZQogICAgLy8gLSBub3RfY2lyY3VsYXRpbmdfYmFsYW5jZV8xCiAgICAvLyAtIG5vdF9jaXJjdWxhdGluZ19iYWxhbmNlXzIKICAgIGZyYW1lX2RpZyAxCiAgICAtCiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjExNy0xMjEKICAgIC8vIGFzc2V0LnRvdGFsCiAgICAvLyAtIHJlc2VydmVfYmFsYW5jZQogICAgLy8gLSBub3RfY2lyY3VsYXRpbmdfYmFsYW5jZV8xCiAgICAvLyAtIG5vdF9jaXJjdWxhdGluZ19iYWxhbmNlXzIKICAgIC8vIC0gbm90X2NpcmN1bGF0aW5nX2JhbGFuY2VfMwogICAgc3dhcAogICAgLQogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weToxMTYtMTIyCiAgICAvLyByZXR1cm4gKAogICAgLy8gICAgIGFzc2V0LnRvdGFsCiAgICAvLyAgICAgLSByZXNlcnZlX2JhbGFuY2UKICAgIC8vICAgICAtIG5vdF9jaXJjdWxhdGluZ19iYWxhbmNlXzEKICAgIC8vICAgICAtIG5vdF9jaXJjdWxhdGluZ19iYWxhbmNlXzIKICAgIC8vICAgICAtIG5vdF9jaXJjdWxhdGluZ19iYWxhbmNlXzMKICAgIC8vICkKICAgIGZyYW1lX2J1cnkgMAogICAgcmV0c3ViCgoKLy8gc21hcnRfY29udHJhY3RzLmNpcmN1bGF0aW5nX3N1cHBseS5jb250cmFjdC5DaXJjdWxhdGluZ1N1cHBseS5fX2luaXRfXygpIC0+IHZvaWQ6Cl9faW5pdF9fOgogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weToyMwogICAgLy8gZGVmIF9faW5pdF9fKHNlbGYpIC0+IE5vbmU6CiAgICBwcm90byAwIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6MjQtMjUKICAgIC8vICMgR2xvYmFsIFN0YXRlCiAgICAvLyBzZWxmLmFzc2V0X2lkID0gVUludDY0KCkKICAgIGJ5dGUgImFzc2V0X2lkIgogICAgaW50IDAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjI3CiAgICAvLyBBZGRyZXNzKCksIGtleT1jZmcuTk9UX0NJUkNVTEFUSU5HX0xBQkVMXzEKICAgIGJ5dGUgImJ1cm5lZCIKICAgIGdsb2JhbCBaZXJvQWRkcmVzcwogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weToyNi0yOAogICAgLy8gc2VsZi5ub3RfY2lyY3VsYXRpbmdfbGFiZWxfMSA9IEdsb2JhbFN0YXRlKAogICAgLy8gICAgIEFkZHJlc3MoKSwga2V5PWNmZy5OT1RfQ0lSQ1VMQVRJTkdfTEFCRUxfMQogICAgLy8gKQogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9jaXJjdWxhdGluZ19zdXBwbHkvY29udHJhY3QucHk6MzAKICAgIC8vIEFkZHJlc3MoKSwga2V5PWNmZy5OT1RfQ0lSQ1VMQVRJTkdfTEFCRUxfMgogICAgYnl0ZSAibG9ja2VkIgogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjI5LTMxCiAgICAvLyBzZWxmLm5vdF9jaXJjdWxhdGluZ19sYWJlbF8yID0gR2xvYmFsU3RhdGUoCiAgICAvLyAgICAgQWRkcmVzcygpLCBrZXk9Y2ZnLk5PVF9DSVJDVUxBVElOR19MQUJFTF8yCiAgICAvLyApCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2NpcmN1bGF0aW5nX3N1cHBseS9jb250cmFjdC5weTozMwogICAgLy8gQWRkcmVzcygpLCBrZXk9Y2ZnLk5PVF9DSVJDVUxBVElOR19MQUJFTF8zCiAgICBieXRlICJnZW5lcmljIgogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICAvLyBzbWFydF9jb250cmFjdHMvY2lyY3VsYXRpbmdfc3VwcGx5L2NvbnRyYWN0LnB5OjMyLTM0CiAgICAvLyBzZWxmLm5vdF9jaXJjdWxhdGluZ19sYWJlbF8zID0gR2xvYmFsU3RhdGUoCiAgICAvLyAgICAgQWRkcmVzcygpLCBrZXk9Y2ZnLk5PVF9DSVJDVUxBVElOR19MQUJFTF8zCiAgICAvLyApCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCg==",
+ "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCgpzbWFydF9jb250cmFjdHMuY2lyY3VsYXRpbmdfc3VwcGx5LmNvbnRyYWN0LkNpcmN1bGF0aW5nU3VwcGx5LmNsZWFyX3N0YXRlX3Byb2dyYW06CiAgICBpbnQgMQogICAgcmV0dXJuCg=="
+ },
+ "state": {
+ "global": {
+ "num_byte_slices": 3,
+ "num_uints": 1
+ },
+ "local": {
+ "num_byte_slices": 0,
+ "num_uints": 0
+ }
+ },
+ "schema": {
+ "global": {
+ "declared": {
+ "asset_id": {
+ "type": "uint64",
+ "key": "asset_id"
+ },
+ "not_circulating_label_1": {
+ "type": "bytes",
+ "key": "burned"
+ },
+ "not_circulating_label_2": {
+ "type": "bytes",
+ "key": "locked"
+ },
+ "not_circulating_label_3": {
+ "type": "bytes",
+ "key": "generic"
+ }
+ },
+ "reserved": {}
+ },
+ "local": {
+ "declared": {},
+ "reserved": {}
+ }
+ },
+ "contract": {
+ "name": "CirculatingSupply",
+ "methods": [
+ {
+ "name": "set_asset",
+ "args": [
+ {
+ "type": "uint64",
+ "name": "asset_id",
+ "desc": "ASA ID of the circulating supply"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ },
+ "desc": "Set the ASA ID for the circulating supply - Authorization: ASA Manager Address"
+ },
+ {
+ "name": "set_not_circulating_address",
+ "args": [
+ {
+ "type": "address",
+ "name": "address",
+ "desc": "Address to assign to the label to"
+ },
+ {
+ "type": "string",
+ "name": "label",
+ "desc": "Not-circulating label selector"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ },
+ "desc": "Set non-circulating supply addresses - Authorization: ASA Manager Address"
+ },
+ {
+ "name": "arc62_get_circulating_supply",
+ "args": [
+ {
+ "type": "uint64",
+ "name": "asset_id",
+ "desc": "ASA ID of the circulating supply"
+ }
+ ],
+ "returns": {
+ "type": "uint64",
+ "desc": "ASA circulating supply"
+ },
+ "desc": "Get ASA circulating supply"
+ }
+ ],
+ "networks": {},
+ "desc": "ARC-62 Reference Implementation"
+ },
+ "bare_call_config": {
+ "no_op": "CREATE"
+ }
+}"""
+APP_SPEC = algokit_utils.ApplicationSpecification.from_json(_APP_SPEC_JSON)
+_TReturn = typing.TypeVar("_TReturn")
+
+
+class _ArgsBase(ABC, typing.Generic[_TReturn]):
+ @staticmethod
+ @abstractmethod
+ def method() -> str:
+ ...
+
+
+_TArgs = typing.TypeVar("_TArgs", bound=_ArgsBase[typing.Any])
+
+
+@dataclasses.dataclass(kw_only=True)
+class _TArgsHolder(typing.Generic[_TArgs]):
+ args: _TArgs
+
+
+def _filter_none(value: dict | typing.Any) -> dict | typing.Any:
+ if isinstance(value, dict):
+ return {k: _filter_none(v) for k, v in value.items() if v is not None}
+ return value
+
+
+def _as_dict(data: typing.Any, *, convert_all: bool = True) -> dict[str, typing.Any]:
+ if data is None:
+ return {}
+ if not dataclasses.is_dataclass(data):
+ raise TypeError(f"{data} must be a dataclass")
+ if convert_all:
+ result = dataclasses.asdict(data) # type: ignore[call-overload]
+ else:
+ result = {f.name: getattr(data, f.name) for f in dataclasses.fields(data)}
+ return _filter_none(result)
+
+
+def _convert_transaction_parameters(
+ transaction_parameters: algokit_utils.TransactionParameters | None,
+) -> algokit_utils.TransactionParametersDict:
+ return typing.cast(algokit_utils.TransactionParametersDict, _as_dict(transaction_parameters))
+
+
+def _convert_call_transaction_parameters(
+ transaction_parameters: algokit_utils.TransactionParameters | None,
+) -> algokit_utils.OnCompleteCallParametersDict:
+ return typing.cast(algokit_utils.OnCompleteCallParametersDict, _as_dict(transaction_parameters))
+
+
+def _convert_create_transaction_parameters(
+ transaction_parameters: algokit_utils.TransactionParameters | None,
+ on_complete: algokit_utils.OnCompleteActionName,
+) -> algokit_utils.CreateCallParametersDict:
+ result = typing.cast(algokit_utils.CreateCallParametersDict, _as_dict(transaction_parameters))
+ on_complete_enum = on_complete.replace("_", " ").title().replace(" ", "") + "OC"
+ result["on_complete"] = getattr(algosdk.transaction.OnComplete, on_complete_enum)
+ return result
+
+
+def _convert_deploy_args(
+ deploy_args: algokit_utils.DeployCallArgs | None,
+) -> algokit_utils.ABICreateCallArgsDict | None:
+ if deploy_args is None:
+ return None
+
+ deploy_args_dict = typing.cast(algokit_utils.ABICreateCallArgsDict, _as_dict(deploy_args))
+ if isinstance(deploy_args, _TArgsHolder):
+ deploy_args_dict["args"] = _as_dict(deploy_args.args)
+ deploy_args_dict["method"] = deploy_args.args.method()
+
+ return deploy_args_dict
+
+
+@dataclasses.dataclass(kw_only=True)
+class SetAssetArgs(_ArgsBase[None]):
+ """Set the ASA ID for the circulating supply - Authorization: ASA Manager Address"""
+
+ asset_id: int
+ """ASA ID of the circulating supply"""
+
+ @staticmethod
+ def method() -> str:
+ return "set_asset(uint64)void"
+
+
+@dataclasses.dataclass(kw_only=True)
+class SetNotCirculatingAddressArgs(_ArgsBase[None]):
+ """Set non-circulating supply addresses - Authorization: ASA Manager Address"""
+
+ address: str
+ """Address to assign to the label to"""
+ label: str
+ """Not-circulating label selector"""
+
+ @staticmethod
+ def method() -> str:
+ return "set_not_circulating_address(address,string)void"
+
+
+@dataclasses.dataclass(kw_only=True)
+class Arc62GetCirculatingSupplyArgs(_ArgsBase[int]):
+ """Get ASA circulating supply"""
+
+ asset_id: int
+ """ASA ID of the circulating supply"""
+
+ @staticmethod
+ def method() -> str:
+ return "arc62_get_circulating_supply(uint64)uint64"
+
+
+class ByteReader:
+ def __init__(self, data: bytes):
+ self._data = data
+
+ @property
+ def as_bytes(self) -> bytes:
+ return self._data
+
+ @property
+ def as_str(self) -> str:
+ return self._data.decode("utf8")
+
+ @property
+ def as_base64(self) -> str:
+ return base64.b64encode(self._data).decode("utf8")
+
+ @property
+ def as_hex(self) -> str:
+ return self._data.hex()
+
+
+class GlobalState:
+ def __init__(self, data: dict[bytes, bytes | int]):
+ self.asset_id = typing.cast(int, data.get(b"asset_id"))
+ self.not_circulating_label_1 = ByteReader(typing.cast(bytes, data.get(b"burned")))
+ self.not_circulating_label_2 = ByteReader(typing.cast(bytes, data.get(b"locked")))
+ self.not_circulating_label_3 = ByteReader(typing.cast(bytes, data.get(b"generic")))
+
+
+@dataclasses.dataclass(kw_only=True)
+class SimulateOptions:
+ allow_more_logs: bool = dataclasses.field(default=False)
+ allow_empty_signatures: bool = dataclasses.field(default=False)
+ extra_opcode_budget: int = dataclasses.field(default=0)
+ exec_trace_config: models.SimulateTraceConfig | None = dataclasses.field(default=None)
+
+
+class Composer:
+
+ def __init__(self, app_client: algokit_utils.ApplicationClient, atc: AtomicTransactionComposer):
+ self.app_client = app_client
+ self.atc = atc
+
+ def build(self) -> AtomicTransactionComposer:
+ return self.atc
+
+ def simulate(self, options: SimulateOptions | None = None) -> SimulateAtomicTransactionResponse:
+ request = models.SimulateRequest(
+ allow_more_logs=options.allow_more_logs,
+ allow_empty_signatures=options.allow_empty_signatures,
+ extra_opcode_budget=options.extra_opcode_budget,
+ exec_trace_config=options.exec_trace_config,
+ txn_groups=[]
+ ) if options else None
+ result = self.atc.simulate(self.app_client.algod_client, request)
+ return result
+
+ def execute(self) -> AtomicTransactionResponse:
+ return self.app_client.execute_atc(self.atc)
+
+ def set_asset(
+ self,
+ *,
+ asset_id: int,
+ transaction_parameters: algokit_utils.TransactionParameters | None = None,
+ ) -> "Composer":
+ """Set the ASA ID for the circulating supply - Authorization: ASA Manager Address
+
+ Adds a call to `set_asset(uint64)void` ABI method
+
+ :param int asset_id: ASA ID of the circulating supply
+ :param algokit_utils.TransactionParameters transaction_parameters: (optional) Additional transaction parameters
+ :returns Composer: This Composer instance"""
+
+ args = SetAssetArgs(
+ asset_id=asset_id,
+ )
+ self.app_client.compose_call(
+ self.atc,
+ call_abi_method=args.method(),
+ transaction_parameters=_convert_call_transaction_parameters(transaction_parameters),
+ **_as_dict(args, convert_all=True),
+ )
+ return self
+
+ def set_not_circulating_address(
+ self,
+ *,
+ address: str,
+ label: str,
+ transaction_parameters: algokit_utils.TransactionParameters | None = None,
+ ) -> "Composer":
+ """Set non-circulating supply addresses - Authorization: ASA Manager Address
+
+ Adds a call to `set_not_circulating_address(address,string)void` ABI method
+
+ :param str address: Address to assign to the label to
+ :param str label: Not-circulating label selector
+ :param algokit_utils.TransactionParameters transaction_parameters: (optional) Additional transaction parameters
+ :returns Composer: This Composer instance"""
+
+ args = SetNotCirculatingAddressArgs(
+ address=address,
+ label=label,
+ )
+ self.app_client.compose_call(
+ self.atc,
+ call_abi_method=args.method(),
+ transaction_parameters=_convert_call_transaction_parameters(transaction_parameters),
+ **_as_dict(args, convert_all=True),
+ )
+ return self
+
+ def arc62_get_circulating_supply(
+ self,
+ *,
+ asset_id: int,
+ transaction_parameters: algokit_utils.TransactionParameters | None = None,
+ ) -> "Composer":
+ """Get ASA circulating supply
+
+ Adds a call to `arc62_get_circulating_supply(uint64)uint64` ABI method
+
+ :param int asset_id: ASA ID of the circulating supply
+ :param algokit_utils.TransactionParameters transaction_parameters: (optional) Additional transaction parameters
+ :returns Composer: This Composer instance"""
+
+ args = Arc62GetCirculatingSupplyArgs(
+ asset_id=asset_id,
+ )
+ self.app_client.compose_call(
+ self.atc,
+ call_abi_method=args.method(),
+ transaction_parameters=_convert_call_transaction_parameters(transaction_parameters),
+ **_as_dict(args, convert_all=True),
+ )
+ return self
+
+ def create_bare(
+ self,
+ *,
+ on_complete: typing.Literal["no_op"] = "no_op",
+ transaction_parameters: algokit_utils.CreateTransactionParameters | None = None,
+ ) -> "Composer":
+ """Adds a call to create an application using the no_op bare method
+
+ :param typing.Literal[no_op] on_complete: On completion type to use
+ :param algokit_utils.CreateTransactionParameters transaction_parameters: (optional) Additional transaction parameters
+ :returns Composer: This Composer instance"""
+
+ self.app_client.compose_create(
+ self.atc,
+ call_abi_method=False,
+ transaction_parameters=_convert_create_transaction_parameters(transaction_parameters, on_complete),
+ )
+ return self
+
+ def clear_state(
+ self,
+ transaction_parameters: algokit_utils.TransactionParameters | None = None,
+ app_args: list[bytes] | None = None,
+ ) -> "Composer":
+ """Adds a call to the application with on completion set to ClearState
+
+ :param algokit_utils.TransactionParameters transaction_parameters: (optional) Additional transaction parameters
+ :param list[bytes] | None app_args: (optional) Application args to pass"""
+
+ self.app_client.compose_clear_state(self.atc, _convert_transaction_parameters(transaction_parameters), app_args)
+ return self
+
+
+class CirculatingSupplyClient:
+ """ARC-62 Reference Implementation
+
+ A class for interacting with the CirculatingSupply app providing high productivity and
+ strongly typed methods to deploy and call the app"""
+
+ @typing.overload
+ def __init__(
+ self,
+ algod_client: algosdk.v2client.algod.AlgodClient,
+ *,
+ app_id: int = 0,
+ signer: TransactionSigner | algokit_utils.Account | None = None,
+ sender: str | None = None,
+ suggested_params: algosdk.transaction.SuggestedParams | None = None,
+ template_values: algokit_utils.TemplateValueMapping | None = None,
+ app_name: str | None = None,
+ ) -> None:
+ ...
+
+ @typing.overload
+ def __init__(
+ self,
+ algod_client: algosdk.v2client.algod.AlgodClient,
+ *,
+ creator: str | algokit_utils.Account,
+ indexer_client: algosdk.v2client.indexer.IndexerClient | None = None,
+ existing_deployments: algokit_utils.AppLookup | None = None,
+ signer: TransactionSigner | algokit_utils.Account | None = None,
+ sender: str | None = None,
+ suggested_params: algosdk.transaction.SuggestedParams | None = None,
+ template_values: algokit_utils.TemplateValueMapping | None = None,
+ app_name: str | None = None,
+ ) -> None:
+ ...
+
+ def __init__(
+ self,
+ algod_client: algosdk.v2client.algod.AlgodClient,
+ *,
+ creator: str | algokit_utils.Account | None = None,
+ indexer_client: algosdk.v2client.indexer.IndexerClient | None = None,
+ existing_deployments: algokit_utils.AppLookup | None = None,
+ app_id: int = 0,
+ signer: TransactionSigner | algokit_utils.Account | None = None,
+ sender: str | None = None,
+ suggested_params: algosdk.transaction.SuggestedParams | None = None,
+ template_values: algokit_utils.TemplateValueMapping | None = None,
+ app_name: str | None = None,
+ ) -> None:
+ """
+ CirculatingSupplyClient can be created with an app_id to interact with an existing application, alternatively
+ it can be created with a creator and indexer_client specified to find existing applications by name and creator.
+
+ :param AlgodClient algod_client: AlgoSDK algod client
+ :param int app_id: The app_id of an existing application, to instead find the application by creator and name
+ use the creator and indexer_client parameters
+ :param str | Account creator: The address or Account of the app creator to resolve the app_id
+ :param IndexerClient indexer_client: AlgoSDK indexer client, only required if deploying or finding app_id by
+ creator and app name
+ :param AppLookup existing_deployments:
+ :param TransactionSigner | Account signer: Account or signer to use to sign transactions, if not specified and
+ creator was passed as an Account will use that.
+ :param str sender: Address to use as the sender for all transactions, will use the address associated with the
+ signer if not specified.
+ :param TemplateValueMapping template_values: Values to use for TMPL_* template variables, dictionary keys should
+ *NOT* include the TMPL_ prefix
+ :param str | None app_name: Name of application to use when deploying, defaults to name defined on the
+ Application Specification
+ """
+
+ self.app_spec = APP_SPEC
+
+ # calling full __init__ signature, so ignoring mypy warning about overloads
+ self.app_client = algokit_utils.ApplicationClient( # type: ignore[call-overload, misc]
+ algod_client=algod_client,
+ app_spec=self.app_spec,
+ app_id=app_id,
+ creator=creator,
+ indexer_client=indexer_client,
+ existing_deployments=existing_deployments,
+ signer=signer,
+ sender=sender,
+ suggested_params=suggested_params,
+ template_values=template_values,
+ app_name=app_name,
+ )
+
+ @property
+ def algod_client(self) -> algosdk.v2client.algod.AlgodClient:
+ return self.app_client.algod_client
+
+ @property
+ def app_id(self) -> int:
+ return self.app_client.app_id
+
+ @app_id.setter
+ def app_id(self, value: int) -> None:
+ self.app_client.app_id = value
+
+ @property
+ def app_address(self) -> str:
+ return self.app_client.app_address
+
+ @property
+ def sender(self) -> str | None:
+ return self.app_client.sender
+
+ @sender.setter
+ def sender(self, value: str) -> None:
+ self.app_client.sender = value
+
+ @property
+ def signer(self) -> TransactionSigner | None:
+ return self.app_client.signer
+
+ @signer.setter
+ def signer(self, value: TransactionSigner) -> None:
+ self.app_client.signer = value
+
+ @property
+ def suggested_params(self) -> algosdk.transaction.SuggestedParams | None:
+ return self.app_client.suggested_params
+
+ @suggested_params.setter
+ def suggested_params(self, value: algosdk.transaction.SuggestedParams | None) -> None:
+ self.app_client.suggested_params = value
+
+ def get_global_state(self) -> GlobalState:
+ """Returns the application's global state wrapped in a strongly typed class with options to format the stored value"""
+
+ state = typing.cast(dict[bytes, bytes | int], self.app_client.get_global_state(raw=True))
+ return GlobalState(state)
+
+ def set_asset(
+ self,
+ *,
+ asset_id: int,
+ transaction_parameters: algokit_utils.TransactionParameters | None = None,
+ ) -> algokit_utils.ABITransactionResponse[None]:
+ """Set the ASA ID for the circulating supply - Authorization: ASA Manager Address
+
+ Calls `set_asset(uint64)void` ABI method
+
+ :param int asset_id: ASA ID of the circulating supply
+ :param algokit_utils.TransactionParameters transaction_parameters: (optional) Additional transaction parameters
+ :returns algokit_utils.ABITransactionResponse[None]: The result of the transaction"""
+
+ args = SetAssetArgs(
+ asset_id=asset_id,
+ )
+ result = self.app_client.call(
+ call_abi_method=args.method(),
+ transaction_parameters=_convert_call_transaction_parameters(transaction_parameters),
+ **_as_dict(args, convert_all=True),
+ )
+ return result
+
+ def set_not_circulating_address(
+ self,
+ *,
+ address: str,
+ label: str,
+ transaction_parameters: algokit_utils.TransactionParameters | None = None,
+ ) -> algokit_utils.ABITransactionResponse[None]:
+ """Set non-circulating supply addresses - Authorization: ASA Manager Address
+
+ Calls `set_not_circulating_address(address,string)void` ABI method
+
+ :param str address: Address to assign to the label to
+ :param str label: Not-circulating label selector
+ :param algokit_utils.TransactionParameters transaction_parameters: (optional) Additional transaction parameters
+ :returns algokit_utils.ABITransactionResponse[None]: The result of the transaction"""
+
+ args = SetNotCirculatingAddressArgs(
+ address=address,
+ label=label,
+ )
+ result = self.app_client.call(
+ call_abi_method=args.method(),
+ transaction_parameters=_convert_call_transaction_parameters(transaction_parameters),
+ **_as_dict(args, convert_all=True),
+ )
+ return result
+
+ def arc62_get_circulating_supply(
+ self,
+ *,
+ asset_id: int,
+ transaction_parameters: algokit_utils.TransactionParameters | None = None,
+ ) -> algokit_utils.ABITransactionResponse[int]:
+ """Get ASA circulating supply
+
+ Calls `arc62_get_circulating_supply(uint64)uint64` ABI method
+
+ :param int asset_id: ASA ID of the circulating supply
+ :param algokit_utils.TransactionParameters transaction_parameters: (optional) Additional transaction parameters
+ :returns algokit_utils.ABITransactionResponse[int]: ASA circulating supply"""
+
+ args = Arc62GetCirculatingSupplyArgs(
+ asset_id=asset_id,
+ )
+ result = self.app_client.call(
+ call_abi_method=args.method(),
+ transaction_parameters=_convert_call_transaction_parameters(transaction_parameters),
+ **_as_dict(args, convert_all=True),
+ )
+ return result
+
+ def create_bare(
+ self,
+ *,
+ on_complete: typing.Literal["no_op"] = "no_op",
+ transaction_parameters: algokit_utils.CreateTransactionParameters | None = None,
+ ) -> algokit_utils.TransactionResponse:
+ """Creates an application using the no_op bare method
+
+ :param typing.Literal[no_op] on_complete: On completion type to use
+ :param algokit_utils.CreateTransactionParameters transaction_parameters: (optional) Additional transaction parameters
+ :returns algokit_utils.TransactionResponse: The result of the transaction"""
+
+ result = self.app_client.create(
+ call_abi_method=False,
+ transaction_parameters=_convert_create_transaction_parameters(transaction_parameters, on_complete),
+ )
+ return result
+
+ def clear_state(
+ self,
+ transaction_parameters: algokit_utils.TransactionParameters | None = None,
+ app_args: list[bytes] | None = None,
+ ) -> algokit_utils.TransactionResponse:
+ """Calls the application with on completion set to ClearState
+
+ :param algokit_utils.TransactionParameters transaction_parameters: (optional) Additional transaction parameters
+ :param list[bytes] | None app_args: (optional) Application args to pass
+ :returns algokit_utils.TransactionResponse: The result of the transaction"""
+
+ return self.app_client.clear_state(_convert_transaction_parameters(transaction_parameters), app_args)
+
+ def deploy(
+ self,
+ version: str | None = None,
+ *,
+ signer: TransactionSigner | None = None,
+ sender: str | None = None,
+ allow_update: bool | None = None,
+ allow_delete: bool | None = None,
+ on_update: algokit_utils.OnUpdate = algokit_utils.OnUpdate.Fail,
+ on_schema_break: algokit_utils.OnSchemaBreak = algokit_utils.OnSchemaBreak.Fail,
+ template_values: algokit_utils.TemplateValueMapping | None = None,
+ create_args: algokit_utils.DeployCallArgs | None = None,
+ update_args: algokit_utils.DeployCallArgs | None = None,
+ delete_args: algokit_utils.DeployCallArgs | None = None,
+ ) -> algokit_utils.DeployResponse:
+ """Deploy an application and update client to reference it.
+
+ Idempotently deploy (create, update/delete if changed) an app against the given name via the given creator
+ account, including deploy-time template placeholder substitutions.
+ To understand the architecture decisions behind this functionality please see
+
+
+ ```{note}
+ If there is a breaking state schema change to an existing app (and `on_schema_break` is set to
+ 'ReplaceApp' the existing app will be deleted and re-created.
+ ```
+
+ ```{note}
+ If there is an update (different TEAL code) to an existing app (and `on_update` is set to 'ReplaceApp')
+ the existing app will be deleted and re-created.
+ ```
+
+ :param str version: version to use when creating or updating app, if None version will be auto incremented
+ :param algosdk.atomic_transaction_composer.TransactionSigner signer: signer to use when deploying app
+ , if None uses self.signer
+ :param str sender: sender address to use when deploying app, if None uses self.sender
+ :param bool allow_delete: Used to set the `TMPL_DELETABLE` template variable to conditionally control if an app
+ can be deleted
+ :param bool allow_update: Used to set the `TMPL_UPDATABLE` template variable to conditionally control if an app
+ can be updated
+ :param OnUpdate on_update: Determines what action to take if an application update is required
+ :param OnSchemaBreak on_schema_break: Determines what action to take if an application schema requirements
+ has increased beyond the current allocation
+ :param dict[str, int|str|bytes] template_values: Values to use for `TMPL_*` template variables, dictionary keys
+ should *NOT* include the TMPL_ prefix
+ :param algokit_utils.DeployCallArgs | None create_args: Arguments used when creating an application
+ :param algokit_utils.DeployCallArgs | None update_args: Arguments used when updating an application
+ :param algokit_utils.DeployCallArgs | None delete_args: Arguments used when deleting an application
+ :return DeployResponse: details action taken and relevant transactions
+ :raises DeploymentError: If the deployment failed"""
+
+ return self.app_client.deploy(
+ version,
+ signer=signer,
+ sender=sender,
+ allow_update=allow_update,
+ allow_delete=allow_delete,
+ on_update=on_update,
+ on_schema_break=on_schema_break,
+ template_values=template_values,
+ create_args=_convert_deploy_args(create_args),
+ update_args=_convert_deploy_args(update_args),
+ delete_args=_convert_deploy_args(delete_args),
+ )
+
+ def compose(self, atc: AtomicTransactionComposer | None = None) -> Composer:
+ return Composer(self.app_client, atc or AtomicTransactionComposer())
diff --git a/assets/arc-0062/smart_contracts/circulating_supply/config.py b/assets/arc-0062/smart_contracts/circulating_supply/config.py
new file mode 100644
index 000000000..b1885f911
--- /dev/null
+++ b/assets/arc-0062/smart_contracts/circulating_supply/config.py
@@ -0,0 +1,6 @@
+from typing import Final
+
+# Roles
+NOT_CIRCULATING_LABEL_1: Final[str] = "burned"
+NOT_CIRCULATING_LABEL_2: Final[str] = "locked"
+NOT_CIRCULATING_LABEL_3: Final[str] = "generic"
diff --git a/assets/arc-0062/smart_contracts/circulating_supply/contract.py b/assets/arc-0062/smart_contracts/circulating_supply/contract.py
new file mode 100644
index 000000000..c2266ea47
--- /dev/null
+++ b/assets/arc-0062/smart_contracts/circulating_supply/contract.py
@@ -0,0 +1,122 @@
+# ruff: noqa: B011
+
+from algopy import (
+ Account,
+ ARC4Contract,
+ Asset,
+ Global,
+ GlobalState,
+ String,
+ Txn,
+ UInt64,
+)
+from algopy.arc4 import Address, abimethod
+
+import smart_contracts.errors.std_errors as err
+
+from . import config as cfg
+
+
+class CirculatingSupply(ARC4Contract):
+ """ARC-62 Reference Implementation"""
+
+ def __init__(self) -> None:
+ # Global State
+ self.asset_id = UInt64()
+ self.not_circulating_label_1 = GlobalState(
+ Address(), key=cfg.NOT_CIRCULATING_LABEL_1
+ )
+ self.not_circulating_label_2 = GlobalState(
+ Address(), key=cfg.NOT_CIRCULATING_LABEL_2
+ )
+ self.not_circulating_label_3 = GlobalState(
+ Address(), key=cfg.NOT_CIRCULATING_LABEL_3
+ )
+
+ @abimethod()
+ def set_asset(self, asset_id: UInt64) -> None:
+ """
+ Set the ASA ID for the circulating supply - Authorization: ASA Manager Address
+
+ Args:
+ asset_id: ASA ID of the circulating supply
+ """
+ asset = Asset(asset_id)
+ # Preconditions
+ assert Txn.sender == asset.manager and not self.asset_id, err.UNAUTHORIZED
+ # Effects
+ self.asset_id = asset_id
+
+ @abimethod()
+ def set_not_circulating_address(self, address: Address, label: String) -> None:
+ """
+ Set non-circulating supply addresses - Authorization: ASA Manager Address
+
+ Args:
+ address: Address to assign to the label to
+ label: Not-circulating label selector
+ """
+ asset = Asset(self.asset_id)
+ # Preconditions
+ assert Txn.sender == asset.manager, err.UNAUTHORIZED
+ assert Account(address.bytes).is_opted_in(asset), err.NOT_OPTED_IN
+ # Effects
+ match label:
+ case cfg.NOT_CIRCULATING_LABEL_1:
+ self.not_circulating_label_1.value = address
+ case cfg.NOT_CIRCULATING_LABEL_2:
+ self.not_circulating_label_2.value = address
+ case cfg.NOT_CIRCULATING_LABEL_3:
+ self.not_circulating_label_3.value = address
+ case _:
+ assert False, err.INVALID_LABEL
+
+ @abimethod(readonly=True)
+ def arc62_get_circulating_supply(self, asset_id: UInt64) -> UInt64:
+ """
+ Get ASA circulating supply
+
+ Args:
+ asset_id: ASA ID of the circulating supply
+
+ Returns:
+ ASA circulating supply
+ """
+ asset = Asset(asset_id)
+ not_circulating_1 = Account(self.not_circulating_label_1.value.bytes)
+ not_circulating_2 = Account(self.not_circulating_label_2.value.bytes)
+ not_circulating_3 = Account(self.not_circulating_label_3.value.bytes)
+ # Preconditions
+ assert asset_id == self.asset_id, err.INVALID_ASSET_ID
+ # Effects
+ reserve_balance = (
+ UInt64(0)
+ if asset.reserve == Global.zero_address
+ or not asset.reserve.is_opted_in(asset)
+ else asset.balance(asset.reserve)
+ )
+ not_circulating_balance_1 = (
+ UInt64(0)
+ if not_circulating_1 == Global.zero_address
+ or not not_circulating_1.is_opted_in(asset)
+ else asset.balance(not_circulating_1)
+ )
+ not_circulating_balance_2 = (
+ UInt64(0)
+ if not_circulating_2 == Global.zero_address
+ or not not_circulating_2.is_opted_in(asset)
+ else asset.balance(not_circulating_2)
+ )
+ not_circulating_balance_3 = (
+ UInt64(0)
+ if not_circulating_3 == Global.zero_address
+ or not not_circulating_3.is_opted_in(asset)
+ else asset.balance(not_circulating_3)
+ )
+ return (
+ asset.total
+ - reserve_balance
+ - not_circulating_balance_1
+ - not_circulating_balance_2
+ - not_circulating_balance_3
+ )
diff --git a/assets/arc-0062/smart_contracts/circulating_supply/deploy_config.py b/assets/arc-0062/smart_contracts/circulating_supply/deploy_config.py
new file mode 100644
index 000000000..753c6e3a6
--- /dev/null
+++ b/assets/arc-0062/smart_contracts/circulating_supply/deploy_config.py
@@ -0,0 +1,30 @@
+import logging
+
+import algokit_utils
+from algosdk.v2client.algod import AlgodClient
+from algosdk.v2client.indexer import IndexerClient
+
+logger = logging.getLogger(__name__)
+
+
+# define deployment behaviour based on supplied app spec
+def deploy(
+ algod_client: AlgodClient,
+ indexer_client: IndexerClient,
+ app_spec: algokit_utils.ApplicationSpecification,
+ deployer: algokit_utils.Account,
+) -> None:
+ from smart_contracts.artifacts.circulating_supply.circulating_supply_client import (
+ CirculatingSupplyClient,
+ )
+
+ app_client = CirculatingSupplyClient(
+ algod_client,
+ creator=deployer,
+ indexer_client=indexer_client,
+ )
+
+ app_client.deploy(
+ on_schema_break=algokit_utils.OnSchemaBreak.AppendApp,
+ on_update=algokit_utils.OnUpdate.AppendApp,
+ )
diff --git a/assets/arc-0062/smart_contracts/errors/__init__.py b/assets/arc-0062/smart_contracts/errors/__init__.py
new file mode 100644
index 000000000..e69de29bb
diff --git a/assets/arc-0062/smart_contracts/errors/std_errors.py b/assets/arc-0062/smart_contracts/errors/std_errors.py
new file mode 100644
index 000000000..9c7bbe950
--- /dev/null
+++ b/assets/arc-0062/smart_contracts/errors/std_errors.py
@@ -0,0 +1,5 @@
+# Errors
+UNAUTHORIZED = "Unauthorized"
+NOT_OPTED_IN = "Not Opted-In"
+INVALID_LABEL = "Invalid Label"
+INVALID_ASSET_ID = "Invalid ASA ID"
diff --git a/assets/arc-0062/tests/__init__.py b/assets/arc-0062/tests/__init__.py
new file mode 100644
index 000000000..e69de29bb
diff --git a/assets/arc-0062/tests/conftest.py b/assets/arc-0062/tests/conftest.py
new file mode 100644
index 000000000..8f354c485
--- /dev/null
+++ b/assets/arc-0062/tests/conftest.py
@@ -0,0 +1,329 @@
+import pytest
+from algokit_utils import (
+ EnsureBalanceParameters,
+ OnCompleteCallParameters,
+ ensure_funded,
+ get_algod_client,
+ get_default_localnet_config,
+ get_indexer_client,
+)
+from algokit_utils.beta.account_manager import AddressAndSigner
+from algokit_utils.beta.algorand_client import (
+ AlgorandClient,
+ AssetCreateParams,
+ AssetOptInParams,
+ AssetTransferParams,
+)
+from algokit_utils.config import config
+from algosdk.v2client.algod import AlgodClient
+from algosdk.v2client.indexer import IndexerClient
+
+from smart_contracts.artifacts.circulating_supply.circulating_supply_client import (
+ CirculatingSupplyClient,
+)
+
+INITIAL_FUNDS = 100_000_000
+ASA_TOTAL = 1000
+RESERVE_BALANCE = 420
+NOT_CIRCULATING_BALANCE_1 = 69
+NOT_CIRCULATING_BALANCE_2 = 42
+NOT_CIRCULATING_BALANCE_3 = 4
+
+
+def get_asset_balance(
+ algorand_client: AlgorandClient, address: str, asset_id: int
+) -> int:
+ asset_balance: int = algorand_client.account.get_asset_information( # type: ignore
+ sender=address, asset_id=asset_id
+ )["asset-holding"]["amount"]
+ return asset_balance
+
+
+@pytest.fixture(scope="session")
+def algod_client() -> AlgodClient:
+ # by default we are using localnet algod
+ client = get_algod_client(get_default_localnet_config("algod"))
+ return client
+
+
+@pytest.fixture(scope="session")
+def indexer_client() -> IndexerClient:
+ return get_indexer_client(get_default_localnet_config("indexer"))
+
+
+@pytest.fixture(scope="session")
+def algorand_client() -> AlgorandClient:
+ client = AlgorandClient.default_local_net()
+ client.set_suggested_params_timeout(0)
+ return client
+
+
+@pytest.fixture(scope="session")
+def deployer(algorand_client: AlgorandClient) -> AddressAndSigner:
+ acct = algorand_client.account.random()
+
+ ensure_funded(
+ algorand_client.client.algod,
+ EnsureBalanceParameters(
+ account_to_fund=acct.address,
+ min_spending_balance_micro_algos=INITIAL_FUNDS,
+ ),
+ )
+ return acct
+
+
+@pytest.fixture(scope="function")
+def circulating_supply_client(
+ algod_client: AlgodClient, indexer_client: IndexerClient, deployer: AddressAndSigner
+) -> CirculatingSupplyClient:
+ config.configure(debug=False)
+
+ client = CirculatingSupplyClient(
+ algod_client=algod_client,
+ indexer_client=indexer_client,
+ creator=deployer.address,
+ signer=deployer.signer,
+ )
+ client.create_bare()
+ return client
+
+
+@pytest.fixture(scope="session")
+def asset_creator(algorand_client: AlgorandClient) -> AddressAndSigner:
+ acct = algorand_client.account.random()
+
+ ensure_funded(
+ algorand_client.client.algod,
+ EnsureBalanceParameters(
+ account_to_fund=acct.address,
+ min_spending_balance_micro_algos=INITIAL_FUNDS,
+ ),
+ )
+ return acct
+
+
+@pytest.fixture(scope="session")
+def asset_manager(algorand_client: AlgorandClient) -> AddressAndSigner:
+ acct = algorand_client.account.random()
+
+ ensure_funded(
+ algorand_client.client.algod,
+ EnsureBalanceParameters(
+ account_to_fund=acct.address,
+ min_spending_balance_micro_algos=INITIAL_FUNDS,
+ ),
+ )
+ return acct
+
+
+@pytest.fixture(scope="session")
+def asset_reserve(algorand_client: AlgorandClient) -> AddressAndSigner:
+ acct = algorand_client.account.random()
+
+ ensure_funded(
+ algorand_client.client.algod,
+ EnsureBalanceParameters(
+ account_to_fund=acct.address,
+ min_spending_balance_micro_algos=INITIAL_FUNDS,
+ ),
+ )
+ return acct
+
+
+@pytest.fixture(scope="session")
+def not_circulating_address_1(algorand_client: AlgorandClient) -> AddressAndSigner:
+ acct = algorand_client.account.random()
+
+ ensure_funded(
+ algorand_client.client.algod,
+ EnsureBalanceParameters(
+ account_to_fund=acct.address,
+ min_spending_balance_micro_algos=INITIAL_FUNDS,
+ ),
+ )
+ return acct
+
+
+@pytest.fixture(scope="session")
+def not_circulating_address_2(algorand_client: AlgorandClient) -> AddressAndSigner:
+ acct = algorand_client.account.random()
+
+ ensure_funded(
+ algorand_client.client.algod,
+ EnsureBalanceParameters(
+ account_to_fund=acct.address,
+ min_spending_balance_micro_algos=INITIAL_FUNDS,
+ ),
+ )
+ return acct
+
+
+@pytest.fixture(scope="session")
+def not_circulating_address_3(algorand_client: AlgorandClient) -> AddressAndSigner:
+ acct = algorand_client.account.random()
+
+ ensure_funded(
+ algorand_client.client.algod,
+ EnsureBalanceParameters(
+ account_to_fund=acct.address,
+ min_spending_balance_micro_algos=INITIAL_FUNDS,
+ ),
+ )
+ return acct
+
+
+@pytest.fixture(scope="function")
+def asset(
+ algorand_client: AlgorandClient,
+ asset_creator: AddressAndSigner,
+ asset_manager: AddressAndSigner,
+ asset_reserve: AddressAndSigner,
+) -> int:
+ txn_result = algorand_client.send.asset_create( # type: ignore
+ AssetCreateParams(
+ sender=asset_creator.address,
+ signer=asset_creator.signer,
+ total=ASA_TOTAL,
+ manager=asset_manager.address,
+ reserve=asset_reserve.address,
+ )
+ )
+ return txn_result["confirmation"]["asset-index"] # type: ignore
+
+
+@pytest.fixture(scope="function")
+def reserve_with_balance(
+ algorand_client: AlgorandClient,
+ asset_creator: AddressAndSigner,
+ asset_reserve: AddressAndSigner,
+ asset: int,
+) -> AddressAndSigner:
+ algorand_client.send.asset_opt_in(
+ AssetOptInParams(
+ sender=asset_reserve.address,
+ signer=asset_reserve.signer,
+ asset_id=asset,
+ )
+ )
+ algorand_client.send.asset_transfer(
+ AssetTransferParams(
+ sender=asset_creator.address,
+ signer=asset_creator.signer,
+ asset_id=asset,
+ amount=RESERVE_BALANCE,
+ receiver=asset_reserve.address,
+ )
+ )
+ assert (
+ get_asset_balance(algorand_client, asset_reserve.address, asset)
+ == RESERVE_BALANCE
+ )
+ return asset_reserve
+
+
+@pytest.fixture(scope="function")
+def not_circulating_balance_1(
+ algorand_client: AlgorandClient,
+ asset_creator: AddressAndSigner,
+ not_circulating_address_1: AddressAndSigner,
+ asset: int,
+) -> AddressAndSigner:
+ algorand_client.send.asset_opt_in(
+ AssetOptInParams(
+ sender=not_circulating_address_1.address,
+ signer=not_circulating_address_1.signer,
+ asset_id=asset,
+ )
+ )
+ algorand_client.send.asset_transfer(
+ AssetTransferParams(
+ sender=asset_creator.address,
+ signer=asset_creator.signer,
+ asset_id=asset,
+ amount=NOT_CIRCULATING_BALANCE_1,
+ receiver=not_circulating_address_1.address,
+ )
+ )
+ assert (
+ get_asset_balance(algorand_client, not_circulating_address_1.address, asset)
+ == NOT_CIRCULATING_BALANCE_1
+ )
+ return not_circulating_address_1
+
+
+@pytest.fixture(scope="function")
+def not_circulating_balance_2(
+ algorand_client: AlgorandClient,
+ asset_creator: AddressAndSigner,
+ not_circulating_address_2: AddressAndSigner,
+ asset: int,
+) -> AddressAndSigner:
+ algorand_client.send.asset_opt_in(
+ AssetOptInParams(
+ sender=not_circulating_address_2.address,
+ signer=not_circulating_address_2.signer,
+ asset_id=asset,
+ )
+ )
+ algorand_client.send.asset_transfer(
+ AssetTransferParams(
+ sender=asset_creator.address,
+ signer=asset_creator.signer,
+ asset_id=asset,
+ amount=NOT_CIRCULATING_BALANCE_2,
+ receiver=not_circulating_address_2.address,
+ )
+ )
+ assert (
+ get_asset_balance(algorand_client, not_circulating_address_2.address, asset)
+ == NOT_CIRCULATING_BALANCE_2
+ )
+ return not_circulating_address_2
+
+
+@pytest.fixture(scope="function")
+def not_circulating_balance_3(
+ algorand_client: AlgorandClient,
+ asset_creator: AddressAndSigner,
+ not_circulating_address_3: AddressAndSigner,
+ asset: int,
+) -> AddressAndSigner:
+ algorand_client.send.asset_opt_in(
+ AssetOptInParams(
+ sender=not_circulating_address_3.address,
+ signer=not_circulating_address_3.signer,
+ asset_id=asset,
+ )
+ )
+ algorand_client.send.asset_transfer(
+ AssetTransferParams(
+ sender=asset_creator.address,
+ signer=asset_creator.signer,
+ asset_id=asset,
+ amount=NOT_CIRCULATING_BALANCE_3,
+ receiver=not_circulating_address_3.address,
+ )
+ )
+ assert (
+ get_asset_balance(algorand_client, not_circulating_address_3.address, asset)
+ == NOT_CIRCULATING_BALANCE_3
+ )
+ return not_circulating_address_3
+
+
+@pytest.fixture(scope="function")
+def asset_circulating_supply_client(
+ circulating_supply_client: CirculatingSupplyClient,
+ asset_manager: AddressAndSigner,
+ asset: int,
+) -> CirculatingSupplyClient:
+ circulating_supply_client.set_asset(
+ asset_id=asset,
+ transaction_parameters=OnCompleteCallParameters(
+ sender=asset_manager.address,
+ signer=asset_manager.signer,
+ # TODO: Foreign resources should be auto-populated
+ foreign_assets=[asset],
+ ),
+ )
+ return circulating_supply_client
diff --git a/assets/arc-0062/tests/test_deploy.py b/assets/arc-0062/tests/test_deploy.py
new file mode 100644
index 000000000..e537b3581
--- /dev/null
+++ b/assets/arc-0062/tests/test_deploy.py
@@ -0,0 +1,15 @@
+from algosdk.constants import ZERO_ADDRESS
+from algosdk.encoding import encode_address
+
+from smart_contracts.artifacts.circulating_supply.circulating_supply_client import (
+ CirculatingSupplyClient,
+)
+
+
+def test_pass_create(circulating_supply_client: CirculatingSupplyClient) -> None:
+ state = circulating_supply_client.get_global_state()
+
+ assert state.asset_id == 0
+ assert encode_address(state.not_circulating_label_1.as_bytes) == ZERO_ADDRESS # type: ignore
+ assert encode_address(state.not_circulating_label_2.as_bytes) == ZERO_ADDRESS # type: ignore
+ assert encode_address(state.not_circulating_label_3.as_bytes) == ZERO_ADDRESS # type: ignore
diff --git a/assets/arc-0062/tests/test_get_circulating_supply.py b/assets/arc-0062/tests/test_get_circulating_supply.py
new file mode 100644
index 000000000..799958b44
--- /dev/null
+++ b/assets/arc-0062/tests/test_get_circulating_supply.py
@@ -0,0 +1,211 @@
+from algokit_utils import OnCompleteCallParameters
+from algokit_utils.beta.account_manager import AddressAndSigner
+from algokit_utils.beta.algorand_client import (
+ AlgorandClient,
+ AssetConfigParams,
+ AssetTransferParams,
+)
+
+from smart_contracts.artifacts.circulating_supply.circulating_supply_client import (
+ CirculatingSupplyClient,
+)
+from smart_contracts.circulating_supply import config as cfg
+
+from .conftest import get_asset_balance
+
+
+def test_pass_get_circulating_supply(
+ algorand_client: AlgorandClient,
+ asset_circulating_supply_client: CirculatingSupplyClient,
+ asset_manager: AddressAndSigner,
+ asset: int,
+ reserve_with_balance: AddressAndSigner,
+ not_circulating_balance_1: AddressAndSigner,
+ not_circulating_balance_2: AddressAndSigner,
+ not_circulating_balance_3: AddressAndSigner,
+) -> None:
+ total: int = algorand_client.client.algod.asset_info(asset)["params"]["total"] # type: ignore
+ reserve_balance: int = get_asset_balance(
+ algorand_client, reserve_with_balance.address, asset
+ )
+ nc_balance_1: int = get_asset_balance(
+ algorand_client, not_circulating_balance_1.address, asset
+ )
+ nc_balance_2: int = get_asset_balance(
+ algorand_client, not_circulating_balance_2.address, asset
+ )
+ nc_balance_3: int = get_asset_balance(
+ algorand_client, not_circulating_balance_3.address, asset
+ )
+
+ print("\nASA Total: ", total)
+ print("Reserve Balance: ", reserve_balance)
+ print(f"{cfg.NOT_CIRCULATING_LABEL_1.capitalize()} Balance: ", nc_balance_1)
+ print(f"{cfg.NOT_CIRCULATING_LABEL_2.capitalize()} Balance: ", nc_balance_2)
+ print(f"{cfg.NOT_CIRCULATING_LABEL_3.capitalize()} Balance: ", nc_balance_3)
+
+ not_circulating_addresses = [
+ reserve_with_balance.address,
+ not_circulating_balance_1.address,
+ not_circulating_balance_2.address,
+ not_circulating_balance_3.address,
+ ]
+
+ circulating_supply = asset_circulating_supply_client.arc62_get_circulating_supply(
+ asset_id=asset,
+ transaction_parameters=OnCompleteCallParameters(
+ # TODO: Foreign resources should be auto-populated
+ foreign_assets=[asset],
+ accounts=[reserve_with_balance.address],
+ ),
+ ).return_value
+ assert circulating_supply == total - reserve_balance
+
+ asset_circulating_supply_client.set_not_circulating_address(
+ address=not_circulating_balance_1.address,
+ label=cfg.NOT_CIRCULATING_LABEL_1,
+ transaction_parameters=OnCompleteCallParameters(
+ sender=asset_manager.address,
+ signer=asset_manager.signer,
+ # TODO: Foreign resources should be auto-populated
+ foreign_assets=[asset],
+ accounts=[not_circulating_balance_1.address],
+ ),
+ )
+ circulating_supply = asset_circulating_supply_client.arc62_get_circulating_supply(
+ asset_id=asset,
+ transaction_parameters=OnCompleteCallParameters(
+ # TODO: Foreign resources should be auto-populated
+ foreign_assets=[asset],
+ accounts=not_circulating_addresses,
+ ),
+ ).return_value
+ assert circulating_supply == total - reserve_balance - nc_balance_1
+
+ asset_circulating_supply_client.set_not_circulating_address(
+ address=not_circulating_balance_2.address,
+ label=cfg.NOT_CIRCULATING_LABEL_2,
+ transaction_parameters=OnCompleteCallParameters(
+ sender=asset_manager.address,
+ signer=asset_manager.signer,
+ # TODO: Foreign resources should be auto-populated
+ foreign_assets=[asset],
+ accounts=[not_circulating_balance_2.address],
+ ),
+ )
+ circulating_supply = asset_circulating_supply_client.arc62_get_circulating_supply(
+ asset_id=asset,
+ transaction_parameters=OnCompleteCallParameters(
+ # TODO: Foreign resources should be auto-populated
+ foreign_assets=[asset],
+ accounts=not_circulating_addresses,
+ ),
+ ).return_value
+ assert circulating_supply == total - reserve_balance - nc_balance_1 - nc_balance_2
+
+ asset_circulating_supply_client.set_not_circulating_address(
+ address=not_circulating_balance_3.address,
+ label=cfg.NOT_CIRCULATING_LABEL_3,
+ transaction_parameters=OnCompleteCallParameters(
+ sender=asset_manager.address,
+ signer=asset_manager.signer,
+ # TODO: Foreign resources should be auto-populated
+ foreign_assets=[asset],
+ accounts=[not_circulating_balance_3.address],
+ ),
+ )
+ circulating_supply = asset_circulating_supply_client.arc62_get_circulating_supply(
+ asset_id=asset,
+ transaction_parameters=OnCompleteCallParameters(
+ # TODO: Foreign resources should be auto-populated
+ foreign_assets=[asset],
+ accounts=not_circulating_addresses,
+ ),
+ ).return_value
+ assert (
+ circulating_supply
+ == total - reserve_balance - nc_balance_1 - nc_balance_2 - nc_balance_3
+ )
+ print("Circulating Supply: ", circulating_supply)
+
+
+def test_pass_no_reserve(
+ algorand_client: AlgorandClient,
+ asset_circulating_supply_client: CirculatingSupplyClient,
+ asset_manager: AddressAndSigner,
+ asset: int,
+) -> None:
+ total: int = algorand_client.client.algod.asset_info(asset)["params"]["total"] # type: ignore
+ algorand_client.send.asset_config(
+ AssetConfigParams(
+ sender=asset_manager.address,
+ signer=asset_manager.signer,
+ asset_id=asset,
+ manager=asset_manager.address,
+ reserve="",
+ ),
+ )
+ circulating_supply = asset_circulating_supply_client.arc62_get_circulating_supply(
+ asset_id=asset,
+ transaction_parameters=OnCompleteCallParameters(
+ # TODO: Foreign resources should be auto-populated
+ foreign_assets=[asset],
+ ),
+ ).return_value
+ assert circulating_supply == total
+
+
+def test_pass_closed_address(
+ algorand_client: AlgorandClient,
+ asset_circulating_supply_client: CirculatingSupplyClient,
+ asset_creator: AddressAndSigner,
+ asset_manager: AddressAndSigner,
+ reserve_with_balance: AddressAndSigner,
+ not_circulating_balance_1: AddressAndSigner,
+ asset: int,
+) -> None:
+ total: int = algorand_client.client.algod.asset_info(asset)["params"]["total"] # type: ignore
+
+ asset_circulating_supply_client.set_not_circulating_address(
+ address=not_circulating_balance_1.address,
+ label=cfg.NOT_CIRCULATING_LABEL_1,
+ transaction_parameters=OnCompleteCallParameters(
+ sender=asset_manager.address,
+ signer=asset_manager.signer,
+ # TODO: Foreign resources should be auto-populated
+ foreign_assets=[asset],
+ accounts=[not_circulating_balance_1.address],
+ ),
+ )
+
+ algorand_client.send.asset_transfer(
+ AssetTransferParams(
+ sender=not_circulating_balance_1.address,
+ signer=not_circulating_balance_1.signer,
+ asset_id=asset,
+ amount=0,
+ receiver=asset_creator.address,
+ close_asset_to=asset_creator.address,
+ ),
+ )
+
+ algorand_client.send.asset_transfer(
+ AssetTransferParams(
+ sender=reserve_with_balance.address,
+ signer=reserve_with_balance.signer,
+ asset_id=asset,
+ amount=0,
+ receiver=asset_creator.address,
+ close_asset_to=asset_creator.address,
+ ),
+ )
+
+ circulating_supply = asset_circulating_supply_client.arc62_get_circulating_supply(
+ asset_id=asset,
+ transaction_parameters=OnCompleteCallParameters(
+ # TODO: Foreign resources should be auto-populated
+ foreign_assets=[asset],
+ accounts=[reserve_with_balance.address, not_circulating_balance_1.address],
+ ),
+ ).return_value
+ assert circulating_supply == total
diff --git a/assets/arc-0062/tests/test_set_asset.py b/assets/arc-0062/tests/test_set_asset.py
new file mode 100644
index 000000000..999273790
--- /dev/null
+++ b/assets/arc-0062/tests/test_set_asset.py
@@ -0,0 +1,50 @@
+import pytest
+from algokit_utils import LogicError, OnCompleteCallParameters
+from algokit_utils.beta.account_manager import AddressAndSigner
+
+from smart_contracts.artifacts.circulating_supply.circulating_supply_client import (
+ CirculatingSupplyClient,
+)
+from smart_contracts.errors import std_errors as err
+
+
+def test_pass_set_asset(
+ asset_circulating_supply_client: CirculatingSupplyClient,
+ asset_manager: AddressAndSigner,
+ asset: int,
+) -> None:
+ assert asset == asset_circulating_supply_client.get_global_state().asset_id
+
+
+def test_fail_unauthorized_manager(
+ circulating_supply_client: CirculatingSupplyClient,
+ asset_creator: AddressAndSigner,
+ asset: int,
+) -> None:
+ with pytest.raises(LogicError, match=err.UNAUTHORIZED):
+ circulating_supply_client.set_asset(
+ asset_id=asset,
+ transaction_parameters=OnCompleteCallParameters(
+ sender=asset_creator.address,
+ signer=asset_creator.signer,
+ # TODO: Foreign resources should be auto-populated
+ foreign_assets=[asset],
+ ),
+ )
+
+
+def test_fail_unauthorized_already_set(
+ asset_circulating_supply_client: CirculatingSupplyClient,
+ asset_manager: AddressAndSigner,
+ asset: int,
+) -> None:
+ with pytest.raises(LogicError, match=err.UNAUTHORIZED):
+ asset_circulating_supply_client.set_asset(
+ asset_id=asset,
+ transaction_parameters=OnCompleteCallParameters(
+ sender=asset_manager.address,
+ signer=asset_manager.signer,
+ # TODO: Foreign resources should be auto-populated
+ foreign_assets=[asset],
+ ),
+ )
diff --git a/assets/arc-0062/tests/test_set_not_circulating_address.py b/assets/arc-0062/tests/test_set_not_circulating_address.py
new file mode 100644
index 000000000..e5984094d
--- /dev/null
+++ b/assets/arc-0062/tests/test_set_not_circulating_address.py
@@ -0,0 +1,120 @@
+import pytest
+from algokit_utils import LogicError, OnCompleteCallParameters
+from algokit_utils.beta.account_manager import AddressAndSigner
+from algosdk.encoding import encode_address
+
+from smart_contracts.artifacts.circulating_supply.circulating_supply_client import (
+ CirculatingSupplyClient,
+)
+from smart_contracts.circulating_supply import config as cfg
+from smart_contracts.errors import std_errors as err
+
+
+def test_pass_set_not_circulating_address(
+ asset_circulating_supply_client: CirculatingSupplyClient,
+ asset_manager: AddressAndSigner,
+ asset: int,
+ not_circulating_balance_1: AddressAndSigner,
+ not_circulating_balance_2: AddressAndSigner,
+ not_circulating_balance_3: AddressAndSigner,
+) -> None:
+ asset_circulating_supply_client.set_not_circulating_address(
+ address=not_circulating_balance_1.address,
+ label=cfg.NOT_CIRCULATING_LABEL_1,
+ transaction_parameters=OnCompleteCallParameters(
+ sender=asset_manager.address,
+ signer=asset_manager.signer,
+ # TODO: Foreign resources should be auto-populated
+ foreign_assets=[asset],
+ accounts=[not_circulating_balance_1.address],
+ ),
+ )
+
+ asset_circulating_supply_client.set_not_circulating_address(
+ address=not_circulating_balance_2.address,
+ label=cfg.NOT_CIRCULATING_LABEL_2,
+ transaction_parameters=OnCompleteCallParameters(
+ sender=asset_manager.address,
+ signer=asset_manager.signer,
+ # TODO: Foreign resources should be auto-populated
+ foreign_assets=[asset],
+ accounts=[not_circulating_balance_2.address],
+ ),
+ )
+
+ asset_circulating_supply_client.set_not_circulating_address(
+ address=not_circulating_balance_3.address,
+ label=cfg.NOT_CIRCULATING_LABEL_3,
+ transaction_parameters=OnCompleteCallParameters(
+ sender=asset_manager.address,
+ signer=asset_manager.signer,
+ # TODO: Foreign resources should be auto-populated
+ foreign_assets=[asset],
+ accounts=[not_circulating_balance_3.address],
+ ),
+ )
+
+ state = asset_circulating_supply_client.get_global_state()
+
+ assert encode_address(state.not_circulating_label_1.as_bytes) == not_circulating_balance_1.address # type: ignore
+ assert encode_address(state.not_circulating_label_2.as_bytes) == not_circulating_balance_2.address # type: ignore
+ assert encode_address(state.not_circulating_label_3.as_bytes) == not_circulating_balance_3.address # type: ignore
+
+
+def test_fail_unauthorized(
+ asset_circulating_supply_client: CirculatingSupplyClient,
+ asset_creator: AddressAndSigner,
+ asset: int,
+ not_circulating_balance_1: AddressAndSigner,
+) -> None:
+ with pytest.raises(LogicError, match=err.UNAUTHORIZED):
+ asset_circulating_supply_client.set_not_circulating_address(
+ address=not_circulating_balance_1.address,
+ label=cfg.NOT_CIRCULATING_LABEL_1,
+ transaction_parameters=OnCompleteCallParameters(
+ sender=asset_creator.address,
+ signer=asset_creator.signer,
+ # TODO: Foreign resources should be auto-populated
+ foreign_assets=[asset],
+ accounts=[not_circulating_balance_1.address],
+ ),
+ )
+
+
+def test_fail_not_opted_in(
+ asset_circulating_supply_client: CirculatingSupplyClient,
+ asset_manager: AddressAndSigner,
+ asset: int,
+) -> None:
+ with pytest.raises(LogicError, match=err.NOT_OPTED_IN):
+ asset_circulating_supply_client.set_not_circulating_address(
+ address=asset_manager.address,
+ label=cfg.NOT_CIRCULATING_LABEL_1,
+ transaction_parameters=OnCompleteCallParameters(
+ sender=asset_manager.address,
+ signer=asset_manager.signer,
+ # TODO: Foreign resources should be auto-populated
+ foreign_assets=[asset],
+ accounts=[asset_manager.address],
+ ),
+ )
+
+
+def test_fail_invalid_label(
+ asset_circulating_supply_client: CirculatingSupplyClient,
+ asset_manager: AddressAndSigner,
+ asset: int,
+ not_circulating_balance_1: AddressAndSigner,
+) -> None:
+ with pytest.raises(LogicError, match=err.INVALID_LABEL):
+ asset_circulating_supply_client.set_not_circulating_address(
+ address=not_circulating_balance_1.address,
+ label=cfg.NOT_CIRCULATING_LABEL_1 + "spam",
+ transaction_parameters=OnCompleteCallParameters(
+ sender=asset_manager.address,
+ signer=asset_manager.signer,
+ # TODO: Foreign resources should be auto-populated
+ foreign_assets=[asset],
+ accounts=[not_circulating_balance_1.address],
+ ),
+ )