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], + ), + )