diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 42cf6f9..2f54ec3 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -62,11 +62,15 @@ jobs: fi - name: Build distribution files + env: + CONTRACTS_REGISTRY_SIGNING_PRIVATE_KEY: ${{ secrets.CONTRACTS_REGISTRY_SIGNING_PRIVATE_KEY }} + CONTRACTS_REGISTRY_SIGNING_KEY_ID: ${{ secrets.CONTRACTS_REGISTRY_SIGNING_KEY_ID }} run: | python3 scripts/build_dist.py \ --product all \ --version v${{ steps.get_version.outputs.version }} \ - --environment ${{ steps.get_environment.outputs.environment }} + --environment ${{ steps.get_environment.outputs.environment }} \ + --sign-contracts-registry - name: Deploy to FTP uses: SamKirkland/FTP-Deploy-Action@v4.3.4 diff --git a/.github/workflows/refresh-smart-contracts.yml b/.github/workflows/refresh-smart-contracts.yml index 943e48e..3190d2a 100644 --- a/.github/workflows/refresh-smart-contracts.yml +++ b/.github/workflows/refresh-smart-contracts.yml @@ -35,15 +35,19 @@ jobs: - name: Get checksum before update id: before run: | - echo "checksum=$(sha256sum data/smart_contracts.json | cut -d ' ' -f 1)" >> $GITHUB_OUTPUT + echo "checksum=$(cat data/smart_contracts.json data/contracts_registry.json | sha256sum | cut -d ' ' -f 1)" >> $GITHUB_OUTPUT - - name: Run update script - run: python3 scripts/update_smart_contracts.py + - name: Run update scripts + env: + QUBIC_TS_GITHUB_TOKEN: ${{ secrets.PAT_TOKEN }} + run: | + python3 scripts/update_smart_contracts.py + python3 scripts/update_contracts_registry.py - name: Get checksum after update id: after run: | - echo "checksum=$(sha256sum data/smart_contracts.json | cut -d ' ' -f 1)" >> $GITHUB_OUTPUT + echo "checksum=$(cat data/smart_contracts.json data/contracts_registry.json | sha256sum | cut -d ' ' -f 1)" >> $GITHUB_OUTPUT - name: Check for changes id: changes @@ -52,7 +56,7 @@ jobs: echo "has_changes=true" >> $GITHUB_OUTPUT else echo "has_changes=false" >> $GITHUB_OUTPUT - echo "No changes detected in smart_contracts.json" + echo "No changes detected in contracts data feeds" fi - name: Create branch and PR @@ -66,21 +70,23 @@ jobs: git config user.email "github-actions[bot]@users.noreply.github.com" git checkout -b "$BRANCH_NAME" - git add data/smart_contracts.json - git commit -m "feat(smart_contracts): refresh smart contracts data" + git add data/smart_contracts.json data/contracts_registry.json + git commit -m "feat(contracts): refresh contracts data feeds" git push origin "$BRANCH_NAME" gh pr create \ --base main \ --head "$BRANCH_NAME" \ - --title "feat(smart_contracts): refresh smart contracts data" \ + --title "feat(contracts): refresh contracts data feeds" \ --body "$(cat <<'EOF' ## Summary - - Automated weekly refresh of smart contracts data + - Automated weekly refresh of smart contracts data feeds - Generated by scheduled workflow ## Changes - Updated \`data/smart_contracts.json\` with latest contract data from GitHub. + Updated: + - \`data/smart_contracts.json\` + - \`data/contracts_registry.json\` --- 🤖 This PR was automatically created by the refresh-smart-contracts workflow. diff --git a/README.md b/README.md index 608f9c2..7375651 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,8 @@ Base URL: `https://static.qubic.org/v1/general/data/` - **Smart Contracts** - [smart_contracts.json](https://static.qubic.org/v1/general/data/smart_contracts.json) - [smart_contracts.min.json](https://static.qubic.org/v1/general/data/smart_contracts.min.json) + - [contracts_registry.json](https://static.qubic.org/v1/general/data/contracts_registry.json) + - [contracts_registry.manifest.json](https://static.qubic.org/v1/general/data/contracts_registry.manifest.json) **Fields per contract:** | Field | Type | Description | @@ -68,6 +70,10 @@ Base URL: `https://static.qubic.org/v1/general/data/` > **About the `fee` field:** Fees are currently extracted for the following procedures: `Transfer Share Management Rights`, `Revoke Asset Management Rights`, and `Transfer Share Ownership and Possession`. The fee is included only when it can be resolved to a fixed value from the source code. If a procedure does not have a `fee` field, it does not necessarily mean it is free — the fee may be determined dynamically at execution time (e.g., fetched from another contract or calculated based on state). + **Contracts registry files:** + - `contracts_registry.json` uses the `ContractsRegistry` schema from `@qubic.ts/contracts` and includes contract entries plus `ioTypes`. + - `contracts_registry.manifest.json` includes `schema_version`, `registry_hash`, `generated_at`, `source_revision`, and Ed25519 `signature` for client-side verification. + - **Exchanges** - [exchanges.json](https://static.qubic.org/v1/general/data/exchanges.json) - [exchanges.min.json](https://static.qubic.org/v1/general/data/exchanges.min.json) @@ -138,6 +144,7 @@ Dev: https://static.qubic.org/dev/v1/{product}/{path-to-file} ``` https://static.qubic.org/v1/general/data/smart_contracts.json https://static.qubic.org/staging/v1/general/data/smart_contracts.json +https://static.qubic.org/v1/general/data/contracts_registry.manifest.json ``` **Wallet App:** @@ -174,6 +181,7 @@ The `version.json` contains SHA-256 hashes and file sizes for all files, enablin ``` data/ # General/shared source data ├── smart_contracts.json + ├── contracts_registry.json ├── exchanges.json ├── tokens.json └── address_labels.json @@ -186,7 +194,8 @@ products/ # Product-specific source data scripts/ # Build and update utilities ├── build_dist.py # Build distribution files - └── update_smart_contracts.py # Update SC data from GitHub + ├── update_smart_contracts.py # Update SC data from GitHub + └── update_contracts_registry.py # Update contracts registry from qubic.ts .github/workflows/ # CI/CD automation ├── commitlint.yml # Commit message validation @@ -235,15 +244,18 @@ Semantic-release automatically: - Generates changelogs - Triggers deployments -### Automated Smart Contracts Updates +### Automated Contracts Updates -Smart contract data is automatically refreshed every **Wednesday at 14:00 UTC** via a scheduled GitHub Action workflow. +Contracts data feeds are automatically refreshed every **Wednesday at 14:00 UTC** via a scheduled GitHub Action workflow. **How it works:** -1. The workflow runs `scripts/update_smart_contracts.py` which fetches the latest contract data from the [qubic-core](https://github.com/qubic/core) repository +1. The workflow runs: + - `scripts/update_smart_contracts.py` for the curated smart contracts feed + - `scripts/update_contracts_registry.py` for the canonical runtime registry feed sourced from [qubic.ts](https://github.com/qubic/qubic.ts) (via token-authenticated GitHub API when required) 2. If changes are detected (new contracts, updated procedures, etc.), a PR is automatically created to the `main` branch 3. Once merged, a new release is created and deployed to production -4. After the release, merge `main` back to `dev` and `staging` to keep branches in sync +4. During deploy, `contracts_registry.manifest.json` is generated and Ed25519-signed in CI. +5. After the release, merge `main` back to `dev` and `staging` to keep branches in sync **Manual trigger:** The workflow can also be triggered manually from the [Actions tab](../../actions/workflows/refresh-smart-contracts.yml) if an immediate update is needed. diff --git a/data/contracts_registry.json b/data/contracts_registry.json new file mode 100644 index 0000000..0f5020d --- /dev/null +++ b/data/contracts_registry.json @@ -0,0 +1,14342 @@ +{ + "version": 1, + "metadata": { + "generatedAt": "2026-02-19T16:53:34.094Z", + "sources": [ + { + "name": "qubic/core" + }, + { + "name": "static" + } + ] + }, + "contracts": [ + { + "name": "QX", + "contractIndex": 1, + "address": "BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARMID", + "filename": "Qx.h", + "entries": [ + { + "kind": "function", + "name": "Fees", + "inputType": 1, + "inputTypeName": "Fees_input", + "outputTypeName": "Fees_output", + "inputSize": 1, + "outputSize": 12 + }, + { + "kind": "function", + "name": "AssetAskOrders", + "inputType": 2, + "inputTypeName": "AssetAskOrders_input", + "outputTypeName": "AssetAskOrders_output", + "inputSize": 48, + "outputSize": 12288 + }, + { + "kind": "function", + "name": "AssetBidOrders", + "inputType": 3, + "inputTypeName": "AssetBidOrders_input", + "outputTypeName": "AssetBidOrders_output", + "inputSize": 48, + "outputSize": 12288 + }, + { + "kind": "function", + "name": "EntityAskOrders", + "inputType": 4, + "inputTypeName": "EntityAskOrders_input", + "outputTypeName": "EntityAskOrders_output", + "inputSize": 40, + "outputSize": 14336 + }, + { + "kind": "function", + "name": "EntityBidOrders", + "inputType": 5, + "inputTypeName": "EntityBidOrders_input", + "outputTypeName": "EntityBidOrders_output", + "inputSize": 40, + "outputSize": 14336 + }, + { + "kind": "procedure", + "name": "IssueAsset", + "inputType": 1, + "inputTypeName": "IssueAsset_input", + "outputTypeName": "IssueAsset_output", + "inputSize": 32, + "outputSize": 8, + "displayName": "Issue Asset" + }, + { + "kind": "procedure", + "name": "TransferShareOwnershipAndPossession", + "inputType": 2, + "inputTypeName": "TransferShareOwnershipAndPossession_input", + "outputTypeName": "TransferShareOwnershipAndPossession_output", + "inputSize": 80, + "outputSize": 8, + "displayName": "Transfer Share Ownership and Possession" + }, + { + "kind": "procedure", + "name": "AddToAskOrder", + "inputType": 5, + "inputTypeName": "AddToAskOrder_input", + "outputTypeName": "AddToAskOrder_output", + "inputSize": 56, + "outputSize": 8, + "displayName": "Add to Ask Order" + }, + { + "kind": "procedure", + "name": "AddToBidOrder", + "inputType": 6, + "inputTypeName": "AddToBidOrder_input", + "outputTypeName": "AddToBidOrder_output", + "inputSize": 56, + "outputSize": 8, + "displayName": "Add to Bid Order" + }, + { + "kind": "procedure", + "name": "RemoveFromAskOrder", + "inputType": 7, + "inputTypeName": "RemoveFromAskOrder_input", + "outputTypeName": "RemoveFromAskOrder_output", + "inputSize": 56, + "outputSize": 8, + "displayName": "Remove from Ask Order" + }, + { + "kind": "procedure", + "name": "RemoveFromBidOrder", + "inputType": 8, + "inputTypeName": "RemoveFromBidOrder_input", + "outputTypeName": "RemoveFromBidOrder_output", + "inputSize": 56, + "outputSize": 8, + "displayName": "Remove from Bid Order" + }, + { + "kind": "procedure", + "name": "TransferShareManagementRights", + "inputType": 9, + "inputTypeName": "TransferShareManagementRights_input", + "outputTypeName": "TransferShareManagementRights_output", + "inputSize": 56, + "outputSize": 8, + "displayName": "Transfer Share Management Rights" + } + ], + "ioTypes": [ + { + "kind": "struct", + "name": "AddToAskOrder_input", + "fields": [ + { + "name": "issuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "assetName", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "price", + "type": "sint64", + "byteOffset": 40 + }, + { + "name": "numberOfShares", + "type": "sint64", + "byteOffset": 48 + } + ], + "byteSize": 56, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "AddToAskOrder_output", + "fields": [ + { + "name": "addedNumberOfShares", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "AddToBidOrder_input", + "fields": [ + { + "name": "issuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "assetName", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "price", + "type": "sint64", + "byteOffset": 40 + }, + { + "name": "numberOfShares", + "type": "sint64", + "byteOffset": 48 + } + ], + "byteSize": 56, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "AddToBidOrder_output", + "fields": [ + { + "name": "addedNumberOfShares", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "Asset", + "fields": [ + { + "name": "issuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "assetName", + "type": "uint64", + "byteOffset": 32 + } + ], + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "AssetAskOrders_input", + "fields": [ + { + "name": "issuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "assetName", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "offset", + "type": "uint64", + "byteOffset": 40 + } + ], + "byteSize": 48, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "AssetAskOrders_output", + "fields": [ + { + "name": "orders", + "type": "Array", + "byteOffset": 0 + } + ], + "byteSize": 12288, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "AssetBidOrders_input", + "fields": [ + { + "name": "issuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "assetName", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "offset", + "type": "uint64", + "byteOffset": 40 + } + ], + "byteSize": 48, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "AssetBidOrders_output", + "fields": [ + { + "name": "orders", + "type": "Array", + "byteOffset": 0 + } + ], + "byteSize": 12288, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "EntityAskOrders_input", + "fields": [ + { + "name": "entity", + "type": "id", + "byteOffset": 0 + }, + { + "name": "offset", + "type": "uint64", + "byteOffset": 32 + } + ], + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "EntityAskOrders_output", + "fields": [ + { + "name": "orders", + "type": "Array", + "byteOffset": 0 + } + ], + "byteSize": 14336, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "EntityBidOrders_input", + "fields": [ + { + "name": "entity", + "type": "id", + "byteOffset": 0 + }, + { + "name": "offset", + "type": "uint64", + "byteOffset": 32 + } + ], + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "EntityBidOrders_output", + "fields": [ + { + "name": "orders", + "type": "Array", + "byteOffset": 0 + } + ], + "byteSize": 14336, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "Fees_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "Fees_output", + "fields": [ + { + "name": "assetIssuanceFee", + "type": "uint32", + "byteOffset": 0 + }, + { + "name": "transferFee", + "type": "uint32", + "byteOffset": 4 + }, + { + "name": "tradeFee", + "type": "uint32", + "byteOffset": 8 + } + ], + "byteSize": 12, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "IssueAsset_input", + "fields": [ + { + "name": "assetName", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "numberOfShares", + "type": "sint64", + "byteOffset": 8 + }, + { + "name": "unitOfMeasurement", + "type": "uint64", + "byteOffset": 16 + }, + { + "name": "numberOfDecimalPlaces", + "type": "sint8", + "byteOffset": 24 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "IssueAsset_output", + "fields": [ + { + "name": "issuedNumberOfShares", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "Order", + "fields": [ + { + "name": "issuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "assetName", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "price", + "type": "sint64", + "byteOffset": 40 + }, + { + "name": "numberOfShares", + "type": "sint64", + "byteOffset": 48 + } + ], + "byteSize": 56, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "RemoveFromAskOrder_input", + "fields": [ + { + "name": "issuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "assetName", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "price", + "type": "sint64", + "byteOffset": 40 + }, + { + "name": "numberOfShares", + "type": "sint64", + "byteOffset": 48 + } + ], + "byteSize": 56, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "RemoveFromAskOrder_output", + "fields": [ + { + "name": "removedNumberOfShares", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "RemoveFromBidOrder_input", + "fields": [ + { + "name": "issuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "assetName", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "price", + "type": "sint64", + "byteOffset": 40 + }, + { + "name": "numberOfShares", + "type": "sint64", + "byteOffset": 48 + } + ], + "byteSize": 56, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "RemoveFromBidOrder_output", + "fields": [ + { + "name": "removedNumberOfShares", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "TransferShareManagementRights_input", + "fields": [ + { + "name": "asset", + "type": "Asset", + "byteOffset": 0 + }, + { + "name": "numberOfShares", + "type": "sint64", + "byteOffset": 40 + }, + { + "name": "newManagingContractIndex", + "type": "uint32", + "byteOffset": 48 + } + ], + "byteSize": 56, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "TransferShareManagementRights_output", + "fields": [ + { + "name": "transferredNumberOfShares", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "TransferShareOwnershipAndPossession_input", + "fields": [ + { + "name": "issuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "newOwnerAndPossessor", + "type": "id", + "byteOffset": 32 + }, + { + "name": "assetName", + "type": "uint64", + "byteOffset": 64 + }, + { + "name": "numberOfShares", + "type": "sint64", + "byteOffset": 72 + } + ], + "byteSize": 80, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "TransferShareOwnershipAndPossession_output", + "fields": [ + { + "name": "transferredNumberOfShares", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + } + ], + "label": "Qx", + "githubUrl": "https://github.com/qubic/core/blob/main/src/contracts/Qx.h" + }, + { + "name": "QUOTTERY", + "contractIndex": 2, + "address": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACNKL", + "filename": "Quottery.h", + "entries": [ + { + "kind": "function", + "name": "basicInfo", + "inputType": 1, + "inputTypeName": "basicInfo_input", + "outputTypeName": "basicInfo_output", + "inputSize": 1, + "outputSize": 152 + }, + { + "kind": "function", + "name": "getBetInfo", + "inputType": 2, + "inputTypeName": "getBetInfo_input", + "outputTypeName": "getBetInfo_output", + "inputSize": 4, + "outputSize": 696 + }, + { + "kind": "function", + "name": "getBetOptionDetail", + "inputType": 3, + "inputTypeName": "getBetOptionDetail_input", + "outputTypeName": "getBetOptionDetail_output", + "inputSize": 8, + "outputSize": 32768 + }, + { + "kind": "function", + "name": "getActiveBet", + "inputType": 4, + "inputTypeName": "getActiveBet_input", + "outputTypeName": "getActiveBet_output", + "inputSize": 1, + "outputSize": 4100 + }, + { + "kind": "function", + "name": "getBetByCreator", + "inputType": 5, + "inputTypeName": "getBetByCreator_input", + "outputTypeName": "getBetByCreator_output", + "inputSize": 32, + "outputSize": 4100 + }, + { + "kind": "procedure", + "name": "issueBet", + "inputType": 1, + "inputTypeName": "issueBet_input", + "outputTypeName": "issueBet_output", + "inputSize": 600, + "outputSize": 1, + "displayName": "Issue Bet" + }, + { + "kind": "procedure", + "name": "joinBet", + "inputType": 2, + "inputTypeName": "joinBet_input", + "outputTypeName": "joinBet_output", + "inputSize": 16, + "outputSize": 1, + "displayName": "Join Bet" + }, + { + "kind": "procedure", + "name": "cancelBet", + "inputType": 3, + "inputTypeName": "cancelBet_input", + "outputTypeName": "cancelBet_output", + "inputSize": 4, + "outputSize": 1, + "displayName": "Cancel Bet" + }, + { + "kind": "procedure", + "name": "publishResult", + "inputType": 4, + "inputTypeName": "publishResult_input", + "outputTypeName": "publishResult_output", + "inputSize": 8, + "outputSize": 1, + "displayName": "Publish Result" + } + ], + "ioTypes": [ + { + "kind": "struct", + "name": "basicInfo_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "basicInfo_output", + "fields": [ + { + "name": "feePerSlotPerHour", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "gameOperatorFee", + "type": "uint64", + "byteOffset": 8 + }, + { + "name": "shareholderFee", + "type": "uint64", + "byteOffset": 16 + }, + { + "name": "minBetSlotAmount", + "type": "uint64", + "byteOffset": 24 + }, + { + "name": "burnFee", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "nIssuedBet", + "type": "uint32", + "byteOffset": 40 + }, + { + "name": "moneyFlow", + "type": "uint64", + "byteOffset": 48 + }, + { + "name": "moneyFlowThroughIssueBet", + "type": "uint64", + "byteOffset": 56 + }, + { + "name": "moneyFlowThroughJoinBet", + "type": "uint64", + "byteOffset": 64 + }, + { + "name": "moneyFlowThroughFinalizeBet", + "type": "uint64", + "byteOffset": 72 + }, + { + "name": "earnedAmountForShareHolder", + "type": "uint64", + "byteOffset": 80 + }, + { + "name": "paidAmountForShareHolder", + "type": "uint64", + "byteOffset": 88 + }, + { + "name": "earnedAmountForBetWinner", + "type": "uint64", + "byteOffset": 96 + }, + { + "name": "distributedAmount", + "type": "uint64", + "byteOffset": 104 + }, + { + "name": "burnedAmount", + "type": "uint64", + "byteOffset": 112 + }, + { + "name": "gameOperator", + "type": "id", + "byteOffset": 120 + } + ], + "byteSize": 152, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "cancelBet_input", + "fields": [ + { + "name": "betId", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "cancelBet_output", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "getActiveBet_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "getActiveBet_output", + "fields": [ + { + "name": "count", + "type": "uint32", + "byteOffset": 0 + }, + { + "name": "activeBetId", + "type": "Array", + "byteOffset": 4 + } + ], + "byteSize": 4100, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "getBetByCreator_input", + "fields": [ + { + "name": "creator", + "type": "id", + "byteOffset": 0 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getBetByCreator_output", + "fields": [ + { + "name": "count", + "type": "uint32", + "byteOffset": 0 + }, + { + "name": "betId", + "type": "Array", + "byteOffset": 4 + } + ], + "byteSize": 4100, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "getBetInfo_input", + "fields": [ + { + "name": "betId", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "getBetInfo_output", + "fields": [ + { + "name": "betId", + "type": "uint32", + "byteOffset": 0 + }, + { + "name": "nOption", + "type": "uint32", + "byteOffset": 4 + }, + { + "name": "creator", + "type": "id", + "byteOffset": 8 + }, + { + "name": "betDesc", + "type": "id", + "byteOffset": 40 + }, + { + "name": "optionDesc", + "type": "id_8", + "byteOffset": 72 + }, + { + "name": "oracleProviderId", + "type": "id_8", + "byteOffset": 328 + }, + { + "name": "oracleFees", + "type": "uint32_8", + "byteOffset": 584 + }, + { + "name": "openDate", + "type": "uint32", + "byteOffset": 616 + }, + { + "name": "closeDate", + "type": "uint32", + "byteOffset": 620 + }, + { + "name": "endDate", + "type": "uint32", + "byteOffset": 624 + }, + { + "name": "minBetAmount", + "type": "uint64", + "byteOffset": 632 + }, + { + "name": "maxBetSlotPerOption", + "type": "uint32", + "byteOffset": 640 + }, + { + "name": "currentBetState", + "type": "uint32_8", + "byteOffset": 644 + }, + { + "name": "betResultWonOption", + "type": "sint8_8", + "byteOffset": 676 + }, + { + "name": "betResultOPId", + "type": "sint8_8", + "byteOffset": 684 + } + ], + "byteSize": 696, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getBetOptionDetail_input", + "fields": [ + { + "name": "betId", + "type": "uint32", + "byteOffset": 0 + }, + { + "name": "betOption", + "type": "uint32", + "byteOffset": 4 + } + ], + "byteSize": 8, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "getBetOptionDetail_output", + "fields": [ + { + "name": "bettor", + "type": "Array", + "byteOffset": 0 + } + ], + "byteSize": 32768, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "issueBet_input", + "fields": [ + { + "name": "betDesc", + "type": "id", + "byteOffset": 0 + }, + { + "name": "optionDesc", + "type": "id_8", + "byteOffset": 32 + }, + { + "name": "oracleProviderId", + "type": "id_8", + "byteOffset": 288 + }, + { + "name": "oracleFees", + "type": "uint32_8", + "byteOffset": 544 + }, + { + "name": "closeDate", + "type": "uint32", + "byteOffset": 576 + }, + { + "name": "endDate", + "type": "uint32", + "byteOffset": 580 + }, + { + "name": "amountPerSlot", + "type": "uint64", + "byteOffset": 584 + }, + { + "name": "maxBetSlotPerOption", + "type": "uint32", + "byteOffset": 592 + }, + { + "name": "numberOfOption", + "type": "uint32", + "byteOffset": 596 + } + ], + "byteSize": 600, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "issueBet_output", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "joinBet_input", + "fields": [ + { + "name": "betId", + "type": "uint32", + "byteOffset": 0 + }, + { + "name": "numberOfSlot", + "type": "uint32", + "byteOffset": 4 + }, + { + "name": "option", + "type": "uint32", + "byteOffset": 8 + }, + { + "name": "_placeHolder", + "type": "uint32", + "byteOffset": 12 + } + ], + "byteSize": 16, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "joinBet_output", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "publishResult_input", + "fields": [ + { + "name": "betId", + "type": "uint32", + "byteOffset": 0 + }, + { + "name": "option", + "type": "uint32", + "byteOffset": 4 + } + ], + "byteSize": 8, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "publishResult_output", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "alias", + "name": "id_8", + "target": "Array", + "byteSize": 256, + "byteAlign": 8 + }, + { + "kind": "alias", + "name": "sint8_8", + "target": "Array", + "byteSize": 8, + "byteAlign": 1 + }, + { + "kind": "alias", + "name": "uint32_8", + "target": "Array", + "byteSize": 32, + "byteAlign": 4 + } + ], + "label": "Quottery", + "githubUrl": "https://github.com/qubic/core/blob/main/src/contracts/Quottery.h", + "website": "https://quottery.org/" + }, + { + "name": "RANDOM", + "contractIndex": 3, + "address": "DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANMIG", + "filename": "Random.h", + "entries": [ + { + "kind": "procedure", + "name": "RevealAndCommit", + "inputType": 1, + "inputTypeName": "RevealAndCommit_input", + "outputTypeName": "RevealAndCommit_output", + "inputSize": 544, + "outputSize": 1, + "displayName": "Reveal and Commit" + } + ], + "ioTypes": [ + { + "kind": "struct", + "name": "RevealAndCommit_input", + "fields": [ + { + "name": "revealedBits", + "type": "bit_4096", + "byteOffset": 0 + }, + { + "name": "committedDigest", + "type": "id", + "byteOffset": 512 + } + ], + "byteSize": 544, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "RevealAndCommit_output", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "alias", + "name": "bit_4096", + "target": "BitArray<4096>", + "byteSize": 512, + "byteAlign": 8 + } + ], + "label": "Random", + "githubUrl": "https://github.com/qubic/core/blob/main/src/contracts/Random.h" + }, + { + "name": "QUTIL", + "contractIndex": 4, + "address": "EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVWRF", + "filename": "QUtil.h", + "entries": [ + { + "kind": "function", + "name": "GetSendToManyV1Fee", + "inputType": 1, + "inputTypeName": "GetSendToManyV1Fee_input", + "outputTypeName": "GetSendToManyV1Fee_output", + "inputSize": 1, + "outputSize": 8 + }, + { + "kind": "function", + "name": "GetTotalNumberOfAssetShares", + "inputType": 2, + "inputTypeName": "GetTotalNumberOfAssetShares_input", + "outputTypeName": "GetTotalNumberOfAssetShares_output", + "inputSize": 40, + "outputSize": 8 + }, + { + "kind": "function", + "name": "GetCurrentResult", + "inputType": 3, + "inputTypeName": "GetCurrentResult_input", + "outputTypeName": "GetCurrentResult_output", + "inputSize": 8, + "outputSize": 1032 + }, + { + "kind": "function", + "name": "GetPollsByCreator", + "inputType": 4, + "inputTypeName": "GetPollsByCreator_input", + "outputTypeName": "GetPollsByCreator_output", + "inputSize": 32, + "outputSize": 520 + }, + { + "kind": "function", + "name": "GetCurrentPollId", + "inputType": 5, + "inputTypeName": "GetCurrentPollId_input", + "outputTypeName": "GetCurrentPollId_output", + "inputSize": 1, + "outputSize": 528 + }, + { + "kind": "function", + "name": "GetPollInfo", + "inputType": 6, + "inputTypeName": "GetPollInfo_input", + "outputTypeName": "GetPollInfo_output", + "inputSize": 8, + "outputSize": 1000 + }, + { + "kind": "function", + "name": "GetFees", + "inputType": 7, + "inputTypeName": "GetFees_input", + "outputTypeName": "GetFees_output", + "inputSize": 1, + "outputSize": 88 + }, + { + "kind": "function", + "name": "QueryFeeReserve", + "inputType": 8, + "inputTypeName": "QueryFeeReserve_input", + "outputTypeName": "QueryFeeReserve_output", + "inputSize": 4, + "outputSize": 8 + }, + { + "kind": "function", + "name": "GetShareholderProposalFees", + "inputType": 65531, + "inputTypeName": "GetShareholderProposalFees_input", + "outputTypeName": "GetShareholderProposalFees_output", + "inputSize": 1, + "outputSize": 16 + }, + { + "kind": "function", + "name": "GetShareholderProposalIndices", + "inputType": 65532, + "inputTypeName": "GetShareholderProposalIndices_input", + "outputTypeName": "GetShareholderProposalIndices_output", + "inputSize": 8, + "outputSize": 130 + }, + { + "kind": "function", + "name": "GetShareholderProposal", + "inputType": 65533, + "inputTypeName": "GetShareholderProposal_input", + "outputTypeName": "GetShareholderProposal_output", + "inputSize": 2, + "outputSize": 336 + }, + { + "kind": "function", + "name": "GetShareholderVotes", + "inputType": 65534, + "inputTypeName": "GetShareholderVotes_input", + "outputTypeName": "GetShareholderVotes_output", + "inputSize": 40, + "outputSize": 104 + }, + { + "kind": "function", + "name": "GetShareholderVotingResults", + "inputType": 65535, + "inputTypeName": "GetShareholderVotingResults_input", + "outputTypeName": "GetShareholderVotingResults_output", + "inputSize": 2, + "outputSize": 48 + }, + { + "kind": "procedure", + "name": "SendToManyV1", + "inputType": 1, + "inputTypeName": "SendToManyV1_input", + "outputTypeName": "SendToManyV1_output", + "inputSize": 1000, + "outputSize": 4, + "displayName": "Send to Many v1" + }, + { + "kind": "procedure", + "name": "BurnQubic", + "inputType": 2, + "inputTypeName": "BurnQubic_input", + "outputTypeName": "BurnQubic_output", + "inputSize": 8, + "outputSize": 8, + "displayName": "Burn Qubic" + }, + { + "kind": "procedure", + "name": "SendToManyBenchmark", + "inputType": 3, + "inputTypeName": "SendToManyBenchmark_input", + "outputTypeName": "SendToManyBenchmark_output", + "inputSize": 16, + "outputSize": 24, + "displayName": "Send to Many Benchmark" + }, + { + "kind": "procedure", + "name": "CreatePoll", + "inputType": 4, + "inputTypeName": "CreatePoll_input", + "outputTypeName": "CreatePoll_output", + "inputSize": 952, + "outputSize": 8, + "displayName": "Create Poll" + }, + { + "kind": "procedure", + "name": "Vote", + "inputType": 5, + "inputTypeName": "Vote_input", + "outputTypeName": "Vote_output", + "inputSize": 56, + "outputSize": 1, + "displayName": "Vote" + }, + { + "kind": "procedure", + "name": "CancelPoll", + "inputType": 6, + "inputTypeName": "CancelPoll_input", + "outputTypeName": "CancelPoll_output", + "inputSize": 8, + "outputSize": 1, + "displayName": "Cancel Poll" + }, + { + "kind": "procedure", + "name": "DistributeQuToShareholders", + "inputType": 7, + "inputTypeName": "DistributeQuToShareholders_input", + "outputTypeName": "DistributeQuToShareholders_output", + "inputSize": 40, + "outputSize": 32, + "displayName": "Distribute Qu to Shareholders" + }, + { + "kind": "procedure", + "name": "BurnQubicForContract", + "inputType": 8, + "inputTypeName": "BurnQubicForContract_input", + "outputTypeName": "BurnQubicForContract_output", + "inputSize": 4, + "outputSize": 8, + "displayName": "Burn Qubic for Contract" + }, + { + "kind": "procedure", + "name": "SetShareholderProposal", + "inputType": 65534, + "inputTypeName": "SetShareholderProposal_input", + "outputTypeName": "SetShareholderProposal_output", + "inputSize": 304, + "outputSize": 2 + }, + { + "kind": "procedure", + "name": "SetShareholderVotes", + "inputType": 65535, + "inputTypeName": "SetShareholderVotes_input", + "outputTypeName": "SetShareholderVotes_output", + "inputSize": 104, + "outputSize": 1 + } + ], + "ioTypes": [ + { + "kind": "struct", + "name": "Asset", + "fields": [ + { + "name": "issuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "assetName", + "type": "uint64", + "byteOffset": 32 + } + ], + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "BurnQubic_input", + "fields": [ + { + "name": "amount", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "BurnQubic_output", + "fields": [ + { + "name": "amount", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "BurnQubicForContract_input", + "fields": [ + { + "name": "contractIndexBurnedFor", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "BurnQubicForContract_output", + "fields": [ + { + "name": "amount", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "CancelPoll_input", + "fields": [ + { + "name": "poll_id", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "CancelPoll_output", + "fields": [ + { + "name": "success", + "type": "bit", + "byteOffset": 0 + } + ], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "CreatePoll_input", + "fields": [ + { + "name": "poll_name", + "type": "id", + "byteOffset": 0 + }, + { + "name": "poll_type", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "min_amount", + "type": "uint64", + "byteOffset": 40 + }, + { + "name": "github_link", + "type": "Array", + "byteOffset": 48 + }, + { + "name": "allowed_assets", + "type": "Array", + "byteOffset": 304 + }, + { + "name": "num_assets", + "type": "uint64", + "byteOffset": 944 + } + ], + "byteSize": 952, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "CreatePoll_output", + "fields": [ + { + "name": "poll_id", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "DistributeQuToShareholders_input", + "fields": [ + { + "name": "asset", + "type": "Asset", + "byteOffset": 0 + } + ], + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "DistributeQuToShareholders_output", + "fields": [ + { + "name": "shareholders", + "type": "sint64", + "byteOffset": 0 + }, + { + "name": "totalShares", + "type": "sint64", + "byteOffset": 8 + }, + { + "name": "amountPerShare", + "type": "sint64", + "byteOffset": 16 + }, + { + "name": "fees", + "type": "sint64", + "byteOffset": 24 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetCurrentPollId_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "GetCurrentPollId_output", + "fields": [ + { + "name": "current_poll_id", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "active_poll_ids", + "type": "Array", + "byteOffset": 8 + }, + { + "name": "active_count", + "type": "uint64", + "byteOffset": 520 + } + ], + "byteSize": 528, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetCurrentResult_input", + "fields": [ + { + "name": "poll_id", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetCurrentResult_output", + "fields": [ + { + "name": "result", + "type": "Array", + "byteOffset": 0 + }, + { + "name": "voter_count", + "type": "Array", + "byteOffset": 512 + }, + { + "name": "is_active", + "type": "uint64", + "byteOffset": 1024 + } + ], + "byteSize": 1032, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetFees_output", + "fields": [ + { + "name": "smt1InvocationFee", + "type": "sint64", + "byteOffset": 0 + }, + { + "name": "pollCreationFee", + "type": "sint64", + "byteOffset": 8 + }, + { + "name": "pollVoteFee", + "type": "sint64", + "byteOffset": 16 + }, + { + "name": "distributeQuToShareholderFeePerShareholder", + "type": "sint64", + "byteOffset": 24 + }, + { + "name": "shareholderProposalFee", + "type": "sint64", + "byteOffset": 32 + }, + { + "name": "_futureFeePlaceholder0", + "type": "sint64", + "byteOffset": 40 + }, + { + "name": "_futureFeePlaceholder1", + "type": "sint64", + "byteOffset": 48 + }, + { + "name": "_futureFeePlaceholder2", + "type": "sint64", + "byteOffset": 56 + }, + { + "name": "_futureFeePlaceholder3", + "type": "sint64", + "byteOffset": 64 + }, + { + "name": "_futureFeePlaceholder4", + "type": "sint64", + "byteOffset": 72 + }, + { + "name": "_futureFeePlaceholder5", + "type": "sint64", + "byteOffset": 80 + } + ], + "byteSize": 88, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetPollInfo_input", + "fields": [ + { + "name": "poll_id", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetPollInfo_output", + "fields": [ + { + "name": "found", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "poll_info", + "type": "QUTILPoll", + "byteOffset": 8 + }, + { + "name": "poll_link", + "type": "Array", + "byteOffset": 744 + } + ], + "byteSize": 1000, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetPollsByCreator_input", + "fields": [ + { + "name": "creator", + "type": "id", + "byteOffset": 0 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetPollsByCreator_output", + "fields": [ + { + "name": "poll_ids", + "type": "Array", + "byteOffset": 0 + }, + { + "name": "count", + "type": "uint64", + "byteOffset": 512 + } + ], + "byteSize": 520, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetSendToManyV1Fee_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "GetSendToManyV1Fee_output", + "fields": [ + { + "name": "fee", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetShareholderProposal_input", + "fields": [ + { + "name": "proposalIndex", + "type": "uint16", + "byteOffset": 0 + } + ], + "byteSize": 2, + "byteAlign": 2 + }, + { + "kind": "struct", + "name": "GetShareholderProposal_output", + "fields": [ + { + "name": "proposal", + "type": "ProposalDataT", + "byteOffset": 0 + }, + { + "name": "proposerPubicKey", + "type": "id", + "byteOffset": 304 + } + ], + "byteSize": 336, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetShareholderProposalFees_output", + "fields": [ + { + "name": "setProposalFee", + "type": "sint64", + "byteOffset": 0 + }, + { + "name": "setVoteFee", + "type": "sint64", + "byteOffset": 8 + } + ], + "byteSize": 16, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetShareholderProposalIndices_input", + "fields": [ + { + "name": "activeProposals", + "type": "bit", + "byteOffset": 0 + }, + { + "name": "prevProposalIndex", + "type": "sint32", + "byteOffset": 4 + } + ], + "byteSize": 8, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "GetShareholderProposalIndices_output", + "fields": [ + { + "name": "numOfIndices", + "type": "uint16", + "byteOffset": 0 + }, + { + "name": "indices", + "type": "Array", + "byteOffset": 2 + } + ], + "byteSize": 130, + "byteAlign": 2 + }, + { + "kind": "struct", + "name": "GetShareholderVotes_input", + "fields": [ + { + "name": "voter", + "type": "id", + "byteOffset": 0 + }, + { + "name": "proposalIndex", + "type": "uint16", + "byteOffset": 32 + } + ], + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetShareholderVotingResults_input", + "fields": [ + { + "name": "proposalIndex", + "type": "uint16", + "byteOffset": 0 + } + ], + "byteSize": 2, + "byteAlign": 2 + }, + { + "kind": "struct", + "name": "ProposalDataYesNo", + "fields": [ + { + "name": "url", + "type": "Array", + "byteOffset": 0 + }, + { + "name": "epoch", + "type": "uint16", + "byteOffset": 256 + }, + { + "name": "type", + "type": "uint16", + "byteOffset": 258 + }, + { + "name": "tick", + "type": "uint32", + "byteOffset": 260 + }, + { + "name": "data", + "type": "Data", + "byteOffset": 264 + } + ], + "byteSize": 304, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "ProposalMultiVoteDataV1", + "fields": [ + { + "name": "proposalIndex", + "type": "uint16", + "byteOffset": 0 + }, + { + "name": "proposalType", + "type": "uint16", + "byteOffset": 2 + }, + { + "name": "proposalTick", + "type": "uint32", + "byteOffset": 4 + }, + { + "name": "voteValues", + "type": "Array", + "byteOffset": 8 + }, + { + "name": "voteCounts", + "type": "Array", + "byteOffset": 72 + } + ], + "byteSize": 104, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "ProposalSummarizedVotingDataV1", + "fields": [ + { + "name": "proposalIndex", + "type": "uint16", + "byteOffset": 0 + }, + { + "name": "optionCount", + "type": "uint16", + "byteOffset": 2 + }, + { + "name": "proposalTick", + "type": "uint32", + "byteOffset": 4 + }, + { + "name": "totalVotesAuthorized", + "type": "uint32", + "byteOffset": 8 + }, + { + "name": "totalVotesCasted", + "type": "uint32", + "byteOffset": 12 + } + ], + "byteSize": 48, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "QueryFeeReserve_input", + "fields": [ + { + "name": "contractIndex", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "QueryFeeReserve_output", + "fields": [ + { + "name": "reserveAmount", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "QUTILPoll", + "fields": [ + { + "name": "poll_name", + "type": "id", + "byteOffset": 0 + }, + { + "name": "poll_type", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "min_amount", + "type": "uint64", + "byteOffset": 40 + }, + { + "name": "is_active", + "type": "uint64", + "byteOffset": 48 + }, + { + "name": "creator", + "type": "id", + "byteOffset": 56 + }, + { + "name": "allowed_assets", + "type": "Array", + "byteOffset": 88 + }, + { + "name": "num_assets", + "type": "uint64", + "byteOffset": 728 + } + ], + "byteSize": 736, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "SendToManyBenchmark_input", + "fields": [ + { + "name": "dstCount", + "type": "sint64", + "byteOffset": 0 + }, + { + "name": "numTransfersEach", + "type": "sint64", + "byteOffset": 8 + } + ], + "byteSize": 16, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "SendToManyBenchmark_output", + "fields": [ + { + "name": "dstCount", + "type": "sint64", + "byteOffset": 0 + }, + { + "name": "returnCode", + "type": "sint32", + "byteOffset": 8 + }, + { + "name": "total", + "type": "sint64", + "byteOffset": 16 + } + ], + "byteSize": 24, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "SendToManyV1_input", + "fields": [ + { + "name": "dst0", + "type": "id", + "byteOffset": 0 + }, + { + "name": "dst1", + "type": "id", + "byteOffset": 32 + }, + { + "name": "dst2", + "type": "id", + "byteOffset": 64 + }, + { + "name": "dst3", + "type": "id", + "byteOffset": 96 + }, + { + "name": "dst4", + "type": "id", + "byteOffset": 128 + }, + { + "name": "dst5", + "type": "id", + "byteOffset": 160 + }, + { + "name": "dst6", + "type": "id", + "byteOffset": 192 + }, + { + "name": "dst7", + "type": "id", + "byteOffset": 224 + }, + { + "name": "dst8", + "type": "id", + "byteOffset": 256 + }, + { + "name": "dst9", + "type": "id", + "byteOffset": 288 + }, + { + "name": "dst10", + "type": "id", + "byteOffset": 320 + }, + { + "name": "dst11", + "type": "id", + "byteOffset": 352 + }, + { + "name": "dst12", + "type": "id", + "byteOffset": 384 + }, + { + "name": "dst13", + "type": "id", + "byteOffset": 416 + }, + { + "name": "dst14", + "type": "id", + "byteOffset": 448 + }, + { + "name": "dst15", + "type": "id", + "byteOffset": 480 + }, + { + "name": "dst16", + "type": "id", + "byteOffset": 512 + }, + { + "name": "dst17", + "type": "id", + "byteOffset": 544 + }, + { + "name": "dst18", + "type": "id", + "byteOffset": 576 + }, + { + "name": "dst19", + "type": "id", + "byteOffset": 608 + }, + { + "name": "dst20", + "type": "id", + "byteOffset": 640 + }, + { + "name": "dst21", + "type": "id", + "byteOffset": 672 + }, + { + "name": "dst22", + "type": "id", + "byteOffset": 704 + }, + { + "name": "dst23", + "type": "id", + "byteOffset": 736 + }, + { + "name": "dst24", + "type": "id", + "byteOffset": 768 + }, + { + "name": "amt0", + "type": "sint64", + "byteOffset": 800 + }, + { + "name": "amt1", + "type": "sint64", + "byteOffset": 808 + }, + { + "name": "amt2", + "type": "sint64", + "byteOffset": 816 + }, + { + "name": "amt3", + "type": "sint64", + "byteOffset": 824 + }, + { + "name": "amt4", + "type": "sint64", + "byteOffset": 832 + }, + { + "name": "amt5", + "type": "sint64", + "byteOffset": 840 + }, + { + "name": "amt6", + "type": "sint64", + "byteOffset": 848 + }, + { + "name": "amt7", + "type": "sint64", + "byteOffset": 856 + }, + { + "name": "amt8", + "type": "sint64", + "byteOffset": 864 + }, + { + "name": "amt9", + "type": "sint64", + "byteOffset": 872 + }, + { + "name": "amt10", + "type": "sint64", + "byteOffset": 880 + }, + { + "name": "amt11", + "type": "sint64", + "byteOffset": 888 + }, + { + "name": "amt12", + "type": "sint64", + "byteOffset": 896 + }, + { + "name": "amt13", + "type": "sint64", + "byteOffset": 904 + }, + { + "name": "amt14", + "type": "sint64", + "byteOffset": 912 + }, + { + "name": "amt15", + "type": "sint64", + "byteOffset": 920 + }, + { + "name": "amt16", + "type": "sint64", + "byteOffset": 928 + }, + { + "name": "amt17", + "type": "sint64", + "byteOffset": 936 + }, + { + "name": "amt18", + "type": "sint64", + "byteOffset": 944 + }, + { + "name": "amt19", + "type": "sint64", + "byteOffset": 952 + }, + { + "name": "amt20", + "type": "sint64", + "byteOffset": 960 + }, + { + "name": "amt21", + "type": "sint64", + "byteOffset": 968 + }, + { + "name": "amt22", + "type": "sint64", + "byteOffset": 976 + }, + { + "name": "amt23", + "type": "sint64", + "byteOffset": 984 + }, + { + "name": "amt24", + "type": "sint64", + "byteOffset": 992 + } + ], + "byteSize": 1000, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "SendToManyV1_output", + "fields": [ + { + "name": "returnCode", + "type": "sint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "Transfer", + "fields": [ + { + "name": "destination", + "type": "id", + "byteOffset": 0 + }, + { + "name": "amount", + "type": "sint64", + "byteOffset": 32 + } + ], + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "VariableOptions", + "fields": [ + { + "name": "variable", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "value", + "type": "sint64", + "byteOffset": 8 + } + ], + "byteSize": 16, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "Vote_input", + "fields": [ + { + "name": "poll_id", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "address", + "type": "id", + "byteOffset": 8 + }, + { + "name": "amount", + "type": "uint64", + "byteOffset": 40 + }, + { + "name": "chosen_option", + "type": "uint64", + "byteOffset": 48 + } + ], + "byteSize": 56, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "Vote_output", + "fields": [ + { + "name": "success", + "type": "bit", + "byteOffset": 0 + } + ], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "alias", + "name": "Data", + "target": "Array", + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "alias", + "name": "GetFees_input", + "target": "NoData", + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "alias", + "name": "GetShareholderProposalFees_input", + "target": "NoData", + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "alias", + "name": "GetShareholderVotes_output", + "target": "ProposalMultiVoteDataV1", + "byteSize": 104, + "byteAlign": 8 + }, + { + "kind": "alias", + "name": "GetShareholderVotingResults_output", + "target": "ProposalSummarizedVotingDataV1", + "byteSize": 48, + "byteAlign": 8 + }, + { + "kind": "alias", + "name": "GetTotalNumberOfAssetShares_input", + "target": "Asset", + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "alias", + "name": "GetTotalNumberOfAssetShares_output", + "target": "sint64", + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "alias", + "name": "ProposalDataT", + "target": "ProposalDataYesNo", + "byteSize": 304, + "byteAlign": 8 + }, + { + "kind": "alias", + "name": "SetShareholderProposal_input", + "target": "ProposalDataT", + "byteSize": 304, + "byteAlign": 8 + }, + { + "kind": "alias", + "name": "SetShareholderProposal_output", + "target": "uint16", + "byteSize": 2, + "byteAlign": 2 + }, + { + "kind": "alias", + "name": "SetShareholderVotes_input", + "target": "ProposalMultiVoteDataV1", + "byteSize": 104, + "byteAlign": 8 + }, + { + "kind": "alias", + "name": "SetShareholderVotes_output", + "target": "bit", + "byteSize": 1, + "byteAlign": 1 + } + ], + "label": "QUtil", + "githubUrl": "https://github.com/qubic/core/blob/main/src/contracts/QUtil.h" + }, + { + "name": "MLM", + "contractIndex": 5, + "address": "FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYWJB", + "filename": "MyLastMatch.h", + "entries": [], + "ioTypes": [], + "label": "My Last Match", + "githubUrl": "https://github.com/qubic/core/blob/main/src/contracts/MyLastMatch.h" + }, + { + "name": "GQMPROP", + "contractIndex": 6, + "address": "GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQGNM", + "filename": "GeneralQuorumProposal.h", + "entries": [ + { + "kind": "function", + "name": "GetProposalIndices", + "inputType": 1, + "inputTypeName": "GetProposalIndices_input", + "outputTypeName": "GetProposalIndices_output", + "inputSize": 8, + "outputSize": 130 + }, + { + "kind": "function", + "name": "GetProposal", + "inputType": 2, + "inputTypeName": "GetProposal_input", + "outputTypeName": "GetProposal_output", + "inputSize": 2, + "outputSize": 368 + }, + { + "kind": "function", + "name": "GetVote", + "inputType": 3, + "inputTypeName": "GetVote_input", + "outputTypeName": "GetVote_output", + "inputSize": 40, + "outputSize": 24 + }, + { + "kind": "function", + "name": "GetVotingResults", + "inputType": 4, + "inputTypeName": "GetVotingResults_input", + "outputTypeName": "GetVotingResults_output", + "inputSize": 2, + "outputSize": 56 + }, + { + "kind": "function", + "name": "GetRevenueDonation", + "inputType": 5, + "inputTypeName": "GetRevenueDonation_input", + "outputTypeName": "GetRevenueDonation_output", + "inputSize": 1, + "outputSize": 6144 + }, + { + "kind": "procedure", + "name": "SetProposal", + "inputType": 1, + "inputTypeName": "SetProposal_input", + "outputTypeName": "SetProposal_output", + "inputSize": 328, + "outputSize": 4, + "displayName": "Set Proposal" + }, + { + "kind": "procedure", + "name": "Vote", + "inputType": 2, + "inputTypeName": "Vote_input", + "outputTypeName": "Vote_output", + "inputSize": 16, + "outputSize": 1, + "displayName": "Vote" + } + ], + "ioTypes": [ + { + "kind": "struct", + "name": "GetProposal_input", + "fields": [ + { + "name": "proposalIndex", + "type": "uint16", + "byteOffset": 0 + } + ], + "byteSize": 2, + "byteAlign": 2 + }, + { + "kind": "struct", + "name": "GetProposal_output", + "fields": [ + { + "name": "okay", + "type": "bit", + "byteOffset": 0 + }, + { + "name": "_padding0", + "type": "Array", + "byteOffset": 1 + }, + { + "name": "_padding1", + "type": "Array", + "byteOffset": 5 + }, + { + "name": "_padding2", + "type": "Array", + "byteOffset": 7 + }, + { + "name": "proposerPubicKey", + "type": "id", + "byteOffset": 8 + }, + { + "name": "proposal", + "type": "ProposalDataT", + "byteOffset": 40 + } + ], + "byteSize": 368, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetProposalIndices_input", + "fields": [ + { + "name": "activeProposals", + "type": "bit", + "byteOffset": 0 + }, + { + "name": "prevProposalIndex", + "type": "sint32", + "byteOffset": 4 + } + ], + "byteSize": 8, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "GetProposalIndices_output", + "fields": [ + { + "name": "numOfIndices", + "type": "uint16", + "byteOffset": 0 + }, + { + "name": "indices", + "type": "Array", + "byteOffset": 2 + } + ], + "byteSize": 130, + "byteAlign": 2 + }, + { + "kind": "struct", + "name": "GetVote_input", + "fields": [ + { + "name": "voter", + "type": "id", + "byteOffset": 0 + }, + { + "name": "proposalIndex", + "type": "uint16", + "byteOffset": 32 + } + ], + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetVote_output", + "fields": [ + { + "name": "okay", + "type": "bit", + "byteOffset": 0 + }, + { + "name": "vote", + "type": "ProposalSingleVoteDataV1", + "byteOffset": 8 + } + ], + "byteSize": 24, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetVotingResults_input", + "fields": [ + { + "name": "proposalIndex", + "type": "uint16", + "byteOffset": 0 + } + ], + "byteSize": 2, + "byteAlign": 2 + }, + { + "kind": "struct", + "name": "GetVotingResults_output", + "fields": [ + { + "name": "okay", + "type": "bit", + "byteOffset": 0 + }, + { + "name": "results", + "type": "ProposalSummarizedVotingDataV1", + "byteOffset": 8 + } + ], + "byteSize": 56, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "ProposalDataV1", + "fields": [ + { + "name": "url", + "type": "Array", + "byteOffset": 0 + }, + { + "name": "epoch", + "type": "uint16", + "byteOffset": 256 + }, + { + "name": "type", + "type": "uint16", + "byteOffset": 258 + }, + { + "name": "tick", + "type": "uint32", + "byteOffset": 260 + }, + { + "name": "data", + "type": "Data", + "byteOffset": 264 + } + ], + "byteSize": 328, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "ProposalSingleVoteDataV1", + "fields": [ + { + "name": "proposalIndex", + "type": "uint16", + "byteOffset": 0 + }, + { + "name": "proposalType", + "type": "uint16", + "byteOffset": 2 + }, + { + "name": "proposalTick", + "type": "uint32", + "byteOffset": 4 + }, + { + "name": "voteValue", + "type": "sint64", + "byteOffset": 8 + } + ], + "byteSize": 16, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "ProposalSummarizedVotingDataV1", + "fields": [ + { + "name": "proposalIndex", + "type": "uint16", + "byteOffset": 0 + }, + { + "name": "optionCount", + "type": "uint16", + "byteOffset": 2 + }, + { + "name": "proposalTick", + "type": "uint32", + "byteOffset": 4 + }, + { + "name": "totalVotesAuthorized", + "type": "uint32", + "byteOffset": 8 + }, + { + "name": "totalVotesCasted", + "type": "uint32", + "byteOffset": 12 + } + ], + "byteSize": 48, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "RevenueDonationEntry", + "fields": [ + { + "name": "destinationPublicKey", + "type": "id", + "byteOffset": 0 + }, + { + "name": "millionthAmount", + "type": "sint64", + "byteOffset": 32 + }, + { + "name": "firstEpoch", + "type": "uint16", + "byteOffset": 40 + } + ], + "byteSize": 48, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "SetProposal_output", + "fields": [ + { + "name": "proposalIndex", + "type": "uint16", + "byteOffset": 0 + }, + { + "name": "okay", + "type": "bool", + "byteOffset": 2 + } + ], + "byteSize": 4, + "byteAlign": 2 + }, + { + "kind": "struct", + "name": "Success_output", + "fields": [ + { + "name": "okay", + "type": "bool", + "byteOffset": 0 + } + ], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "Transfer", + "fields": [ + { + "name": "destination", + "type": "id", + "byteOffset": 0 + }, + { + "name": "amounts", + "type": "Array", + "byteOffset": 32 + } + ], + "byteSize": 64, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "TransferInEpoch", + "fields": [ + { + "name": "destination", + "type": "id", + "byteOffset": 0 + }, + { + "name": "amount", + "type": "sint64", + "byteOffset": 32 + }, + { + "name": "targetEpoch", + "type": "uint16", + "byteOffset": 40 + } + ], + "byteSize": 48, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "VariableOptions", + "fields": [ + { + "name": "variable", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "values", + "type": "Array", + "byteOffset": 8 + } + ], + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "VariableScalar", + "fields": [ + { + "name": "variable", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "minValue", + "type": "sint64", + "byteOffset": 8 + }, + { + "name": "maxValue", + "type": "sint64", + "byteOffset": 16 + }, + { + "name": "proposedValue", + "type": "sint64", + "byteOffset": 24 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "alias", + "name": "Data", + "target": "Array", + "byteSize": 64, + "byteAlign": 8 + }, + { + "kind": "alias", + "name": "GetRevenueDonation_input", + "target": "NoData", + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "alias", + "name": "GetRevenueDonation_output", + "target": "RevenueDonationT", + "byteSize": 6144, + "byteAlign": 8 + }, + { + "kind": "alias", + "name": "ProposalDataT", + "target": "ProposalDataV1", + "byteSize": 328, + "byteAlign": 8 + }, + { + "kind": "alias", + "name": "RevenueDonationT", + "target": "Array", + "byteSize": 6144, + "byteAlign": 8 + }, + { + "kind": "alias", + "name": "SetProposal_input", + "target": "ProposalDataT", + "byteSize": 328, + "byteAlign": 8 + }, + { + "kind": "alias", + "name": "Vote_input", + "target": "ProposalSingleVoteDataV1", + "byteSize": 16, + "byteAlign": 8 + }, + { + "kind": "alias", + "name": "Vote_output", + "target": "Success_output", + "byteSize": 1, + "byteAlign": 1 + } + ], + "label": "General Quorum Proposal", + "githubUrl": "https://github.com/qubic/core/blob/main/src/contracts/GeneralQuorumProposal.h" + }, + { + "name": "SWATCH", + "contractIndex": 7, + "address": "HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHYCM", + "filename": "SupplyWatcher.h", + "entries": [], + "ioTypes": [], + "label": "Supply Watcher", + "githubUrl": "https://github.com/qubic/core/blob/main/src/contracts/SupplyWatcher.h" + }, + { + "name": "CCF", + "contractIndex": 8, + "address": "IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABXSH", + "filename": "ComputorControlledFund.h", + "entries": [ + { + "kind": "function", + "name": "GetProposalIndices", + "inputType": 1, + "inputTypeName": "GetProposalIndices_input", + "outputTypeName": "GetProposalIndices_output", + "inputSize": 8, + "outputSize": 130 + }, + { + "kind": "function", + "name": "GetProposal", + "inputType": 2, + "inputTypeName": "GetProposal_input", + "outputTypeName": "GetProposal_output", + "inputSize": 40, + "outputSize": 1000 + }, + { + "kind": "function", + "name": "GetVote", + "inputType": 3, + "inputTypeName": "GetVote_input", + "outputTypeName": "GetVote_output", + "inputSize": 40, + "outputSize": 24 + }, + { + "kind": "function", + "name": "GetVotingResults", + "inputType": 4, + "inputTypeName": "GetVotingResults_input", + "outputTypeName": "GetVotingResults_output", + "inputSize": 2, + "outputSize": 56 + }, + { + "kind": "function", + "name": "GetLatestTransfers", + "inputType": 5, + "inputTypeName": "GetLatestTransfers_input", + "outputTypeName": "GetLatestTransfers_output", + "inputSize": 1, + "outputSize": 38912 + }, + { + "kind": "function", + "name": "GetProposalFee", + "inputType": 6, + "inputTypeName": "GetProposalFee_input", + "outputTypeName": "GetProposalFee_output", + "inputSize": 1, + "outputSize": 4 + }, + { + "kind": "function", + "name": "GetRegularPayments", + "inputType": 7, + "inputTypeName": "GetRegularPayments_input", + "outputTypeName": "GetRegularPayments_output", + "inputSize": 1, + "outputSize": 39936 + }, + { + "kind": "procedure", + "name": "SetProposal", + "inputType": 1, + "inputTypeName": "SetProposal_input", + "outputTypeName": "SetProposal_output", + "inputSize": 328, + "outputSize": 2, + "displayName": "Set Proposal" + }, + { + "kind": "procedure", + "name": "Vote", + "inputType": 2, + "inputTypeName": "Vote_input", + "outputTypeName": "Vote_output", + "inputSize": 16, + "outputSize": 1, + "displayName": "Vote" + } + ], + "ioTypes": [ + { + "kind": "struct", + "name": "GetProposal_input", + "fields": [ + { + "name": "subscriptionDestination", + "type": "id", + "byteOffset": 0 + }, + { + "name": "proposalIndex", + "type": "uint16", + "byteOffset": 32 + } + ], + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetProposal_output", + "fields": [ + { + "name": "okay", + "type": "bit", + "byteOffset": 0 + }, + { + "name": "hasSubscriptionProposal", + "type": "bit", + "byteOffset": 1 + }, + { + "name": "hasActiveSubscription", + "type": "bit", + "byteOffset": 2 + }, + { + "name": "_padding0", + "type": "Array", + "byteOffset": 3 + }, + { + "name": "_padding1", + "type": "Array", + "byteOffset": 4 + }, + { + "name": "proposerPublicKey", + "type": "id", + "byteOffset": 8 + }, + { + "name": "proposal", + "type": "ProposalDataT", + "byteOffset": 40 + }, + { + "name": "subscription", + "type": "SubscriptionData", + "byteOffset": 344 + }, + { + "name": "subscriptionProposal", + "type": "SubscriptionProposalData", + "byteOffset": 656 + } + ], + "byteSize": 1000, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetProposalFee_output", + "fields": [ + { + "name": "proposalFee", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "GetProposalIndices_input", + "fields": [ + { + "name": "activeProposals", + "type": "bit", + "byteOffset": 0 + }, + { + "name": "prevProposalIndex", + "type": "sint32", + "byteOffset": 4 + } + ], + "byteSize": 8, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "GetProposalIndices_output", + "fields": [ + { + "name": "numOfIndices", + "type": "uint16", + "byteOffset": 0 + }, + { + "name": "indices", + "type": "Array", + "byteOffset": 2 + } + ], + "byteSize": 130, + "byteAlign": 2 + }, + { + "kind": "struct", + "name": "GetVote_input", + "fields": [ + { + "name": "voter", + "type": "id", + "byteOffset": 0 + }, + { + "name": "proposalIndex", + "type": "uint16", + "byteOffset": 32 + } + ], + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetVote_output", + "fields": [ + { + "name": "okay", + "type": "bit", + "byteOffset": 0 + }, + { + "name": "vote", + "type": "ProposalSingleVoteDataV1", + "byteOffset": 8 + } + ], + "byteSize": 24, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetVotingResults_input", + "fields": [ + { + "name": "proposalIndex", + "type": "uint16", + "byteOffset": 0 + } + ], + "byteSize": 2, + "byteAlign": 2 + }, + { + "kind": "struct", + "name": "GetVotingResults_output", + "fields": [ + { + "name": "okay", + "type": "bit", + "byteOffset": 0 + }, + { + "name": "results", + "type": "ProposalSummarizedVotingDataV1", + "byteOffset": 8 + } + ], + "byteSize": 56, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "LatestTransfersEntry", + "fields": [ + { + "name": "destination", + "type": "id", + "byteOffset": 0 + }, + { + "name": "url", + "type": "Array", + "byteOffset": 32 + }, + { + "name": "amount", + "type": "sint64", + "byteOffset": 288 + }, + { + "name": "tick", + "type": "uint32", + "byteOffset": 296 + }, + { + "name": "success", + "type": "bool", + "byteOffset": 300 + } + ], + "byteSize": 304, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "ProposalDataYesNo", + "fields": [ + { + "name": "url", + "type": "Array", + "byteOffset": 0 + }, + { + "name": "epoch", + "type": "uint16", + "byteOffset": 256 + }, + { + "name": "type", + "type": "uint16", + "byteOffset": 258 + }, + { + "name": "tick", + "type": "uint32", + "byteOffset": 260 + }, + { + "name": "data", + "type": "Data", + "byteOffset": 264 + } + ], + "byteSize": 304, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "ProposalSingleVoteDataV1", + "fields": [ + { + "name": "proposalIndex", + "type": "uint16", + "byteOffset": 0 + }, + { + "name": "proposalType", + "type": "uint16", + "byteOffset": 2 + }, + { + "name": "proposalTick", + "type": "uint32", + "byteOffset": 4 + }, + { + "name": "voteValue", + "type": "sint64", + "byteOffset": 8 + } + ], + "byteSize": 16, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "ProposalSummarizedVotingDataV1", + "fields": [ + { + "name": "proposalIndex", + "type": "uint16", + "byteOffset": 0 + }, + { + "name": "optionCount", + "type": "uint16", + "byteOffset": 2 + }, + { + "name": "proposalTick", + "type": "uint32", + "byteOffset": 4 + }, + { + "name": "totalVotesAuthorized", + "type": "uint32", + "byteOffset": 8 + }, + { + "name": "totalVotesCasted", + "type": "uint32", + "byteOffset": 12 + } + ], + "byteSize": 48, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "RegularPaymentEntry", + "fields": [ + { + "name": "destination", + "type": "id", + "byteOffset": 0 + }, + { + "name": "url", + "type": "Array", + "byteOffset": 32 + }, + { + "name": "amount", + "type": "sint64", + "byteOffset": 288 + }, + { + "name": "tick", + "type": "uint32", + "byteOffset": 296 + }, + { + "name": "periodIndex", + "type": "sint32", + "byteOffset": 300 + }, + { + "name": "success", + "type": "bool", + "byteOffset": 304 + }, + { + "name": "_padding0", + "type": "Array", + "byteOffset": 305 + }, + { + "name": "_padding1", + "type": "Array", + "byteOffset": 306 + } + ], + "byteSize": 312, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "SetProposal_input", + "fields": [ + { + "name": "proposal", + "type": "ProposalDataT", + "byteOffset": 0 + }, + { + "name": "isSubscription", + "type": "bit", + "byteOffset": 304 + }, + { + "name": "weeksPerPeriod", + "type": "uint8", + "byteOffset": 305 + }, + { + "name": "_padding0", + "type": "Array", + "byteOffset": 306 + }, + { + "name": "startEpoch", + "type": "uint32", + "byteOffset": 308 + }, + { + "name": "amountPerPeriod", + "type": "uint64", + "byteOffset": 312 + }, + { + "name": "numberOfPeriods", + "type": "uint32", + "byteOffset": 320 + } + ], + "byteSize": 328, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "SetProposal_output", + "fields": [ + { + "name": "proposalIndex", + "type": "uint16", + "byteOffset": 0 + } + ], + "byteSize": 2, + "byteAlign": 2 + }, + { + "kind": "struct", + "name": "SubscriptionData", + "fields": [ + { + "name": "destination", + "type": "id", + "byteOffset": 0 + }, + { + "name": "url", + "type": "Array", + "byteOffset": 32 + }, + { + "name": "weeksPerPeriod", + "type": "uint8", + "byteOffset": 288 + }, + { + "name": "_padding1", + "type": "Array", + "byteOffset": 289 + }, + { + "name": "_padding2", + "type": "Array", + "byteOffset": 290 + }, + { + "name": "numberOfPeriods", + "type": "uint32", + "byteOffset": 292 + }, + { + "name": "amountPerPeriod", + "type": "uint64", + "byteOffset": 296 + }, + { + "name": "startEpoch", + "type": "uint32", + "byteOffset": 304 + }, + { + "name": "currentPeriod", + "type": "sint32", + "byteOffset": 308 + } + ], + "byteSize": 312, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "SubscriptionProposalData", + "fields": [ + { + "name": "proposerId", + "type": "id", + "byteOffset": 0 + }, + { + "name": "destination", + "type": "id", + "byteOffset": 32 + }, + { + "name": "url", + "type": "Array", + "byteOffset": 64 + }, + { + "name": "weeksPerPeriod", + "type": "uint8", + "byteOffset": 320 + }, + { + "name": "_padding0", + "type": "Array", + "byteOffset": 321 + }, + { + "name": "_padding1", + "type": "Array", + "byteOffset": 322 + }, + { + "name": "numberOfPeriods", + "type": "uint32", + "byteOffset": 324 + }, + { + "name": "amountPerPeriod", + "type": "uint64", + "byteOffset": 328 + }, + { + "name": "startEpoch", + "type": "uint32", + "byteOffset": 336 + } + ], + "byteSize": 344, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "Success_output", + "fields": [ + { + "name": "okay", + "type": "bool", + "byteOffset": 0 + } + ], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "Transfer", + "fields": [ + { + "name": "destination", + "type": "id", + "byteOffset": 0 + }, + { + "name": "amount", + "type": "sint64", + "byteOffset": 32 + } + ], + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "VariableOptions", + "fields": [ + { + "name": "variable", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "value", + "type": "sint64", + "byteOffset": 8 + } + ], + "byteSize": 16, + "byteAlign": 8 + }, + { + "kind": "alias", + "name": "Data", + "target": "Array", + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "alias", + "name": "GetLatestTransfers_input", + "target": "NoData", + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "alias", + "name": "GetLatestTransfers_output", + "target": "LatestTransfersT", + "byteSize": 38912, + "byteAlign": 8 + }, + { + "kind": "alias", + "name": "GetProposalFee_input", + "target": "NoData", + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "alias", + "name": "GetRegularPayments_input", + "target": "NoData", + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "alias", + "name": "GetRegularPayments_output", + "target": "RegularPaymentsT", + "byteSize": 39936, + "byteAlign": 8 + }, + { + "kind": "alias", + "name": "LatestTransfersT", + "target": "Array", + "byteSize": 38912, + "byteAlign": 8 + }, + { + "kind": "alias", + "name": "ProposalDataT", + "target": "ProposalDataYesNo", + "byteSize": 304, + "byteAlign": 8 + }, + { + "kind": "alias", + "name": "RegularPaymentsT", + "target": "Array", + "byteSize": 39936, + "byteAlign": 8 + }, + { + "kind": "alias", + "name": "Vote_input", + "target": "ProposalSingleVoteDataV1", + "byteSize": 16, + "byteAlign": 8 + }, + { + "kind": "alias", + "name": "Vote_output", + "target": "Success_output", + "byteSize": 1, + "byteAlign": 1 + } + ], + "label": "Computor Controlled Fund", + "githubUrl": "https://github.com/qubic/core/blob/main/src/contracts/ComputorControlledFund.h", + "proposalUrl": "https://github.com/qubic/proposal/blob/e305392f2084dc72b4958c1a62d5af9cfa55785f/SmartContracts/2024-09-09-CCF.md" + }, + { + "name": "QEARN", + "contractIndex": 9, + "address": "JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVKHO", + "filename": "Qearn.h", + "entries": [ + { + "kind": "function", + "name": "getLockInfoPerEpoch", + "inputType": 1, + "inputTypeName": "getLockInfoPerEpoch_input", + "outputTypeName": "getLockInfoPerEpoch_output", + "inputSize": 4, + "outputSize": 40 + }, + { + "kind": "function", + "name": "getUserLockedInfo", + "inputType": 2, + "inputTypeName": "getUserLockedInfo_input", + "outputTypeName": "getUserLockedInfo_output", + "inputSize": 40, + "outputSize": 8 + }, + { + "kind": "function", + "name": "getStateOfRound", + "inputType": 3, + "inputTypeName": "getStateOfRound_input", + "outputTypeName": "getStateOfRound_output", + "inputSize": 4, + "outputSize": 4 + }, + { + "kind": "function", + "name": "getUserLockStatus", + "inputType": 4, + "inputTypeName": "getUserLockStatus_input", + "outputTypeName": "getUserLockStatus_output", + "inputSize": 32, + "outputSize": 8 + }, + { + "kind": "function", + "name": "getEndedStatus", + "inputType": 5, + "inputTypeName": "getEndedStatus_input", + "outputTypeName": "getEndedStatus_output", + "inputSize": 32, + "outputSize": 32 + }, + { + "kind": "function", + "name": "getStatsPerEpoch", + "inputType": 6, + "inputTypeName": "getStatsPerEpoch_input", + "outputTypeName": "getStatsPerEpoch_output", + "inputSize": 4, + "outputSize": 32 + }, + { + "kind": "function", + "name": "getBurnedAndBoostedStats", + "inputType": 7, + "inputTypeName": "getBurnedAndBoostedStats_input", + "outputTypeName": "getBurnedAndBoostedStats_output", + "inputSize": 1, + "outputSize": 48 + }, + { + "kind": "function", + "name": "getBurnedAndBoostedStatsPerEpoch", + "inputType": 8, + "inputTypeName": "getBurnedAndBoostedStatsPerEpoch_input", + "outputTypeName": "getBurnedAndBoostedStatsPerEpoch_output", + "inputSize": 4, + "outputSize": 48 + }, + { + "kind": "procedure", + "name": "lock", + "inputType": 1, + "inputTypeName": "lock_input", + "outputTypeName": "lock_output", + "inputSize": 1, + "outputSize": 4, + "displayName": "Lock" + }, + { + "kind": "procedure", + "name": "unlock", + "inputType": 2, + "inputTypeName": "unlock_input", + "outputTypeName": "unlock_output", + "inputSize": 16, + "outputSize": 4, + "displayName": "Unlock" + } + ], + "ioTypes": [ + { + "kind": "struct", + "name": "getBurnedAndBoostedStats_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "getBurnedAndBoostedStats_output", + "fields": [ + { + "name": "burnedAmount", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "averageBurnedPercent", + "type": "uint64", + "byteOffset": 8 + }, + { + "name": "boostedAmount", + "type": "uint64", + "byteOffset": 16 + }, + { + "name": "averageBoostedPercent", + "type": "uint64", + "byteOffset": 24 + }, + { + "name": "rewardedAmount", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "averageRewardedPercent", + "type": "uint64", + "byteOffset": 40 + } + ], + "byteSize": 48, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getBurnedAndBoostedStatsPerEpoch_input", + "fields": [ + { + "name": "epoch", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "getBurnedAndBoostedStatsPerEpoch_output", + "fields": [ + { + "name": "burnedAmount", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "burnedPercent", + "type": "uint64", + "byteOffset": 8 + }, + { + "name": "boostedAmount", + "type": "uint64", + "byteOffset": 16 + }, + { + "name": "boostedPercent", + "type": "uint64", + "byteOffset": 24 + }, + { + "name": "rewardedAmount", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "rewardedPercent", + "type": "uint64", + "byteOffset": 40 + } + ], + "byteSize": 48, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getEndedStatus_input", + "fields": [ + { + "name": "user", + "type": "id", + "byteOffset": 0 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getEndedStatus_output", + "fields": [ + { + "name": "fullyUnlockedAmount", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "fullyRewardedAmount", + "type": "uint64", + "byteOffset": 8 + }, + { + "name": "earlyUnlockedAmount", + "type": "uint64", + "byteOffset": 16 + }, + { + "name": "earlyRewardedAmount", + "type": "uint64", + "byteOffset": 24 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getLockInfoPerEpoch_input", + "fields": [ + { + "name": "Epoch", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "getLockInfoPerEpoch_output", + "fields": [ + { + "name": "lockedAmount", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "bonusAmount", + "type": "uint64", + "byteOffset": 8 + }, + { + "name": "currentLockedAmount", + "type": "uint64", + "byteOffset": 16 + }, + { + "name": "currentBonusAmount", + "type": "uint64", + "byteOffset": 24 + }, + { + "name": "yield", + "type": "uint64", + "byteOffset": 32 + } + ], + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getStateOfRound_input", + "fields": [ + { + "name": "epoch", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "getStateOfRound_output", + "fields": [ + { + "name": "state", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "getStatsPerEpoch_input", + "fields": [ + { + "name": "epoch", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "getStatsPerEpoch_output", + "fields": [ + { + "name": "earlyUnlockedAmount", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "earlyUnlockedPercent", + "type": "uint64", + "byteOffset": 8 + }, + { + "name": "totalLockedAmount", + "type": "uint64", + "byteOffset": 16 + }, + { + "name": "averageAPY", + "type": "uint64", + "byteOffset": 24 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getUserLockedInfo_input", + "fields": [ + { + "name": "user", + "type": "id", + "byteOffset": 0 + }, + { + "name": "epoch", + "type": "uint32", + "byteOffset": 32 + } + ], + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getUserLockedInfo_output", + "fields": [ + { + "name": "lockedAmount", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getUserLockStatus_input", + "fields": [ + { + "name": "user", + "type": "id", + "byteOffset": 0 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getUserLockStatus_output", + "fields": [ + { + "name": "status", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "lock_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "lock_output", + "fields": [ + { + "name": "returnCode", + "type": "sint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "unlock_input", + "fields": [ + { + "name": "amount", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "lockedEpoch", + "type": "uint32", + "byteOffset": 8 + } + ], + "byteSize": 16, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "unlock_output", + "fields": [ + { + "name": "returnCode", + "type": "sint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + } + ], + "label": "QEarn", + "githubUrl": "https://github.com/qubic/core/blob/main/src/contracts/Qearn.h", + "website": "https://qearn.org", + "proposalUrl": "https://github.com/qubic/proposal/blob/e305392f2084dc72b4958c1a62d5af9cfa55785f/SmartContracts/2024-11-14-QEarn.md" + }, + { + "name": "QVAULT", + "contractIndex": 10, + "address": "KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXIUO", + "filename": "QVAULT.h", + "entries": [ + { + "kind": "function", + "name": "getData", + "inputType": 1, + "inputTypeName": "getData_input", + "outputTypeName": "getData_output", + "inputSize": 1, + "outputSize": 664 + }, + { + "kind": "procedure", + "name": "submitAuthAddress", + "inputType": 1, + "inputTypeName": "submitAuthAddress_input", + "outputTypeName": "submitAuthAddress_output", + "inputSize": 32, + "outputSize": 1, + "displayName": "Submit Auth Address" + }, + { + "kind": "procedure", + "name": "changeAuthAddress", + "inputType": 2, + "inputTypeName": "changeAuthAddress_input", + "outputTypeName": "changeAuthAddress_output", + "inputSize": 4, + "outputSize": 1, + "displayName": "Change Auth Address" + }, + { + "kind": "procedure", + "name": "submitDistributionPermille", + "inputType": 3, + "inputTypeName": "submitDistributionPermille_input", + "outputTypeName": "submitDistributionPermille_output", + "inputSize": 12, + "outputSize": 1, + "displayName": "Submit Distribution Permille" + }, + { + "kind": "procedure", + "name": "changeDistributionPermille", + "inputType": 4, + "inputTypeName": "changeDistributionPermille_input", + "outputTypeName": "changeDistributionPermille_output", + "inputSize": 12, + "outputSize": 1, + "displayName": "Change Distribution Permille" + }, + { + "kind": "procedure", + "name": "submitReinvestingAddress", + "inputType": 5, + "inputTypeName": "submitReinvestingAddress_input", + "outputTypeName": "submitReinvestingAddress_output", + "inputSize": 32, + "outputSize": 1, + "displayName": "Submit Reinvesting Address" + }, + { + "kind": "procedure", + "name": "changeReinvestingAddress", + "inputType": 6, + "inputTypeName": "changeReinvestingAddress_input", + "outputTypeName": "changeReinvestingAddress_output", + "inputSize": 32, + "outputSize": 1, + "displayName": "Change Reinvesting Address" + }, + { + "kind": "procedure", + "name": "submitAdminAddress", + "inputType": 7, + "inputTypeName": "submitAdminAddress_input", + "outputTypeName": "submitAdminAddress_output", + "inputSize": 32, + "outputSize": 1, + "displayName": "Submit Admin Address" + }, + { + "kind": "procedure", + "name": "changeAdminAddress", + "inputType": 8, + "inputTypeName": "changeAdminAddress_input", + "outputTypeName": "changeAdminAddress_output", + "inputSize": 32, + "outputSize": 1, + "displayName": "Change Admin Address" + }, + { + "kind": "procedure", + "name": "submitBannedAddress", + "inputType": 9, + "inputTypeName": "submitBannedAddress_input", + "outputTypeName": "submitBannedAddress_output", + "inputSize": 32, + "outputSize": 1, + "displayName": "Submit Banned Address" + }, + { + "kind": "procedure", + "name": "saveBannedAddress", + "inputType": 10, + "inputTypeName": "saveBannedAddress_input", + "outputTypeName": "saveBannedAddress_output", + "inputSize": 32, + "outputSize": 1, + "displayName": "Save Banned Address" + }, + { + "kind": "procedure", + "name": "submitUnbannedAddress", + "inputType": 11, + "inputTypeName": "submitUnbannedAddress_input", + "outputTypeName": "submitUnbannedAddress_output", + "inputSize": 32, + "outputSize": 1, + "displayName": "Submit Unbanned Address" + }, + { + "kind": "procedure", + "name": "unblockBannedAddress", + "inputType": 12, + "inputTypeName": "unblockBannedAddress_input", + "outputTypeName": "unblockBannedAddress_output", + "inputSize": 32, + "outputSize": 1, + "displayName": "Unblock Banned Address" + } + ], + "ioTypes": [ + { + "kind": "struct", + "name": "changeAdminAddress_input", + "fields": [ + { + "name": "newAddress", + "type": "id", + "byteOffset": 0 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "changeAdminAddress_output", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "changeAuthAddress_input", + "fields": [ + { + "name": "numberOfChangedAddress", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "changeAuthAddress_output", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "changeDistributionPermille_input", + "fields": [ + { + "name": "newQCAPHolderPermille", + "type": "uint32", + "byteOffset": 0 + }, + { + "name": "newReinvestingPermille", + "type": "uint32", + "byteOffset": 4 + }, + { + "name": "newDevPermille", + "type": "uint32", + "byteOffset": 8 + } + ], + "byteSize": 12, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "changeDistributionPermille_output", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "changeReinvestingAddress_input", + "fields": [ + { + "name": "newAddress", + "type": "id", + "byteOffset": 0 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "changeReinvestingAddress_output", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "getData_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "getData_output", + "fields": [ + { + "name": "numberOfBannedAddress", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "shareholderDividend", + "type": "uint32", + "byteOffset": 8 + }, + { + "name": "QCAPHolderPermille", + "type": "uint32", + "byteOffset": 12 + }, + { + "name": "reinvestingPermille", + "type": "uint32", + "byteOffset": 16 + }, + { + "name": "devPermille", + "type": "uint32", + "byteOffset": 20 + }, + { + "name": "authAddress1", + "type": "id", + "byteOffset": 24 + }, + { + "name": "authAddress2", + "type": "id", + "byteOffset": 56 + }, + { + "name": "authAddress3", + "type": "id", + "byteOffset": 88 + }, + { + "name": "reinvestingAddress", + "type": "id", + "byteOffset": 120 + }, + { + "name": "adminAddress", + "type": "id", + "byteOffset": 152 + }, + { + "name": "newAuthAddress1", + "type": "id", + "byteOffset": 184 + }, + { + "name": "newAuthAddress2", + "type": "id", + "byteOffset": 216 + }, + { + "name": "newAuthAddress3", + "type": "id", + "byteOffset": 248 + }, + { + "name": "newReinvestingAddress1", + "type": "id", + "byteOffset": 280 + }, + { + "name": "newReinvestingAddress2", + "type": "id", + "byteOffset": 312 + }, + { + "name": "newReinvestingAddress3", + "type": "id", + "byteOffset": 344 + }, + { + "name": "newAdminAddress1", + "type": "id", + "byteOffset": 376 + }, + { + "name": "newAdminAddress2", + "type": "id", + "byteOffset": 408 + }, + { + "name": "newAdminAddress3", + "type": "id", + "byteOffset": 440 + }, + { + "name": "bannedAddress1", + "type": "id", + "byteOffset": 472 + }, + { + "name": "bannedAddress2", + "type": "id", + "byteOffset": 504 + }, + { + "name": "bannedAddress3", + "type": "id", + "byteOffset": 536 + }, + { + "name": "unbannedAddress1", + "type": "id", + "byteOffset": 568 + }, + { + "name": "unbannedAddress2", + "type": "id", + "byteOffset": 600 + }, + { + "name": "unbannedAddress3", + "type": "id", + "byteOffset": 632 + } + ], + "byteSize": 664, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "saveBannedAddress_input", + "fields": [ + { + "name": "bannedAddress", + "type": "id", + "byteOffset": 0 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "saveBannedAddress_output", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "submitAdminAddress_input", + "fields": [ + { + "name": "newAddress", + "type": "id", + "byteOffset": 0 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "submitAdminAddress_output", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "submitAuthAddress_input", + "fields": [ + { + "name": "newAddress", + "type": "id", + "byteOffset": 0 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "submitAuthAddress_output", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "submitBannedAddress_input", + "fields": [ + { + "name": "bannedAddress", + "type": "id", + "byteOffset": 0 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "submitBannedAddress_output", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "submitDistributionPermille_input", + "fields": [ + { + "name": "newQCAPHolderPermille", + "type": "uint32", + "byteOffset": 0 + }, + { + "name": "newReinvestingPermille", + "type": "uint32", + "byteOffset": 4 + }, + { + "name": "newDevPermille", + "type": "uint32", + "byteOffset": 8 + } + ], + "byteSize": 12, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "submitDistributionPermille_output", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "submitReinvestingAddress_input", + "fields": [ + { + "name": "newAddress", + "type": "id", + "byteOffset": 0 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "submitReinvestingAddress_output", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "submitUnbannedAddress_input", + "fields": [ + { + "name": "unbannedAddress", + "type": "id", + "byteOffset": 0 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "submitUnbannedAddress_output", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "unblockBannedAddress_input", + "fields": [ + { + "name": "unbannedAddress", + "type": "id", + "byteOffset": 0 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "unblockBannedAddress_output", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + } + ], + "label": "QVault", + "githubUrl": "https://github.com/qubic/core/blob/main/src/contracts/QVAULT.h", + "proposalUrl": "https://github.com/qubic/proposal/blob/e305392f2084dc72b4958c1a62d5af9cfa55785f/SmartContracts/2024-11-14-QEarn.md" + }, + { + "name": "MSVAULT", + "contractIndex": 11, + "address": "LAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKPTJ", + "filename": "MsVault.h", + "entries": [ + { + "kind": "function", + "name": "getVaults", + "inputType": 5, + "inputTypeName": "getVaults_input", + "outputTypeName": "getVaults_output", + "inputSize": 32, + "outputSize": 328 + }, + { + "kind": "function", + "name": "getReleaseStatus", + "inputType": 6, + "inputTypeName": "getReleaseStatus_input", + "outputTypeName": "getReleaseStatus_output", + "inputSize": 8, + "outputSize": 648 + }, + { + "kind": "function", + "name": "getBalanceOf", + "inputType": 7, + "inputTypeName": "getBalanceOf_input", + "outputTypeName": "getBalanceOf_output", + "inputSize": 8, + "outputSize": 16 + }, + { + "kind": "function", + "name": "getVaultName", + "inputType": 8, + "inputTypeName": "getVaultName_input", + "outputTypeName": "getVaultName_output", + "inputSize": 8, + "outputSize": 40 + }, + { + "kind": "function", + "name": "getRevenueInfo", + "inputType": 9, + "inputTypeName": "getRevenueInfo_input", + "outputTypeName": "getRevenueInfo_output", + "inputSize": 1, + "outputSize": 32 + }, + { + "kind": "function", + "name": "getFees", + "inputType": 10, + "inputTypeName": "getFees_input", + "outputTypeName": "getFees_output", + "inputSize": 1, + "outputSize": 48 + }, + { + "kind": "function", + "name": "getVaultOwners", + "inputType": 11, + "inputTypeName": "getVaultOwners_input", + "outputTypeName": "getVaultOwners_output", + "inputSize": 8, + "outputSize": 536 + }, + { + "kind": "function", + "name": "isShareHolder", + "inputType": 12, + "inputTypeName": "isShareHolder_input", + "outputTypeName": "isShareHolder_output", + "inputSize": 32, + "outputSize": 8 + }, + { + "kind": "function", + "name": "getFeeVotes", + "inputType": 14, + "inputTypeName": "getFeeVotes_input", + "outputTypeName": "getFeeVotes_output", + "inputSize": 1, + "outputSize": 3088 + }, + { + "kind": "function", + "name": "getFeeVotesOwner", + "inputType": 15, + "inputTypeName": "getFeeVotesOwner_input", + "outputTypeName": "getFeeVotesOwner_output", + "inputSize": 1, + "outputSize": 2064 + }, + { + "kind": "function", + "name": "getFeeVotesScore", + "inputType": 16, + "inputTypeName": "getFeeVotesScore_input", + "outputTypeName": "getFeeVotesScore_output", + "inputSize": 1, + "outputSize": 528 + }, + { + "kind": "function", + "name": "getUniqueFeeVotes", + "inputType": 17, + "inputTypeName": "getUniqueFeeVotes_input", + "outputTypeName": "getUniqueFeeVotes_output", + "inputSize": 1, + "outputSize": 3088 + }, + { + "kind": "function", + "name": "getUniqueFeeVotesRanking", + "inputType": 18, + "inputTypeName": "getUniqueFeeVotesRanking_input", + "outputTypeName": "getUniqueFeeVotesRanking_output", + "inputSize": 1, + "outputSize": 528 + }, + { + "kind": "function", + "name": "getVaultAssetBalances", + "inputType": 22, + "inputTypeName": "getVaultAssetBalances_input", + "outputTypeName": "getVaultAssetBalances_output", + "inputSize": 8, + "outputSize": 400 + }, + { + "kind": "function", + "name": "getAssetReleaseStatus", + "inputType": 23, + "inputTypeName": "getAssetReleaseStatus_input", + "outputTypeName": "getAssetReleaseStatus_output", + "inputSize": 8, + "outputSize": 1288 + }, + { + "kind": "function", + "name": "getManagedAssetBalance", + "inputType": 24, + "inputTypeName": "getManagedAssetBalance_input", + "outputTypeName": "getManagedAssetBalance_output", + "inputSize": 72, + "outputSize": 8 + }, + { + "kind": "procedure", + "name": "registerVault", + "inputType": 1, + "inputTypeName": "registerVault_input", + "outputTypeName": "registerVault_output", + "inputSize": 552, + "outputSize": 8, + "displayName": "Register Vault" + }, + { + "kind": "procedure", + "name": "deposit", + "inputType": 2, + "inputTypeName": "deposit_input", + "outputTypeName": "deposit_output", + "inputSize": 8, + "outputSize": 8, + "displayName": "Deposit" + }, + { + "kind": "procedure", + "name": "releaseTo", + "inputType": 3, + "inputTypeName": "releaseTo_input", + "outputTypeName": "releaseTo_output", + "inputSize": 48, + "outputSize": 8, + "displayName": "Release To" + }, + { + "kind": "procedure", + "name": "resetRelease", + "inputType": 4, + "inputTypeName": "resetRelease_input", + "outputTypeName": "resetRelease_output", + "inputSize": 8, + "outputSize": 8, + "displayName": "Reset Release" + }, + { + "kind": "procedure", + "name": "voteFeeChange", + "inputType": 13, + "inputTypeName": "voteFeeChange_input", + "outputTypeName": "voteFeeChange_output", + "inputSize": 48, + "outputSize": 8, + "displayName": "Vote Fee Change" + }, + { + "kind": "procedure", + "name": "depositAsset", + "inputType": 19, + "inputTypeName": "depositAsset_input", + "outputTypeName": "depositAsset_output", + "inputSize": 56, + "outputSize": 8, + "displayName": "Deposit Asset" + }, + { + "kind": "procedure", + "name": "releaseAssetTo", + "inputType": 20, + "inputTypeName": "releaseAssetTo_input", + "outputTypeName": "releaseAssetTo_output", + "inputSize": 88, + "outputSize": 8, + "displayName": "Release Asset To" + }, + { + "kind": "procedure", + "name": "resetAssetRelease", + "inputType": 21, + "inputTypeName": "resetAssetRelease_input", + "outputTypeName": "resetAssetRelease_output", + "inputSize": 8, + "outputSize": 8, + "displayName": "Reset Asset Release" + }, + { + "kind": "procedure", + "name": "revokeAssetManagementRights", + "inputType": 25, + "inputTypeName": "revokeAssetManagementRights_input", + "outputTypeName": "revokeAssetManagementRights_output", + "inputSize": 48, + "outputSize": 16, + "displayName": "Revoke Asset Management Rights" + } + ], + "ioTypes": [ + { + "kind": "struct", + "name": "Asset", + "fields": [ + { + "name": "issuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "assetName", + "type": "uint64", + "byteOffset": 32 + } + ], + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "AssetBalance", + "fields": [ + { + "name": "asset", + "type": "Asset", + "byteOffset": 0 + }, + { + "name": "balance", + "type": "uint64", + "byteOffset": 40 + } + ], + "byteSize": 48, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "deposit_input", + "fields": [ + { + "name": "vaultId", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "deposit_output", + "fields": [ + { + "name": "status", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "depositAsset_input", + "fields": [ + { + "name": "vaultId", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "asset", + "type": "Asset", + "byteOffset": 8 + }, + { + "name": "amount", + "type": "uint64", + "byteOffset": 48 + } + ], + "byteSize": 56, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "depositAsset_output", + "fields": [ + { + "name": "status", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getAssetReleaseStatus_input", + "fields": [ + { + "name": "vaultId", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getAssetReleaseStatus_output", + "fields": [ + { + "name": "status", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "assets", + "type": "Array", + "byteOffset": 8 + }, + { + "name": "amounts", + "type": "Array", + "byteOffset": 648 + }, + { + "name": "destinations", + "type": "Array", + "byteOffset": 776 + } + ], + "byteSize": 1288, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getBalanceOf_input", + "fields": [ + { + "name": "vaultId", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getBalanceOf_output", + "fields": [ + { + "name": "status", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "balance", + "type": "sint64", + "byteOffset": 8 + } + ], + "byteSize": 16, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getFees_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "getFees_output", + "fields": [ + { + "name": "registeringFee", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "releaseFee", + "type": "uint64", + "byteOffset": 8 + }, + { + "name": "releaseResetFee", + "type": "uint64", + "byteOffset": 16 + }, + { + "name": "holdingFee", + "type": "uint64", + "byteOffset": 24 + }, + { + "name": "depositFee", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "burnFee", + "type": "uint64", + "byteOffset": 40 + } + ], + "byteSize": 48, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getFeeVotes_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "getFeeVotes_output", + "fields": [ + { + "name": "status", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "numberOfFeeVotes", + "type": "uint64", + "byteOffset": 8 + }, + { + "name": "feeVotes", + "type": "Array", + "byteOffset": 16 + } + ], + "byteSize": 3088, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getFeeVotesOwner_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "getFeeVotesOwner_output", + "fields": [ + { + "name": "status", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "numberOfFeeVotes", + "type": "uint64", + "byteOffset": 8 + }, + { + "name": "feeVotesOwner", + "type": "Array", + "byteOffset": 16 + } + ], + "byteSize": 2064, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getFeeVotesScore_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "getFeeVotesScore_output", + "fields": [ + { + "name": "status", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "numberOfFeeVotes", + "type": "uint64", + "byteOffset": 8 + }, + { + "name": "feeVotesScore", + "type": "Array", + "byteOffset": 16 + } + ], + "byteSize": 528, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getManagedAssetBalance_input", + "fields": [ + { + "name": "asset", + "type": "Asset", + "byteOffset": 0 + }, + { + "name": "owner", + "type": "id", + "byteOffset": 40 + } + ], + "byteSize": 72, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getManagedAssetBalance_output", + "fields": [ + { + "name": "balance", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getReleaseStatus_input", + "fields": [ + { + "name": "vaultId", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getReleaseStatus_output", + "fields": [ + { + "name": "status", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "amounts", + "type": "Array", + "byteOffset": 8 + }, + { + "name": "destinations", + "type": "Array", + "byteOffset": 136 + } + ], + "byteSize": 648, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getRevenueInfo_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "getRevenueInfo_output", + "fields": [ + { + "name": "numberOfActiveVaults", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "totalRevenue", + "type": "uint64", + "byteOffset": 8 + }, + { + "name": "totalDistributedToShareholders", + "type": "uint64", + "byteOffset": 16 + }, + { + "name": "burnedAmount", + "type": "uint64", + "byteOffset": 24 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getUniqueFeeVotes_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "getUniqueFeeVotes_output", + "fields": [ + { + "name": "status", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "numberOfUniqueFeeVotes", + "type": "uint64", + "byteOffset": 8 + }, + { + "name": "uniqueFeeVotes", + "type": "Array", + "byteOffset": 16 + } + ], + "byteSize": 3088, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getUniqueFeeVotesRanking_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "getUniqueFeeVotesRanking_output", + "fields": [ + { + "name": "status", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "numberOfUniqueFeeVotes", + "type": "uint64", + "byteOffset": 8 + }, + { + "name": "uniqueFeeVotesRanking", + "type": "Array", + "byteOffset": 16 + } + ], + "byteSize": 528, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getVaultAssetBalances_input", + "fields": [ + { + "name": "vaultId", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getVaultAssetBalances_output", + "fields": [ + { + "name": "status", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "numberOfAssetTypes", + "type": "uint64", + "byteOffset": 8 + }, + { + "name": "assetBalances", + "type": "Array", + "byteOffset": 16 + } + ], + "byteSize": 400, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getVaultName_input", + "fields": [ + { + "name": "vaultId", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getVaultName_output", + "fields": [ + { + "name": "status", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "vaultName", + "type": "id", + "byteOffset": 8 + } + ], + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getVaultOwners_input", + "fields": [ + { + "name": "vaultId", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getVaultOwners_output", + "fields": [ + { + "name": "status", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "numberOfOwners", + "type": "uint64", + "byteOffset": 8 + }, + { + "name": "owners", + "type": "Array", + "byteOffset": 16 + }, + { + "name": "requiredApprovals", + "type": "uint64", + "byteOffset": 528 + } + ], + "byteSize": 536, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getVaults_input", + "fields": [ + { + "name": "publicKey", + "type": "id", + "byteOffset": 0 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getVaults_output", + "fields": [ + { + "name": "numberOfVaults", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "vaultIds", + "type": "Array", + "byteOffset": 8 + }, + { + "name": "vaultNames", + "type": "Array", + "byteOffset": 72 + } + ], + "byteSize": 328, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "isShareHolder_input", + "fields": [ + { + "name": "candidate", + "type": "id", + "byteOffset": 0 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "isShareHolder_output", + "fields": [ + { + "name": "result", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "MsVaultFeeVote", + "fields": [ + { + "name": "registeringFee", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "releaseFee", + "type": "uint64", + "byteOffset": 8 + }, + { + "name": "releaseResetFee", + "type": "uint64", + "byteOffset": 16 + }, + { + "name": "holdingFee", + "type": "uint64", + "byteOffset": 24 + }, + { + "name": "depositFee", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "burnFee", + "type": "uint64", + "byteOffset": 40 + } + ], + "byteSize": 48, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "registerVault_input", + "fields": [ + { + "name": "vaultName", + "type": "id", + "byteOffset": 0 + }, + { + "name": "owners", + "type": "Array", + "byteOffset": 32 + }, + { + "name": "requiredApprovals", + "type": "uint64", + "byteOffset": 544 + } + ], + "byteSize": 552, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "registerVault_output", + "fields": [ + { + "name": "status", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "releaseAssetTo_input", + "fields": [ + { + "name": "vaultId", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "asset", + "type": "Asset", + "byteOffset": 8 + }, + { + "name": "amount", + "type": "uint64", + "byteOffset": 48 + }, + { + "name": "destination", + "type": "id", + "byteOffset": 56 + } + ], + "byteSize": 88, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "releaseAssetTo_output", + "fields": [ + { + "name": "status", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "releaseTo_input", + "fields": [ + { + "name": "vaultId", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "amount", + "type": "uint64", + "byteOffset": 8 + }, + { + "name": "destination", + "type": "id", + "byteOffset": 16 + } + ], + "byteSize": 48, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "releaseTo_output", + "fields": [ + { + "name": "status", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "resetAssetRelease_input", + "fields": [ + { + "name": "vaultId", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "resetAssetRelease_output", + "fields": [ + { + "name": "status", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "resetRelease_input", + "fields": [ + { + "name": "vaultId", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "resetRelease_output", + "fields": [ + { + "name": "status", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "revokeAssetManagementRights_input", + "fields": [ + { + "name": "asset", + "type": "Asset", + "byteOffset": 0 + }, + { + "name": "numberOfShares", + "type": "sint64", + "byteOffset": 40 + } + ], + "byteSize": 48, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "revokeAssetManagementRights_output", + "fields": [ + { + "name": "transferredNumberOfShares", + "type": "sint64", + "byteOffset": 0 + }, + { + "name": "status", + "type": "uint64", + "byteOffset": 8 + } + ], + "byteSize": 16, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "voteFeeChange_input", + "fields": [ + { + "name": "newRegisteringFee", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "newReleaseFee", + "type": "uint64", + "byteOffset": 8 + }, + { + "name": "newReleaseResetFee", + "type": "uint64", + "byteOffset": 16 + }, + { + "name": "newHoldingFee", + "type": "uint64", + "byteOffset": 24 + }, + { + "name": "newDepositFee", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "burnFee", + "type": "uint64", + "byteOffset": 40 + } + ], + "byteSize": 48, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "voteFeeChange_output", + "fields": [ + { + "name": "status", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + } + ], + "label": "Multi-Sign Vault", + "githubUrl": "https://github.com/qubic/core/blob/main/src/contracts/MsVault.h", + "proposalUrl": "https://github.com/qubic/proposal/blob/e305392f2084dc72b4958c1a62d5af9cfa55785f/SmartContracts/2025-02-09-MSVAULT.md" + }, + { + "name": "QBAY", + "contractIndex": 12, + "address": "MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWLWD", + "filename": "Qbay.h", + "entries": [ + { + "kind": "function", + "name": "getNumberOfNFTForUser", + "inputType": 1, + "inputTypeName": "getNumberOfNFTForUser_input", + "outputTypeName": "getNumberOfNFTForUser_output", + "inputSize": 32, + "outputSize": 4 + }, + { + "kind": "function", + "name": "getInfoOfNFTUserPossessed", + "inputType": 2, + "inputTypeName": "getInfoOfNFTUserPossessed_input", + "outputTypeName": "getInfoOfNFTUserPossessed_output", + "inputSize": 40, + "outputSize": 248 + }, + { + "kind": "function", + "name": "getInfoOfMarketplace", + "inputType": 3, + "inputTypeName": "getInfoOfMarketplace_input", + "outputTypeName": "getInfoOfMarketplace_output", + "inputSize": 1, + "outputSize": 56 + }, + { + "kind": "function", + "name": "getInfoOfCollectionByCreator", + "inputType": 4, + "inputTypeName": "getInfoOfCollectionByCreator_input", + "outputTypeName": "getInfoOfCollectionByCreator_output", + "inputSize": 40, + "outputSize": 96 + }, + { + "kind": "function", + "name": "getInfoOfCollectionById", + "inputType": 5, + "inputTypeName": "getInfoOfCollectionById_input", + "outputTypeName": "getInfoOfCollectionById_output", + "inputSize": 4, + "outputSize": 120 + }, + { + "kind": "function", + "name": "getIncomingAuctions", + "inputType": 6, + "inputTypeName": "getIncomingAuctions_input", + "outputTypeName": "getIncomingAuctions_output", + "inputSize": 8, + "outputSize": 4096 + }, + { + "kind": "function", + "name": "getInfoOfNFTById", + "inputType": 7, + "inputTypeName": "getInfoOfNFTById_input", + "outputTypeName": "getInfoOfNFTById_output", + "inputSize": 4, + "outputSize": 248 + }, + { + "kind": "function", + "name": "getUserCreatedCollection", + "inputType": 8, + "inputTypeName": "getUserCreatedCollection_input", + "outputTypeName": "getUserCreatedCollection_output", + "inputSize": 40, + "outputSize": 4096 + }, + { + "kind": "function", + "name": "getUserCreatedNFT", + "inputType": 9, + "inputTypeName": "getUserCreatedNFT_input", + "outputTypeName": "getUserCreatedNFT_output", + "inputSize": 40, + "outputSize": 4096 + }, + { + "kind": "procedure", + "name": "settingCFBAndQubicPrice", + "inputType": 1, + "inputTypeName": "settingCFBAndQubicPrice_input", + "outputTypeName": "settingCFBAndQubicPrice_output", + "inputSize": 16, + "outputSize": 4, + "displayName": "Setting CFB and Qubic Price" + }, + { + "kind": "procedure", + "name": "createCollection", + "inputType": 2, + "inputTypeName": "createCollection_input", + "outputTypeName": "createCollection_output", + "inputSize": 88, + "outputSize": 4, + "displayName": "Create Collection" + }, + { + "kind": "procedure", + "name": "mint", + "inputType": 3, + "inputTypeName": "mint_input", + "outputTypeName": "mint_output", + "inputSize": 76, + "outputSize": 4, + "displayName": "Mint" + }, + { + "kind": "procedure", + "name": "mintOfDrop", + "inputType": 4, + "inputTypeName": "mintOfDrop_input", + "outputTypeName": "mintOfDrop_output", + "inputSize": 68, + "outputSize": 4, + "displayName": "Mint of Drop" + }, + { + "kind": "procedure", + "name": "transfer", + "inputType": 5, + "inputTypeName": "transfer_input", + "outputTypeName": "transfer_output", + "inputSize": 40, + "outputSize": 4, + "displayName": "Transfer" + }, + { + "kind": "procedure", + "name": "listInMarket", + "inputType": 6, + "inputTypeName": "listInMarket_input", + "outputTypeName": "listInMarket_output", + "inputSize": 16, + "outputSize": 4, + "displayName": "List in Market" + }, + { + "kind": "procedure", + "name": "buy", + "inputType": 7, + "inputTypeName": "buy_input", + "outputTypeName": "buy_output", + "inputSize": 8, + "outputSize": 4, + "displayName": "Buy" + }, + { + "kind": "procedure", + "name": "cancelSale", + "inputType": 8, + "inputTypeName": "cancelSale_input", + "outputTypeName": "cancelSale_output", + "inputSize": 4, + "outputSize": 4, + "displayName": "Cancel Sale" + }, + { + "kind": "procedure", + "name": "listInExchange", + "inputType": 9, + "inputTypeName": "listInExchange_input", + "outputTypeName": "listInExchange_output", + "inputSize": 8, + "outputSize": 4, + "displayName": "List in Exchange" + }, + { + "kind": "procedure", + "name": "cancelExchange", + "inputType": 10, + "inputTypeName": "cancelExchange_input", + "outputTypeName": "cancelExchange_output", + "inputSize": 8, + "outputSize": 4, + "displayName": "Cancel Exchange" + }, + { + "kind": "procedure", + "name": "makeOffer", + "inputType": 11, + "inputTypeName": "makeOffer_input", + "outputTypeName": "makeOffer_output", + "inputSize": 16, + "outputSize": 4, + "displayName": "Make Offer" + }, + { + "kind": "procedure", + "name": "acceptOffer", + "inputType": 12, + "inputTypeName": "acceptOffer_input", + "outputTypeName": "acceptOffer_output", + "inputSize": 4, + "outputSize": 4, + "displayName": "Accept Offer" + }, + { + "kind": "procedure", + "name": "cancelOffer", + "inputType": 13, + "inputTypeName": "cancelOffer_input", + "outputTypeName": "cancelOffer_output", + "inputSize": 4, + "outputSize": 4, + "displayName": "Cancel Offer" + }, + { + "kind": "procedure", + "name": "createTraditionalAuction", + "inputType": 14, + "inputTypeName": "createTraditionalAuction_input", + "outputTypeName": "createTraditionalAuction_output", + "inputSize": 48, + "outputSize": 4, + "displayName": "Create Traditional Auction" + }, + { + "kind": "procedure", + "name": "bidOnTraditionalAuction", + "inputType": 15, + "inputTypeName": "bidOnTraditionalAuction_input", + "outputTypeName": "bidOnTraditionalAuction_output", + "inputSize": 16, + "outputSize": 4, + "displayName": "Bid on Traditional Auction" + }, + { + "kind": "procedure", + "name": "TransferShareManagementRights", + "inputType": 16, + "inputTypeName": "TransferShareManagementRights_input", + "outputTypeName": "TransferShareManagementRights_output", + "inputSize": 56, + "outputSize": 16, + "displayName": "Transfer Share Management Rights" + }, + { + "kind": "procedure", + "name": "changeStatusOfMarketPlace", + "inputType": 17, + "inputTypeName": "changeStatusOfMarketPlace_input", + "outputTypeName": "changeStatusOfMarketPlace_output", + "inputSize": 1, + "outputSize": 4, + "displayName": "Change Status of Market Place" + } + ], + "ioTypes": [ + { + "kind": "struct", + "name": "acceptOffer_input", + "fields": [ + { + "name": "NFTid", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "acceptOffer_output", + "fields": [ + { + "name": "returnCode", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "Asset", + "fields": [ + { + "name": "issuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "assetName", + "type": "uint64", + "byteOffset": 32 + } + ], + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "bidOnTraditionalAuction_input", + "fields": [ + { + "name": "price", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "NFTId", + "type": "uint32", + "byteOffset": 8 + }, + { + "name": "paymentMethod", + "type": "bit", + "byteOffset": 12 + } + ], + "byteSize": 16, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "bidOnTraditionalAuction_output", + "fields": [ + { + "name": "returnCode", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "buy_input", + "fields": [ + { + "name": "NFTid", + "type": "uint32", + "byteOffset": 0 + }, + { + "name": "methodOfPayment", + "type": "bit", + "byteOffset": 4 + } + ], + "byteSize": 8, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "buy_output", + "fields": [ + { + "name": "returnCode", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "cancelExchange_input", + "fields": [ + { + "name": "possessedNFT", + "type": "uint32", + "byteOffset": 0 + }, + { + "name": "anotherNFT", + "type": "uint32", + "byteOffset": 4 + } + ], + "byteSize": 8, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "cancelExchange_output", + "fields": [ + { + "name": "returnCode", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "cancelOffer_input", + "fields": [ + { + "name": "NFTid", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "cancelOffer_output", + "fields": [ + { + "name": "returnCode", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "cancelSale_input", + "fields": [ + { + "name": "NFTid", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "cancelSale_output", + "fields": [ + { + "name": "returnCode", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "changeStatusOfMarketPlace_input", + "fields": [ + { + "name": "status", + "type": "bit", + "byteOffset": 0 + } + ], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "changeStatusOfMarketPlace_output", + "fields": [ + { + "name": "returnCode", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "createCollection_input", + "fields": [ + { + "name": "priceForDropMint", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "volume", + "type": "uint32", + "byteOffset": 8 + }, + { + "name": "royalty", + "type": "uint32", + "byteOffset": 12 + }, + { + "name": "maxSizePerOneId", + "type": "uint32", + "byteOffset": 16 + }, + { + "name": "URI", + "type": "Array", + "byteOffset": 20 + }, + { + "name": "typeOfCollection", + "type": "bit", + "byteOffset": 84 + } + ], + "byteSize": 88, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "createCollection_output", + "fields": [ + { + "name": "returnCode", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "createTraditionalAuction_input", + "fields": [ + { + "name": "minPrice", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "NFTId", + "type": "uint32", + "byteOffset": 8 + }, + { + "name": "startYear", + "type": "uint32", + "byteOffset": 12 + }, + { + "name": "startMonth", + "type": "uint32", + "byteOffset": 16 + }, + { + "name": "startDay", + "type": "uint32", + "byteOffset": 20 + }, + { + "name": "startHour", + "type": "uint32", + "byteOffset": 24 + }, + { + "name": "endYear", + "type": "uint32", + "byteOffset": 28 + }, + { + "name": "endMonth", + "type": "uint32", + "byteOffset": 32 + }, + { + "name": "endDay", + "type": "uint32", + "byteOffset": 36 + }, + { + "name": "endHour", + "type": "uint32", + "byteOffset": 40 + }, + { + "name": "paymentMethodOfAuction", + "type": "bit", + "byteOffset": 44 + } + ], + "byteSize": 48, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "createTraditionalAuction_output", + "fields": [ + { + "name": "returnCode", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "getIncomingAuctions_input", + "fields": [ + { + "name": "offset", + "type": "uint32", + "byteOffset": 0 + }, + { + "name": "count", + "type": "uint32", + "byteOffset": 4 + } + ], + "byteSize": 8, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "getIncomingAuctions_output", + "fields": [ + { + "name": "NFTId", + "type": "Array", + "byteOffset": 0 + } + ], + "byteSize": 4096, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "getInfoOfCollectionByCreator_input", + "fields": [ + { + "name": "creator", + "type": "id", + "byteOffset": 0 + }, + { + "name": "orderOfCollection", + "type": "uint32", + "byteOffset": 32 + } + ], + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getInfoOfCollectionByCreator_output", + "fields": [ + { + "name": "priceForDropMint", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "idOfCollection", + "type": "uint32", + "byteOffset": 8 + }, + { + "name": "royalty", + "type": "uint32", + "byteOffset": 12 + }, + { + "name": "currentSize", + "type": "sint32", + "byteOffset": 16 + }, + { + "name": "maxSizeHoldingPerOneId", + "type": "uint32", + "byteOffset": 20 + }, + { + "name": "URI", + "type": "Array", + "byteOffset": 24 + }, + { + "name": "typeOfCollection", + "type": "bit", + "byteOffset": 88 + } + ], + "byteSize": 96, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getInfoOfCollectionById_input", + "fields": [ + { + "name": "idOfCollection", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "getInfoOfCollectionById_output", + "fields": [ + { + "name": "creator", + "type": "id", + "byteOffset": 0 + }, + { + "name": "priceForDropMint", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "royalty", + "type": "uint32", + "byteOffset": 40 + }, + { + "name": "currentSize", + "type": "sint32", + "byteOffset": 44 + }, + { + "name": "maxSizeHoldingPerOneId", + "type": "uint32", + "byteOffset": 48 + }, + { + "name": "URI", + "type": "Array", + "byteOffset": 52 + }, + { + "name": "typeOfCollection", + "type": "bit", + "byteOffset": 116 + } + ], + "byteSize": 120, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getInfoOfMarketplace_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "getInfoOfMarketplace_output", + "fields": [ + { + "name": "priceOfCFB", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "priceOfQubic", + "type": "uint64", + "byteOffset": 8 + }, + { + "name": "numberOfNFTIncoming", + "type": "uint64", + "byteOffset": 16 + }, + { + "name": "earnedQubic", + "type": "uint64", + "byteOffset": 24 + }, + { + "name": "earnedCFB", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "numberOfCollection", + "type": "uint32", + "byteOffset": 40 + }, + { + "name": "numberOfNFT", + "type": "uint32", + "byteOffset": 44 + }, + { + "name": "statusOfMarketPlace", + "type": "bit", + "byteOffset": 48 + } + ], + "byteSize": 56, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getInfoOfNFTById_input", + "fields": [ + { + "name": "NFTId", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "getInfoOfNFTById_output", + "fields": [ + { + "name": "creator", + "type": "id", + "byteOffset": 0 + }, + { + "name": "possessor", + "type": "id", + "byteOffset": 32 + }, + { + "name": "askUser", + "type": "id", + "byteOffset": 64 + }, + { + "name": "creatorOfAuction", + "type": "id", + "byteOffset": 96 + }, + { + "name": "salePrice", + "type": "sint64", + "byteOffset": 128 + }, + { + "name": "askMaxPrice", + "type": "sint64", + "byteOffset": 136 + }, + { + "name": "currentPriceOfAuction", + "type": "uint64", + "byteOffset": 144 + }, + { + "name": "royalty", + "type": "uint32", + "byteOffset": 152 + }, + { + "name": "NFTidForExchange", + "type": "uint32", + "byteOffset": 156 + }, + { + "name": "URI", + "type": "Array", + "byteOffset": 160 + }, + { + "name": "statusOfAuction", + "type": "uint8", + "byteOffset": 224 + }, + { + "name": "yearAuctionStarted", + "type": "uint8", + "byteOffset": 225 + }, + { + "name": "monthAuctionStarted", + "type": "uint8", + "byteOffset": 226 + }, + { + "name": "dayAuctionStarted", + "type": "uint8", + "byteOffset": 227 + }, + { + "name": "hourAuctionStarted", + "type": "uint8", + "byteOffset": 228 + }, + { + "name": "minuteAuctionStarted", + "type": "uint8", + "byteOffset": 229 + }, + { + "name": "secondAuctionStarted", + "type": "uint8", + "byteOffset": 230 + }, + { + "name": "yearAuctionEnded", + "type": "uint8", + "byteOffset": 231 + }, + { + "name": "monthAuctionEnded", + "type": "uint8", + "byteOffset": 232 + }, + { + "name": "dayAuctionEnded", + "type": "uint8", + "byteOffset": 233 + }, + { + "name": "hourAuctionEnded", + "type": "uint8", + "byteOffset": 234 + }, + { + "name": "minuteAuctionEnded", + "type": "uint8", + "byteOffset": 235 + }, + { + "name": "secondAuctionEnded", + "type": "uint8", + "byteOffset": 236 + }, + { + "name": "statusOfSale", + "type": "bit", + "byteOffset": 237 + }, + { + "name": "statusOfAsk", + "type": "bit", + "byteOffset": 238 + }, + { + "name": "paymentMethodOfAsk", + "type": "bit", + "byteOffset": 239 + }, + { + "name": "statusOfExchange", + "type": "bit", + "byteOffset": 240 + }, + { + "name": "paymentMethodOfAuction", + "type": "bit", + "byteOffset": 241 + } + ], + "byteSize": 248, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getInfoOfNFTUserPossessed_input", + "fields": [ + { + "name": "user", + "type": "id", + "byteOffset": 0 + }, + { + "name": "NFTNumber", + "type": "uint32", + "byteOffset": 32 + } + ], + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getInfoOfNFTUserPossessed_output", + "fields": [ + { + "name": "creator", + "type": "id", + "byteOffset": 0 + }, + { + "name": "possessor", + "type": "id", + "byteOffset": 32 + }, + { + "name": "askUser", + "type": "id", + "byteOffset": 64 + }, + { + "name": "creatorOfAuction", + "type": "id", + "byteOffset": 96 + }, + { + "name": "salePrice", + "type": "sint64", + "byteOffset": 128 + }, + { + "name": "askMaxPrice", + "type": "sint64", + "byteOffset": 136 + }, + { + "name": "currentPriceOfAuction", + "type": "uint64", + "byteOffset": 144 + }, + { + "name": "royalty", + "type": "uint32", + "byteOffset": 152 + }, + { + "name": "NFTidForExchange", + "type": "uint32", + "byteOffset": 156 + }, + { + "name": "URI", + "type": "Array", + "byteOffset": 160 + }, + { + "name": "statusOfAuction", + "type": "uint8", + "byteOffset": 224 + }, + { + "name": "yearAuctionStarted", + "type": "uint8", + "byteOffset": 225 + }, + { + "name": "monthAuctionStarted", + "type": "uint8", + "byteOffset": 226 + }, + { + "name": "dayAuctionStarted", + "type": "uint8", + "byteOffset": 227 + }, + { + "name": "hourAuctionStarted", + "type": "uint8", + "byteOffset": 228 + }, + { + "name": "minuteAuctionStarted", + "type": "uint8", + "byteOffset": 229 + }, + { + "name": "secondAuctionStarted", + "type": "uint8", + "byteOffset": 230 + }, + { + "name": "yearAuctionEnded", + "type": "uint8", + "byteOffset": 231 + }, + { + "name": "monthAuctionEnded", + "type": "uint8", + "byteOffset": 232 + }, + { + "name": "dayAuctionEnded", + "type": "uint8", + "byteOffset": 233 + }, + { + "name": "hourAuctionEnded", + "type": "uint8", + "byteOffset": 234 + }, + { + "name": "minuteAuctionEnded", + "type": "uint8", + "byteOffset": 235 + }, + { + "name": "secondAuctionEnded", + "type": "uint8", + "byteOffset": 236 + }, + { + "name": "statusOfSale", + "type": "bit", + "byteOffset": 237 + }, + { + "name": "statusOfAsk", + "type": "bit", + "byteOffset": 238 + }, + { + "name": "paymentMethodOfAsk", + "type": "bit", + "byteOffset": 239 + }, + { + "name": "statusOfExchange", + "type": "bit", + "byteOffset": 240 + }, + { + "name": "paymentMethodOfAuction", + "type": "bit", + "byteOffset": 241 + } + ], + "byteSize": 248, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getNumberOfNFTForUser_input", + "fields": [ + { + "name": "user", + "type": "id", + "byteOffset": 0 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getNumberOfNFTForUser_output", + "fields": [ + { + "name": "numberOfNFT", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "getUserCreatedCollection_input", + "fields": [ + { + "name": "user", + "type": "id", + "byteOffset": 0 + }, + { + "name": "offset", + "type": "uint32", + "byteOffset": 32 + }, + { + "name": "count", + "type": "uint32", + "byteOffset": 36 + } + ], + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getUserCreatedCollection_output", + "fields": [ + { + "name": "collectionId", + "type": "Array", + "byteOffset": 0 + } + ], + "byteSize": 4096, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "getUserCreatedNFT_input", + "fields": [ + { + "name": "user", + "type": "id", + "byteOffset": 0 + }, + { + "name": "offset", + "type": "uint32", + "byteOffset": 32 + }, + { + "name": "count", + "type": "uint32", + "byteOffset": 36 + } + ], + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getUserCreatedNFT_output", + "fields": [ + { + "name": "NFTId", + "type": "Array", + "byteOffset": 0 + } + ], + "byteSize": 4096, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "listInExchange_input", + "fields": [ + { + "name": "possessedNFT", + "type": "uint32", + "byteOffset": 0 + }, + { + "name": "anotherNFT", + "type": "uint32", + "byteOffset": 4 + } + ], + "byteSize": 8, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "listInExchange_output", + "fields": [ + { + "name": "returnCode", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "listInMarket_input", + "fields": [ + { + "name": "price", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "NFTid", + "type": "uint32", + "byteOffset": 8 + } + ], + "byteSize": 16, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "listInMarket_output", + "fields": [ + { + "name": "returnCode", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "makeOffer_input", + "fields": [ + { + "name": "askPrice", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "NFTid", + "type": "uint32", + "byteOffset": 8 + }, + { + "name": "paymentMethod", + "type": "bit", + "byteOffset": 12 + } + ], + "byteSize": 16, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "makeOffer_output", + "fields": [ + { + "name": "returnCode", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "mint_input", + "fields": [ + { + "name": "royalty", + "type": "uint32", + "byteOffset": 0 + }, + { + "name": "collectionId", + "type": "uint32", + "byteOffset": 4 + }, + { + "name": "URI", + "type": "Array", + "byteOffset": 8 + }, + { + "name": "typeOfMint", + "type": "bit", + "byteOffset": 72 + } + ], + "byteSize": 76, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "mint_output", + "fields": [ + { + "name": "returnCode", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "mintOfDrop_input", + "fields": [ + { + "name": "collectionId", + "type": "uint32", + "byteOffset": 0 + }, + { + "name": "URI", + "type": "Array", + "byteOffset": 4 + } + ], + "byteSize": 68, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "mintOfDrop_output", + "fields": [ + { + "name": "returnCode", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "settingCFBAndQubicPrice_input", + "fields": [ + { + "name": "CFBPrice", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "QubicPrice", + "type": "uint64", + "byteOffset": 8 + } + ], + "byteSize": 16, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "settingCFBAndQubicPrice_output", + "fields": [ + { + "name": "returnCode", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "transfer_input", + "fields": [ + { + "name": "receiver", + "type": "id", + "byteOffset": 0 + }, + { + "name": "NFTid", + "type": "uint32", + "byteOffset": 32 + } + ], + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "transfer_output", + "fields": [ + { + "name": "returnCode", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "TransferShareManagementRights_input", + "fields": [ + { + "name": "asset", + "type": "Asset", + "byteOffset": 0 + }, + { + "name": "numberOfShares", + "type": "sint64", + "byteOffset": 40 + }, + { + "name": "newManagingContractIndex", + "type": "uint32", + "byteOffset": 48 + } + ], + "byteSize": 56, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "TransferShareManagementRights_output", + "fields": [ + { + "name": "transferredNumberOfShares", + "type": "sint64", + "byteOffset": 0 + }, + { + "name": "returnCode", + "type": "uint32", + "byteOffset": 8 + } + ], + "byteSize": 16, + "byteAlign": 8 + } + ], + "label": "QBay", + "githubUrl": "https://github.com/qubic/core/blob/main/src/contracts/Qbay.h", + "proposalUrl": "https://github.com/qubic/proposal/blob/e305392f2084dc72b4958c1a62d5af9cfa55785f/SmartContracts/2025-03-11-Qbay.md" + }, + { + "name": "QSWAP", + "contractIndex": 13, + "address": "NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAML", + "filename": "Qswap.h", + "entries": [ + { + "kind": "function", + "name": "Fees", + "inputType": 1, + "inputTypeName": "Fees_input", + "outputTypeName": "Fees_output", + "inputSize": 1, + "outputSize": 32 + }, + { + "kind": "function", + "name": "GetPoolBasicState", + "inputType": 2, + "inputTypeName": "GetPoolBasicState_input", + "outputTypeName": "GetPoolBasicState_output", + "inputSize": 40, + "outputSize": 32 + }, + { + "kind": "function", + "name": "GetLiquidityOf", + "inputType": 3, + "inputTypeName": "GetLiquidityOf_input", + "outputTypeName": "GetLiquidityOf_output", + "inputSize": 72, + "outputSize": 8 + }, + { + "kind": "function", + "name": "QuoteExactQuInput", + "inputType": 4, + "inputTypeName": "QuoteExactQuInput_input", + "outputTypeName": "QuoteExactQuInput_output", + "inputSize": 48, + "outputSize": 8 + }, + { + "kind": "function", + "name": "QuoteExactQuOutput", + "inputType": 5, + "inputTypeName": "QuoteExactQuOutput_input", + "outputTypeName": "QuoteExactQuOutput_output", + "inputSize": 48, + "outputSize": 8 + }, + { + "kind": "function", + "name": "QuoteExactAssetInput", + "inputType": 6, + "inputTypeName": "QuoteExactAssetInput_input", + "outputTypeName": "QuoteExactAssetInput_output", + "inputSize": 48, + "outputSize": 8 + }, + { + "kind": "function", + "name": "QuoteExactAssetOutput", + "inputType": 7, + "inputTypeName": "QuoteExactAssetOutput_input", + "outputTypeName": "QuoteExactAssetOutput_output", + "inputSize": 48, + "outputSize": 8 + }, + { + "kind": "function", + "name": "InvestRewardsInfo", + "inputType": 8, + "inputTypeName": "InvestRewardsInfo_input", + "outputTypeName": "InvestRewardsInfo_output", + "inputSize": 1, + "outputSize": 40 + }, + { + "kind": "procedure", + "name": "IssueAsset", + "inputType": 1, + "inputTypeName": "IssueAsset_input", + "outputTypeName": "IssueAsset_output", + "inputSize": 32, + "outputSize": 8, + "displayName": "Issue Asset" + }, + { + "kind": "procedure", + "name": "TransferShareOwnershipAndPossession", + "inputType": 2, + "inputTypeName": "TransferShareOwnershipAndPossession_input", + "outputTypeName": "TransferShareOwnershipAndPossession_output", + "inputSize": 80, + "outputSize": 8, + "displayName": "Transfer Share Ownership and Possession" + }, + { + "kind": "procedure", + "name": "CreatePool", + "inputType": 3, + "inputTypeName": "CreatePool_input", + "outputTypeName": "CreatePool_output", + "inputSize": 40, + "outputSize": 1, + "displayName": "Create Pool" + }, + { + "kind": "procedure", + "name": "AddLiquidity", + "inputType": 4, + "inputTypeName": "AddLiquidity_input", + "outputTypeName": "AddLiquidity_output", + "inputSize": 64, + "outputSize": 24, + "displayName": "Add Liquidity" + }, + { + "kind": "procedure", + "name": "RemoveLiquidity", + "inputType": 5, + "inputTypeName": "RemoveLiquidity_input", + "outputTypeName": "RemoveLiquidity_output", + "inputSize": 64, + "outputSize": 16, + "displayName": "Remove Liquidity" + }, + { + "kind": "procedure", + "name": "SwapExactQuForAsset", + "inputType": 6, + "inputTypeName": "SwapExactQuForAsset_input", + "outputTypeName": "SwapExactQuForAsset_output", + "inputSize": 48, + "outputSize": 8, + "displayName": "Swap Exact Qu for Asset" + }, + { + "kind": "procedure", + "name": "SwapQuForExactAsset", + "inputType": 7, + "inputTypeName": "SwapQuForExactAsset_input", + "outputTypeName": "SwapQuForExactAsset_output", + "inputSize": 48, + "outputSize": 8, + "displayName": "Swap Qu for Exact Asset" + }, + { + "kind": "procedure", + "name": "SwapExactAssetForQu", + "inputType": 8, + "inputTypeName": "SwapExactAssetForQu_input", + "outputTypeName": "SwapExactAssetForQu_output", + "inputSize": 56, + "outputSize": 8, + "displayName": "Swap Exact Asset for Qu" + }, + { + "kind": "procedure", + "name": "SwapAssetForExactQu", + "inputType": 9, + "inputTypeName": "SwapAssetForExactQu_input", + "outputTypeName": "SwapAssetForExactQu_output", + "inputSize": 56, + "outputSize": 8, + "displayName": "Swap Asset for Exact Qu" + }, + { + "kind": "procedure", + "name": "SetInvestRewardsInfo", + "inputType": 10, + "inputTypeName": "SetInvestRewardsInfo_input", + "outputTypeName": "SetInvestRewardsInfo_output", + "inputSize": 32, + "outputSize": 1, + "displayName": "Set Team Info" + }, + { + "kind": "procedure", + "name": "TransferShareManagementRights", + "inputType": 11, + "inputTypeName": "TransferShareManagementRights_input", + "outputTypeName": "TransferShareManagementRights_output", + "inputSize": 56, + "outputSize": 8, + "displayName": "Transfer Share Management Rights" + } + ], + "ioTypes": [ + { + "kind": "struct", + "name": "AddLiquidity_input", + "fields": [ + { + "name": "assetIssuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "assetName", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "assetAmountDesired", + "type": "sint64", + "byteOffset": 40 + }, + { + "name": "quAmountMin", + "type": "sint64", + "byteOffset": 48 + }, + { + "name": "assetAmountMin", + "type": "sint64", + "byteOffset": 56 + } + ], + "byteSize": 64, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "AddLiquidity_output", + "fields": [ + { + "name": "userIncreaseLiquidity", + "type": "sint64", + "byteOffset": 0 + }, + { + "name": "quAmount", + "type": "sint64", + "byteOffset": 8 + }, + { + "name": "assetAmount", + "type": "sint64", + "byteOffset": 16 + } + ], + "byteSize": 24, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "Asset", + "fields": [ + { + "name": "issuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "assetName", + "type": "uint64", + "byteOffset": 32 + } + ], + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "CreatePool_input", + "fields": [ + { + "name": "assetIssuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "assetName", + "type": "uint64", + "byteOffset": 32 + } + ], + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "CreatePool_output", + "fields": [ + { + "name": "success", + "type": "bool", + "byteOffset": 0 + } + ], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "Fees_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "Fees_output", + "fields": [ + { + "name": "assetIssuanceFee", + "type": "uint32", + "byteOffset": 0 + }, + { + "name": "poolCreationFee", + "type": "uint32", + "byteOffset": 4 + }, + { + "name": "transferFee", + "type": "uint32", + "byteOffset": 8 + }, + { + "name": "swapFee", + "type": "uint32", + "byteOffset": 12 + }, + { + "name": "shareholderFee", + "type": "uint32", + "byteOffset": 16 + }, + { + "name": "investRewardsFee", + "type": "uint32", + "byteOffset": 20 + }, + { + "name": "qxFee", + "type": "uint32", + "byteOffset": 24 + }, + { + "name": "burnFee", + "type": "uint32", + "byteOffset": 28 + } + ], + "byteSize": 32, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "GetLiquidityOf_input", + "fields": [ + { + "name": "assetIssuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "assetName", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "account", + "type": "id", + "byteOffset": 40 + } + ], + "byteSize": 72, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetLiquidityOf_output", + "fields": [ + { + "name": "liquidity", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetPoolBasicState_input", + "fields": [ + { + "name": "assetIssuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "assetName", + "type": "uint64", + "byteOffset": 32 + } + ], + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetPoolBasicState_output", + "fields": [ + { + "name": "poolExists", + "type": "sint64", + "byteOffset": 0 + }, + { + "name": "reservedQuAmount", + "type": "sint64", + "byteOffset": 8 + }, + { + "name": "reservedAssetAmount", + "type": "sint64", + "byteOffset": 16 + }, + { + "name": "totalLiquidity", + "type": "sint64", + "byteOffset": 24 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "InvestRewardsInfo_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "InvestRewardsInfo_output", + "fields": [ + { + "name": "investRewardsFee", + "type": "uint32", + "byteOffset": 0 + }, + { + "name": "investRewardsId", + "type": "id", + "byteOffset": 8 + } + ], + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "IssueAsset_input", + "fields": [ + { + "name": "assetName", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "numberOfShares", + "type": "sint64", + "byteOffset": 8 + }, + { + "name": "unitOfMeasurement", + "type": "uint64", + "byteOffset": 16 + }, + { + "name": "numberOfDecimalPlaces", + "type": "sint8", + "byteOffset": 24 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "IssueAsset_output", + "fields": [ + { + "name": "issuedNumberOfShares", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "QuoteExactAssetInput_input", + "fields": [ + { + "name": "assetIssuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "assetName", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "assetAmountIn", + "type": "sint64", + "byteOffset": 40 + } + ], + "byteSize": 48, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "QuoteExactAssetInput_output", + "fields": [ + { + "name": "quAmountOut", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "QuoteExactAssetOutput_input", + "fields": [ + { + "name": "assetIssuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "assetName", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "assetAmountOut", + "type": "sint64", + "byteOffset": 40 + } + ], + "byteSize": 48, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "QuoteExactAssetOutput_output", + "fields": [ + { + "name": "quAmountIn", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "QuoteExactQuInput_input", + "fields": [ + { + "name": "assetIssuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "assetName", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "quAmountIn", + "type": "sint64", + "byteOffset": 40 + } + ], + "byteSize": 48, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "QuoteExactQuInput_output", + "fields": [ + { + "name": "assetAmountOut", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "QuoteExactQuOutput_input", + "fields": [ + { + "name": "assetIssuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "assetName", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "quAmountOut", + "type": "sint64", + "byteOffset": 40 + } + ], + "byteSize": 48, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "QuoteExactQuOutput_output", + "fields": [ + { + "name": "assetAmountIn", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "RemoveLiquidity_input", + "fields": [ + { + "name": "assetIssuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "assetName", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "burnLiquidity", + "type": "sint64", + "byteOffset": 40 + }, + { + "name": "quAmountMin", + "type": "sint64", + "byteOffset": 48 + }, + { + "name": "assetAmountMin", + "type": "sint64", + "byteOffset": 56 + } + ], + "byteSize": 64, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "RemoveLiquidity_output", + "fields": [ + { + "name": "quAmount", + "type": "sint64", + "byteOffset": 0 + }, + { + "name": "assetAmount", + "type": "sint64", + "byteOffset": 8 + } + ], + "byteSize": 16, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "SetInvestRewardsInfo_input", + "fields": [ + { + "name": "newInvestRewardsId", + "type": "id", + "byteOffset": 0 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "SetInvestRewardsInfo_output", + "fields": [ + { + "name": "success", + "type": "bool", + "byteOffset": 0 + } + ], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "SwapAssetForExactQu_input", + "fields": [ + { + "name": "assetIssuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "assetName", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "assetAmountInMax", + "type": "sint64", + "byteOffset": 40 + }, + { + "name": "quAmountOut", + "type": "sint64", + "byteOffset": 48 + } + ], + "byteSize": 56, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "SwapAssetForExactQu_output", + "fields": [ + { + "name": "assetAmountIn", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "SwapExactAssetForQu_input", + "fields": [ + { + "name": "assetIssuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "assetName", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "assetAmountIn", + "type": "sint64", + "byteOffset": 40 + }, + { + "name": "quAmountOutMin", + "type": "sint64", + "byteOffset": 48 + } + ], + "byteSize": 56, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "SwapExactAssetForQu_output", + "fields": [ + { + "name": "quAmountOut", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "SwapExactQuForAsset_input", + "fields": [ + { + "name": "assetIssuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "assetName", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "assetAmountOutMin", + "type": "sint64", + "byteOffset": 40 + } + ], + "byteSize": 48, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "SwapExactQuForAsset_output", + "fields": [ + { + "name": "assetAmountOut", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "SwapQuForExactAsset_input", + "fields": [ + { + "name": "assetIssuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "assetName", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "assetAmountOut", + "type": "sint64", + "byteOffset": 40 + } + ], + "byteSize": 48, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "SwapQuForExactAsset_output", + "fields": [ + { + "name": "quAmountIn", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "TransferShareManagementRights_input", + "fields": [ + { + "name": "asset", + "type": "Asset", + "byteOffset": 0 + }, + { + "name": "numberOfShares", + "type": "sint64", + "byteOffset": 40 + }, + { + "name": "newManagingContractIndex", + "type": "uint32", + "byteOffset": 48 + } + ], + "byteSize": 56, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "TransferShareManagementRights_output", + "fields": [ + { + "name": "transferredNumberOfShares", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "TransferShareOwnershipAndPossession_input", + "fields": [ + { + "name": "assetIssuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "assetName", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "newOwnerAndPossessor", + "type": "id", + "byteOffset": 40 + }, + { + "name": "amount", + "type": "sint64", + "byteOffset": 72 + } + ], + "byteSize": 80, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "TransferShareOwnershipAndPossession_output", + "fields": [ + { + "name": "transferredAmount", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + } + ], + "label": "QSwap", + "githubUrl": "https://github.com/qubic/core/blob/main/src/contracts/Qswap.h", + "proposalUrl": "https://github.com/qubic/proposal/blob/4c2bf93d8eeaebcfdc7b5723a01149b559a52ac5/SmartContracts/2025-07-11-QSwap.md" + }, + { + "name": "NOST", + "contractIndex": 14, + "address": "OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZTPD", + "filename": "Nostromo.h", + "entries": [ + { + "kind": "function", + "name": "getStats", + "inputType": 1, + "inputTypeName": "getStats_input", + "outputTypeName": "getStats_output", + "inputSize": 1, + "outputSize": 32 + }, + { + "kind": "function", + "name": "getTierLevelByUser", + "inputType": 2, + "inputTypeName": "getTierLevelByUser_input", + "outputTypeName": "getTierLevelByUser_output", + "inputSize": 32, + "outputSize": 1 + }, + { + "kind": "function", + "name": "getUserVoteStatus", + "inputType": 3, + "inputTypeName": "getUserVoteStatus_input", + "outputTypeName": "getUserVoteStatus_output", + "inputSize": 32, + "outputSize": 516 + }, + { + "kind": "function", + "name": "checkTokenCreatability", + "inputType": 4, + "inputTypeName": "checkTokenCreatability_input", + "outputTypeName": "checkTokenCreatability_output", + "inputSize": 8, + "outputSize": 1 + }, + { + "kind": "function", + "name": "getNumberOfInvestedProjects", + "inputType": 5, + "inputTypeName": "getNumberOfInvestedProjects_input", + "outputTypeName": "getNumberOfInvestedProjects_output", + "inputSize": 32, + "outputSize": 4 + }, + { + "kind": "function", + "name": "getProjectByIndex", + "inputType": 6, + "inputTypeName": "getProjectByIndex_input", + "outputTypeName": "getProjectByIndex_output", + "inputSize": 4, + "outputSize": 72 + }, + { + "kind": "function", + "name": "getFundarasingByIndex", + "inputType": 7, + "inputTypeName": "getFundarasingByIndex_input", + "outputTypeName": "getFundarasingByIndex_output", + "inputSize": 4, + "outputSize": 80 + }, + { + "kind": "function", + "name": "getProjectIndexListByCreator", + "inputType": 8, + "inputTypeName": "getProjectIndexListByCreator_input", + "outputTypeName": "getProjectIndexListByCreator_output", + "inputSize": 32, + "outputSize": 512 + }, + { + "kind": "function", + "name": "getInfoUserInvested", + "inputType": 9, + "inputTypeName": "getInfoUserInvested_input", + "outputTypeName": "getInfoUserInvested_output", + "inputSize": 32, + "outputSize": 3072 + }, + { + "kind": "function", + "name": "getMaxClaimAmount", + "inputType": 10, + "inputTypeName": "getMaxClaimAmount_input", + "outputTypeName": "getMaxClaimAmount_output", + "inputSize": 40, + "outputSize": 8 + }, + { + "kind": "procedure", + "name": "registerInTier", + "inputType": 1, + "inputTypeName": "registerInTier_input", + "outputTypeName": "registerInTier_output", + "inputSize": 4, + "outputSize": 4, + "displayName": "Register in Tier" + }, + { + "kind": "procedure", + "name": "logoutFromTier", + "inputType": 2, + "inputTypeName": "logoutFromTier_input", + "outputTypeName": "logoutFromTier_output", + "inputSize": 1, + "outputSize": 1, + "displayName": "Logout from Tier" + }, + { + "kind": "procedure", + "name": "createProject", + "inputType": 3, + "inputTypeName": "createProject_input", + "outputTypeName": "createProject_output", + "inputSize": 48, + "outputSize": 4, + "displayName": "Create Project" + }, + { + "kind": "procedure", + "name": "voteInProject", + "inputType": 4, + "inputTypeName": "voteInProject_input", + "outputTypeName": "voteInProject_output", + "inputSize": 8, + "outputSize": 1, + "displayName": "Vote in Project" + }, + { + "kind": "procedure", + "name": "createFundraising", + "inputType": 5, + "inputTypeName": "createFundraising_input", + "outputTypeName": "createFundraising_output", + "inputSize": 176, + "outputSize": 1, + "displayName": "Create Fundraising" + }, + { + "kind": "procedure", + "name": "investInProject", + "inputType": 6, + "inputTypeName": "investInProject_input", + "outputTypeName": "investInProject_output", + "inputSize": 4, + "outputSize": 1, + "displayName": "Invest in Project" + }, + { + "kind": "procedure", + "name": "claimToken", + "inputType": 7, + "inputTypeName": "claimToken_input", + "outputTypeName": "claimToken_output", + "inputSize": 16, + "outputSize": 8, + "displayName": "Claim Token" + }, + { + "kind": "procedure", + "name": "upgradeTier", + "inputType": 8, + "inputTypeName": "upgradeTier_input", + "outputTypeName": "upgradeTier_output", + "inputSize": 4, + "outputSize": 1, + "displayName": "Upgrade Tier" + }, + { + "kind": "procedure", + "name": "TransferShareManagementRights", + "inputType": 9, + "inputTypeName": "TransferShareManagementRights_input", + "outputTypeName": "TransferShareManagementRights_output", + "inputSize": 56, + "outputSize": 8, + "displayName": "Transfer Share Management Rights" + } + ], + "ioTypes": [ + { + "kind": "struct", + "name": "Asset", + "fields": [ + { + "name": "issuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "assetName", + "type": "uint64", + "byteOffset": 32 + } + ], + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "checkTokenCreatability_input", + "fields": [ + { + "name": "tokenName", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "checkTokenCreatability_output", + "fields": [ + { + "name": "result", + "type": "bit", + "byteOffset": 0 + } + ], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "claimToken_input", + "fields": [ + { + "name": "amount", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "indexOfFundraising", + "type": "uint32", + "byteOffset": 8 + } + ], + "byteSize": 16, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "claimToken_output", + "fields": [ + { + "name": "claimedAmount", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "createFundraising_input", + "fields": [ + { + "name": "tokenPrice", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "soldAmount", + "type": "uint64", + "byteOffset": 8 + }, + { + "name": "requiredFunds", + "type": "uint64", + "byteOffset": 16 + }, + { + "name": "indexOfProject", + "type": "uint32", + "byteOffset": 24 + }, + { + "name": "firstPhaseStartYear", + "type": "uint32", + "byteOffset": 28 + }, + { + "name": "firstPhaseStartMonth", + "type": "uint32", + "byteOffset": 32 + }, + { + "name": "firstPhaseStartDay", + "type": "uint32", + "byteOffset": 36 + }, + { + "name": "firstPhaseStartHour", + "type": "uint32", + "byteOffset": 40 + }, + { + "name": "firstPhaseEndYear", + "type": "uint32", + "byteOffset": 44 + }, + { + "name": "firstPhaseEndMonth", + "type": "uint32", + "byteOffset": 48 + }, + { + "name": "firstPhaseEndDay", + "type": "uint32", + "byteOffset": 52 + }, + { + "name": "firstPhaseEndHour", + "type": "uint32", + "byteOffset": 56 + }, + { + "name": "secondPhaseStartYear", + "type": "uint32", + "byteOffset": 60 + }, + { + "name": "secondPhaseStartMonth", + "type": "uint32", + "byteOffset": 64 + }, + { + "name": "secondPhaseStartDay", + "type": "uint32", + "byteOffset": 68 + }, + { + "name": "secondPhaseStartHour", + "type": "uint32", + "byteOffset": 72 + }, + { + "name": "secondPhaseEndYear", + "type": "uint32", + "byteOffset": 76 + }, + { + "name": "secondPhaseEndMonth", + "type": "uint32", + "byteOffset": 80 + }, + { + "name": "secondPhaseEndDay", + "type": "uint32", + "byteOffset": 84 + }, + { + "name": "secondPhaseEndHour", + "type": "uint32", + "byteOffset": 88 + }, + { + "name": "thirdPhaseStartYear", + "type": "uint32", + "byteOffset": 92 + }, + { + "name": "thirdPhaseStartMonth", + "type": "uint32", + "byteOffset": 96 + }, + { + "name": "thirdPhaseStartDay", + "type": "uint32", + "byteOffset": 100 + }, + { + "name": "thirdPhaseStartHour", + "type": "uint32", + "byteOffset": 104 + }, + { + "name": "thirdPhaseEndYear", + "type": "uint32", + "byteOffset": 108 + }, + { + "name": "thirdPhaseEndMonth", + "type": "uint32", + "byteOffset": 112 + }, + { + "name": "thirdPhaseEndDay", + "type": "uint32", + "byteOffset": 116 + }, + { + "name": "thirdPhaseEndHour", + "type": "uint32", + "byteOffset": 120 + }, + { + "name": "listingStartYear", + "type": "uint32", + "byteOffset": 124 + }, + { + "name": "listingStartMonth", + "type": "uint32", + "byteOffset": 128 + }, + { + "name": "listingStartDay", + "type": "uint32", + "byteOffset": 132 + }, + { + "name": "listingStartHour", + "type": "uint32", + "byteOffset": 136 + }, + { + "name": "cliffEndYear", + "type": "uint32", + "byteOffset": 140 + }, + { + "name": "cliffEndMonth", + "type": "uint32", + "byteOffset": 144 + }, + { + "name": "cliffEndDay", + "type": "uint32", + "byteOffset": 148 + }, + { + "name": "cliffEndHour", + "type": "uint32", + "byteOffset": 152 + }, + { + "name": "vestingEndYear", + "type": "uint32", + "byteOffset": 156 + }, + { + "name": "vestingEndMonth", + "type": "uint32", + "byteOffset": 160 + }, + { + "name": "vestingEndDay", + "type": "uint32", + "byteOffset": 164 + }, + { + "name": "vestingEndHour", + "type": "uint32", + "byteOffset": 168 + }, + { + "name": "threshold", + "type": "uint8", + "byteOffset": 172 + }, + { + "name": "TGE", + "type": "uint8", + "byteOffset": 173 + }, + { + "name": "stepOfVesting", + "type": "uint8", + "byteOffset": 174 + } + ], + "byteSize": 176, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "createFundraising_output", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "createProject_input", + "fields": [ + { + "name": "tokenName", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "supply", + "type": "uint64", + "byteOffset": 8 + }, + { + "name": "startYear", + "type": "uint32", + "byteOffset": 16 + }, + { + "name": "startMonth", + "type": "uint32", + "byteOffset": 20 + }, + { + "name": "startDay", + "type": "uint32", + "byteOffset": 24 + }, + { + "name": "startHour", + "type": "uint32", + "byteOffset": 28 + }, + { + "name": "endYear", + "type": "uint32", + "byteOffset": 32 + }, + { + "name": "endMonth", + "type": "uint32", + "byteOffset": 36 + }, + { + "name": "endDay", + "type": "uint32", + "byteOffset": 40 + }, + { + "name": "endHour", + "type": "uint32", + "byteOffset": 44 + } + ], + "byteSize": 48, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "createProject_output", + "fields": [ + { + "name": "indexOfProject", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "fundaraisingInfo", + "fields": [ + { + "name": "tokenPrice", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "soldAmount", + "type": "uint64", + "byteOffset": 8 + }, + { + "name": "requiredFunds", + "type": "uint64", + "byteOffset": 16 + }, + { + "name": "raisedFunds", + "type": "uint64", + "byteOffset": 24 + }, + { + "name": "indexOfProject", + "type": "uint32", + "byteOffset": 32 + }, + { + "name": "firstPhaseStartDate", + "type": "uint32", + "byteOffset": 36 + }, + { + "name": "firstPhaseEndDate", + "type": "uint32", + "byteOffset": 40 + }, + { + "name": "secondPhaseStartDate", + "type": "uint32", + "byteOffset": 44 + }, + { + "name": "secondPhaseEndDate", + "type": "uint32", + "byteOffset": 48 + }, + { + "name": "thirdPhaseStartDate", + "type": "uint32", + "byteOffset": 52 + }, + { + "name": "thirdPhaseEndDate", + "type": "uint32", + "byteOffset": 56 + }, + { + "name": "listingStartDate", + "type": "uint32", + "byteOffset": 60 + }, + { + "name": "cliffEndDate", + "type": "uint32", + "byteOffset": 64 + }, + { + "name": "vestingEndDate", + "type": "uint32", + "byteOffset": 68 + }, + { + "name": "threshold", + "type": "uint8", + "byteOffset": 72 + }, + { + "name": "TGE", + "type": "uint8", + "byteOffset": 73 + }, + { + "name": "stepOfVesting", + "type": "uint8", + "byteOffset": 74 + }, + { + "name": "isCreatedToken", + "type": "bit", + "byteOffset": 75 + } + ], + "byteSize": 80, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getFundarasingByIndex_input", + "fields": [ + { + "name": "indexOfFundarasing", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "getFundarasingByIndex_output", + "fields": [ + { + "name": "fundarasing", + "type": "fundaraisingInfo", + "byteOffset": 0 + } + ], + "byteSize": 80, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getInfoUserInvested_input", + "fields": [ + { + "name": "investorId", + "type": "id", + "byteOffset": 0 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getInfoUserInvested_output", + "fields": [ + { + "name": "listUserInvested", + "type": "Array", + "byteOffset": 0 + } + ], + "byteSize": 3072, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getMaxClaimAmount_input", + "fields": [ + { + "name": "investorId", + "type": "id", + "byteOffset": 0 + }, + { + "name": "indexOfFundraising", + "type": "uint32", + "byteOffset": 32 + } + ], + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getMaxClaimAmount_output", + "fields": [ + { + "name": "amount", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getNumberOfInvestedProjects_input", + "fields": [ + { + "name": "userId", + "type": "id", + "byteOffset": 0 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getNumberOfInvestedProjects_output", + "fields": [ + { + "name": "numberOfInvestedProjects", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "getProjectByIndex_input", + "fields": [ + { + "name": "indexOfProject", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "getProjectByIndex_output", + "fields": [ + { + "name": "project", + "type": "projectInfo", + "byteOffset": 0 + } + ], + "byteSize": 72, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getProjectIndexListByCreator_input", + "fields": [ + { + "name": "creator", + "type": "id", + "byteOffset": 0 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getProjectIndexListByCreator_output", + "fields": [ + { + "name": "indexListForProjects", + "type": "Array", + "byteOffset": 0 + } + ], + "byteSize": 512, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "getStats_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "getStats_output", + "fields": [ + { + "name": "epochRevenue", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "totalPoolWeight", + "type": "uint64", + "byteOffset": 8 + }, + { + "name": "numberOfRegister", + "type": "uint32", + "byteOffset": 16 + }, + { + "name": "numberOfCreatedProject", + "type": "uint32", + "byteOffset": 20 + }, + { + "name": "numberOfFundraising", + "type": "uint32", + "byteOffset": 24 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getTierLevelByUser_input", + "fields": [ + { + "name": "userId", + "type": "id", + "byteOffset": 0 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getTierLevelByUser_output", + "fields": [ + { + "name": "tierLevel", + "type": "uint8", + "byteOffset": 0 + } + ], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "getUserVoteStatus_input", + "fields": [ + { + "name": "userId", + "type": "id", + "byteOffset": 0 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getUserVoteStatus_output", + "fields": [ + { + "name": "numberOfVotedProjects", + "type": "uint32", + "byteOffset": 0 + }, + { + "name": "projectIndexList", + "type": "Array", + "byteOffset": 4 + } + ], + "byteSize": 516, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "investInfo", + "fields": [ + { + "name": "investedAmount", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "claimedAmount", + "type": "uint64", + "byteOffset": 8 + }, + { + "name": "indexOfFundraising", + "type": "uint32", + "byteOffset": 16 + } + ], + "byteSize": 24, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "investInProject_input", + "fields": [ + { + "name": "indexOfFundraising", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "investInProject_output", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "logoutFromTier_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "logoutFromTier_output", + "fields": [ + { + "name": "result", + "type": "bit", + "byteOffset": 0 + } + ], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "projectInfo", + "fields": [ + { + "name": "creator", + "type": "id", + "byteOffset": 0 + }, + { + "name": "tokenName", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "supplyOfToken", + "type": "uint64", + "byteOffset": 40 + }, + { + "name": "startDate", + "type": "uint32", + "byteOffset": 48 + }, + { + "name": "endDate", + "type": "uint32", + "byteOffset": 52 + }, + { + "name": "numberOfYes", + "type": "uint32", + "byteOffset": 56 + }, + { + "name": "numberOfNo", + "type": "uint32", + "byteOffset": 60 + }, + { + "name": "isCreatedFundarasing", + "type": "bit", + "byteOffset": 64 + } + ], + "byteSize": 72, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "registerInTier_input", + "fields": [ + { + "name": "tierLevel", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "registerInTier_output", + "fields": [ + { + "name": "tierLevel", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "TransferShareManagementRights_input", + "fields": [ + { + "name": "asset", + "type": "Asset", + "byteOffset": 0 + }, + { + "name": "numberOfShares", + "type": "sint64", + "byteOffset": 40 + }, + { + "name": "newManagingContractIndex", + "type": "uint32", + "byteOffset": 48 + } + ], + "byteSize": 56, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "TransferShareManagementRights_output", + "fields": [ + { + "name": "transferredNumberOfShares", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "upgradeTier_input", + "fields": [ + { + "name": "newTierLevel", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "upgradeTier_output", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "voteInProject_input", + "fields": [ + { + "name": "indexOfProject", + "type": "uint32", + "byteOffset": 0 + }, + { + "name": "decision", + "type": "bit", + "byteOffset": 4 + } + ], + "byteSize": 8, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "voteInProject_output", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + } + ], + "label": "Nostromo", + "githubUrl": "https://github.com/qubic/core/blob/main/src/contracts/Nostromo.h", + "proposalUrl": "https://github.com/qubic/proposal/blob/d6addfa293b2fea19ecde3727f5e6e229388beb2/SmartContracts/2025-07-19-Nostromo.md" + }, + { + "name": "QDRAW", + "contractIndex": 15, + "address": "PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYVRC", + "filename": "Qdraw.h", + "entries": [ + { + "kind": "function", + "name": "getInfo", + "inputType": 2, + "inputTypeName": "getInfo_input", + "outputTypeName": "getInfo_output" + }, + { + "kind": "function", + "name": "getParticipants", + "inputType": 3, + "inputTypeName": "getParticipants_input", + "outputTypeName": "getParticipants_output" + }, + { + "kind": "procedure", + "name": "buyTicket", + "inputType": 1, + "inputTypeName": "buyTicket_input", + "outputTypeName": "buyTicket_output", + "displayName": "Buy Ticket" + } + ], + "ioTypes": [ + { + "kind": "struct", + "name": "buyTicket_input", + "fields": [ + { + "name": "ticketCount", + "type": "uint64" + } + ] + }, + { + "kind": "struct", + "name": "buyTicket_output", + "fields": [] + }, + { + "kind": "struct", + "name": "getInfo_input", + "fields": [] + }, + { + "kind": "struct", + "name": "getInfo_output", + "fields": [ + { + "name": "pot", + "type": "sint64" + }, + { + "name": "participantCount", + "type": "uint64" + }, + { + "name": "lastWinner", + "type": "id" + }, + { + "name": "lastWinAmount", + "type": "sint64" + }, + { + "name": "lastDrawHour", + "type": "uint8" + }, + { + "name": "currentHour", + "type": "uint8" + }, + { + "name": "nextDrawHour", + "type": "uint8" + } + ] + }, + { + "kind": "struct", + "name": "getParticipants_input", + "fields": [] + }, + { + "kind": "struct", + "name": "getParticipants_output", + "fields": [ + { + "name": "participantCount", + "type": "uint64" + }, + { + "name": "uniqueParticipantCount", + "type": "uint64" + }, + { + "name": "participants", + "type": "Array" + }, + { + "name": "ticketCounts", + "type": "Array" + } + ] + } + ], + "label": "QDraw", + "githubUrl": "https://github.com/qubic/core/blob/main/src/contracts/Qdraw.h", + "proposalUrl": "https://github.com/qubic/proposal/blob/25a94970fee5f5669d70d7390ceef00d5a8e7d66/SmartContracts/2025-09-02-Qdraw.md" + }, + { + "name": "RL", + "contractIndex": 16, + "address": "QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPIYE", + "filename": "RandomLottery.h", + "entries": [ + { + "kind": "function", + "name": "GetFees", + "inputType": 1, + "inputTypeName": "GetFees_input", + "outputTypeName": "GetFees_output", + "inputSize": 1, + "outputSize": 5 + }, + { + "kind": "function", + "name": "GetPlayers", + "inputType": 2, + "inputTypeName": "GetPlayers_input", + "outputTypeName": "GetPlayers_output", + "inputSize": 1, + "outputSize": 32784 + }, + { + "kind": "function", + "name": "GetWinners", + "inputType": 3, + "inputTypeName": "GetWinners_input", + "outputTypeName": "GetWinners_output", + "inputSize": 1, + "outputSize": 49168 + }, + { + "kind": "function", + "name": "GetTicketPrice", + "inputType": 4, + "inputTypeName": "GetTicketPrice_input", + "outputTypeName": "GetTicketPrice_output", + "inputSize": 1, + "outputSize": 8 + }, + { + "kind": "function", + "name": "GetMaxNumberOfPlayers", + "inputType": 5, + "inputTypeName": "GetMaxNumberOfPlayers_input", + "outputTypeName": "GetMaxNumberOfPlayers_output", + "inputSize": 1, + "outputSize": 8 + }, + { + "kind": "function", + "name": "GetState", + "inputType": 6, + "inputTypeName": "GetState_input", + "outputTypeName": "GetState_output", + "inputSize": 1, + "outputSize": 1 + }, + { + "kind": "function", + "name": "GetBalance", + "inputType": 7, + "inputTypeName": "GetBalance_input", + "outputTypeName": "GetBalance_output", + "inputSize": 1, + "outputSize": 8 + }, + { + "kind": "function", + "name": "GetNextEpochData", + "inputType": 8, + "inputTypeName": "GetNextEpochData_input", + "outputTypeName": "GetNextEpochData_output", + "inputSize": 1, + "outputSize": 16 + }, + { + "kind": "function", + "name": "GetDrawHour", + "inputType": 9, + "inputTypeName": "GetDrawHour_input", + "outputTypeName": "GetDrawHour_output", + "inputSize": 1, + "outputSize": 1 + }, + { + "kind": "function", + "name": "GetSchedule", + "inputType": 10, + "inputTypeName": "GetSchedule_input", + "outputTypeName": "GetSchedule_output", + "inputSize": 1, + "outputSize": 1 + }, + { + "kind": "procedure", + "name": "BuyTicket", + "inputType": 1, + "inputTypeName": "BuyTicket_input", + "outputTypeName": "BuyTicket_output", + "inputSize": 1, + "outputSize": 1, + "displayName": "Buy Ticket" + }, + { + "kind": "procedure", + "name": "SetPrice", + "inputType": 2, + "inputTypeName": "SetPrice_input", + "outputTypeName": "SetPrice_output", + "inputSize": 8, + "outputSize": 1, + "displayName": "Set Price" + }, + { + "kind": "procedure", + "name": "SetSchedule", + "inputType": 3, + "inputTypeName": "SetSchedule_input", + "outputTypeName": "SetSchedule_output", + "inputSize": 1, + "outputSize": 1, + "displayName": "Set Schedule" + } + ], + "ioTypes": [ + { + "kind": "struct", + "name": "BuyTicket_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "BuyTicket_output", + "fields": [ + { + "name": "returnCode", + "type": "uint8", + "byteOffset": 0 + } + ], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "GetBalance_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "GetBalance_output", + "fields": [ + { + "name": "balance", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetDrawHour_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "GetDrawHour_output", + "fields": [ + { + "name": "drawHour", + "type": "uint8", + "byteOffset": 0 + } + ], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "GetFees_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "GetFees_output", + "fields": [ + { + "name": "teamFeePercent", + "type": "uint8", + "byteOffset": 0 + }, + { + "name": "distributionFeePercent", + "type": "uint8", + "byteOffset": 1 + }, + { + "name": "winnerFeePercent", + "type": "uint8", + "byteOffset": 2 + }, + { + "name": "burnPercent", + "type": "uint8", + "byteOffset": 3 + }, + { + "name": "returnCode", + "type": "uint8", + "byteOffset": 4 + } + ], + "byteSize": 5, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "GetMaxNumberOfPlayers_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "GetMaxNumberOfPlayers_output", + "fields": [ + { + "name": "numberOfPlayers", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetNextEpochData_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "GetNextEpochData_output", + "fields": [ + { + "name": "nextEpochData", + "type": "NextEpochData", + "byteOffset": 0 + } + ], + "byteSize": 16, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetPlayers_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "GetPlayers_output", + "fields": [ + { + "name": "players", + "type": "Array", + "byteOffset": 0 + }, + { + "name": "playerCounter", + "type": "uint64", + "byteOffset": 32768 + }, + { + "name": "returnCode", + "type": "uint8", + "byteOffset": 32776 + } + ], + "byteSize": 32784, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetSchedule_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "GetSchedule_output", + "fields": [ + { + "name": "schedule", + "type": "uint8", + "byteOffset": 0 + } + ], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "GetState_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "GetState_output", + "fields": [ + { + "name": "currentState", + "type": "uint8", + "byteOffset": 0 + } + ], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "GetTicketPrice_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "GetTicketPrice_output", + "fields": [ + { + "name": "ticketPrice", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetWinners_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "GetWinners_output", + "fields": [ + { + "name": "winners", + "type": "Array", + "byteOffset": 0 + }, + { + "name": "winnersCounter", + "type": "uint64", + "byteOffset": 49152 + }, + { + "name": "returnCode", + "type": "uint8", + "byteOffset": 49160 + } + ], + "byteSize": 49168, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "NextEpochData", + "fields": [ + { + "name": "newPrice", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "schedule", + "type": "uint8", + "byteOffset": 8 + } + ], + "byteSize": 16, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "SetPrice_input", + "fields": [ + { + "name": "newPrice", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "SetPrice_output", + "fields": [ + { + "name": "returnCode", + "type": "uint8", + "byteOffset": 0 + } + ], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "SetSchedule_input", + "fields": [ + { + "name": "newSchedule", + "type": "uint8", + "byteOffset": 0 + } + ], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "SetSchedule_output", + "fields": [ + { + "name": "returnCode", + "type": "uint8", + "byteOffset": 0 + } + ], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "WinnerInfo", + "fields": [ + { + "name": "winnerAddress", + "type": "id", + "byteOffset": 0 + }, + { + "name": "revenue", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "tick", + "type": "uint32", + "byteOffset": 40 + }, + { + "name": "epoch", + "type": "uint16", + "byteOffset": 44 + }, + { + "name": "dayOfWeek", + "type": "uint8", + "byteOffset": 46 + } + ], + "byteSize": 48, + "byteAlign": 8 + } + ], + "label": "Random Lottery", + "githubUrl": "https://github.com/qubic/core/blob/main/src/contracts/RandomLottery.h", + "proposalUrl": "https://github.com/N-010/proposal/blob/a8e8a80/SmartContracts/2025-09-13-RandomLottery.md" + }, + { + "name": "QBOND", + "contractIndex": 17, + "address": "RAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADKAH", + "filename": "QBond.h", + "entries": [ + { + "kind": "function", + "name": "GetFees", + "inputType": 1, + "inputTypeName": "GetFees_input", + "outputTypeName": "GetFees_output", + "inputSize": 1, + "outputSize": 24 + }, + { + "kind": "function", + "name": "GetEarnedFees", + "inputType": 2, + "inputTypeName": "GetEarnedFees_input", + "outputTypeName": "GetEarnedFees_output", + "inputSize": 1, + "outputSize": 16 + }, + { + "kind": "function", + "name": "GetInfoPerEpoch", + "inputType": 3, + "inputTypeName": "GetInfoPerEpoch_input", + "outputTypeName": "GetInfoPerEpoch_output", + "inputSize": 8, + "outputSize": 24 + }, + { + "kind": "function", + "name": "GetOrders", + "inputType": 4, + "inputTypeName": "GetOrders_input", + "outputTypeName": "GetOrders_output", + "inputSize": 24, + "outputSize": 28672 + }, + { + "kind": "function", + "name": "GetUserOrders", + "inputType": 5, + "inputTypeName": "GetUserOrders_input", + "outputTypeName": "GetUserOrders_output", + "inputSize": 48, + "outputSize": 28672 + }, + { + "kind": "function", + "name": "GetMBondsTable", + "inputType": 6, + "inputTypeName": "GetMBondsTable_input", + "outputTypeName": "GetMBondsTable_output", + "inputSize": 1, + "outputSize": 16384 + }, + { + "kind": "function", + "name": "GetUserMBonds", + "inputType": 7, + "inputTypeName": "GetUserMBonds_input", + "outputTypeName": "GetUserMBonds_output", + "inputSize": 32, + "outputSize": 6152 + }, + { + "kind": "function", + "name": "GetCFA", + "inputType": 8, + "inputTypeName": "GetCFA_input", + "outputTypeName": "GetCFA_output", + "inputSize": 1, + "outputSize": 32768 + }, + { + "kind": "procedure", + "name": "Stake", + "inputType": 1, + "inputTypeName": "Stake_input", + "outputTypeName": "Stake_output", + "inputSize": 8, + "outputSize": 1, + "displayName": "Stake" + }, + { + "kind": "procedure", + "name": "TransferMBondOwnershipAndPossession", + "inputType": 2, + "inputTypeName": "TransferMBondOwnershipAndPossession_input", + "outputTypeName": "TransferMBondOwnershipAndPossession_output", + "inputSize": 48, + "outputSize": 8, + "displayName": "Transfer MBond Ownership and Possession" + }, + { + "kind": "procedure", + "name": "AddAskOrder", + "inputType": 3, + "inputTypeName": "AddAskOrder_input", + "outputTypeName": "AddAskOrder_output", + "inputSize": 24, + "outputSize": 8, + "displayName": "Add Ask Order" + }, + { + "kind": "procedure", + "name": "RemoveAskOrder", + "inputType": 4, + "inputTypeName": "RemoveAskOrder_input", + "outputTypeName": "RemoveAskOrder_output", + "inputSize": 24, + "outputSize": 8, + "displayName": "Remove Ask Order" + }, + { + "kind": "procedure", + "name": "AddBidOrder", + "inputType": 5, + "inputTypeName": "AddBidOrder_input", + "outputTypeName": "AddBidOrder_output", + "inputSize": 24, + "outputSize": 8, + "displayName": "Add Bid Order" + }, + { + "kind": "procedure", + "name": "RemoveBidOrder", + "inputType": 6, + "inputTypeName": "RemoveBidOrder_input", + "outputTypeName": "RemoveBidOrder_output", + "inputSize": 24, + "outputSize": 8, + "displayName": "Remove Bid Order" + }, + { + "kind": "procedure", + "name": "BurnQU", + "inputType": 7, + "inputTypeName": "BurnQU_input", + "outputTypeName": "BurnQU_output", + "inputSize": 8, + "outputSize": 8, + "displayName": "Burn QU" + }, + { + "kind": "procedure", + "name": "UpdateCFA", + "inputType": 8, + "inputTypeName": "UpdateCFA_input", + "outputTypeName": "UpdateCFA_output", + "inputSize": 40, + "outputSize": 1, + "displayName": "Update CFA" + } + ], + "ioTypes": [ + { + "kind": "struct", + "name": "AddAskOrder_input", + "fields": [ + { + "name": "epoch", + "type": "sint64", + "byteOffset": 0 + }, + { + "name": "price", + "type": "sint64", + "byteOffset": 8 + }, + { + "name": "numberOfMBonds", + "type": "sint64", + "byteOffset": 16 + } + ], + "byteSize": 24, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "AddAskOrder_output", + "fields": [ + { + "name": "addedMBondsAmount", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "AddBidOrder_input", + "fields": [ + { + "name": "epoch", + "type": "sint64", + "byteOffset": 0 + }, + { + "name": "price", + "type": "sint64", + "byteOffset": 8 + }, + { + "name": "numberOfMBonds", + "type": "sint64", + "byteOffset": 16 + } + ], + "byteSize": 24, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "AddBidOrder_output", + "fields": [ + { + "name": "addedMBondsAmount", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "BurnQU_input", + "fields": [ + { + "name": "amount", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "BurnQU_output", + "fields": [ + { + "name": "amount", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetCFA_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "GetCFA_output", + "fields": [ + { + "name": "commissionFreeAddresses", + "type": "Array", + "byteOffset": 0 + } + ], + "byteSize": 32768, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetEarnedFees_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "GetEarnedFees_output", + "fields": [ + { + "name": "stakeFees", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "tradeFees", + "type": "uint64", + "byteOffset": 8 + } + ], + "byteSize": 16, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetFees_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "GetFees_output", + "fields": [ + { + "name": "stakeFeePercent", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "tradeFeePercent", + "type": "uint64", + "byteOffset": 8 + }, + { + "name": "transferFee", + "type": "uint64", + "byteOffset": 16 + } + ], + "byteSize": 24, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetInfoPerEpoch_input", + "fields": [ + { + "name": "epoch", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetInfoPerEpoch_output", + "fields": [ + { + "name": "stakersAmount", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "totalStaked", + "type": "sint64", + "byteOffset": 8 + }, + { + "name": "apy", + "type": "sint64", + "byteOffset": 16 + } + ], + "byteSize": 24, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetMBondsTable_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "GetMBondsTable_output", + "fields": [ + { + "name": "info", + "type": "Array", + "byteOffset": 0 + } + ], + "byteSize": 16384, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetOrders_input", + "fields": [ + { + "name": "epoch", + "type": "sint64", + "byteOffset": 0 + }, + { + "name": "askOrdersOffset", + "type": "sint64", + "byteOffset": 8 + }, + { + "name": "bidOrdersOffset", + "type": "sint64", + "byteOffset": 16 + } + ], + "byteSize": 24, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetOrders_output", + "fields": [ + { + "name": "askOrders", + "type": "Array", + "byteOffset": 0 + }, + { + "name": "bidOrders", + "type": "Array", + "byteOffset": 14336 + } + ], + "byteSize": 28672, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetUserMBonds_input", + "fields": [ + { + "name": "owner", + "type": "id", + "byteOffset": 0 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetUserMBonds_output", + "fields": [ + { + "name": "totalMBondsAmount", + "type": "sint64", + "byteOffset": 0 + }, + { + "name": "mbonds", + "type": "Array", + "byteOffset": 8 + } + ], + "byteSize": 6152, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetUserOrders_input", + "fields": [ + { + "name": "owner", + "type": "id", + "byteOffset": 0 + }, + { + "name": "askOrdersOffset", + "type": "sint64", + "byteOffset": 32 + }, + { + "name": "bidOrdersOffset", + "type": "sint64", + "byteOffset": 40 + } + ], + "byteSize": 48, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetUserOrders_output", + "fields": [ + { + "name": "askOrders", + "type": "Array", + "byteOffset": 0 + }, + { + "name": "bidOrders", + "type": "Array", + "byteOffset": 14336 + } + ], + "byteSize": 28672, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "MBondEntity", + "fields": [ + { + "name": "epoch", + "type": "sint64", + "byteOffset": 0 + }, + { + "name": "amount", + "type": "sint64", + "byteOffset": 8 + }, + { + "name": "apy", + "type": "uint64", + "byteOffset": 16 + } + ], + "byteSize": 24, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "Order", + "fields": [ + { + "name": "owner", + "type": "id", + "byteOffset": 0 + }, + { + "name": "epoch", + "type": "sint64", + "byteOffset": 32 + }, + { + "name": "numberOfMBonds", + "type": "sint64", + "byteOffset": 40 + }, + { + "name": "price", + "type": "sint64", + "byteOffset": 48 + } + ], + "byteSize": 56, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "RemoveAskOrder_input", + "fields": [ + { + "name": "epoch", + "type": "sint64", + "byteOffset": 0 + }, + { + "name": "price", + "type": "sint64", + "byteOffset": 8 + }, + { + "name": "numberOfMBonds", + "type": "sint64", + "byteOffset": 16 + } + ], + "byteSize": 24, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "RemoveAskOrder_output", + "fields": [ + { + "name": "removedMBondsAmount", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "RemoveBidOrder_input", + "fields": [ + { + "name": "epoch", + "type": "sint64", + "byteOffset": 0 + }, + { + "name": "price", + "type": "sint64", + "byteOffset": 8 + }, + { + "name": "numberOfMBonds", + "type": "sint64", + "byteOffset": 16 + } + ], + "byteSize": 24, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "RemoveBidOrder_output", + "fields": [ + { + "name": "removedMBondsAmount", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "Stake_input", + "fields": [ + { + "name": "quMillions", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "Stake_output", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "TableEntry", + "fields": [ + { + "name": "epoch", + "type": "sint64", + "byteOffset": 0 + }, + { + "name": "totalStakedQBond", + "type": "sint64", + "byteOffset": 8 + }, + { + "name": "totalStakedQEarn", + "type": "sint64", + "byteOffset": 16 + }, + { + "name": "apy", + "type": "uint64", + "byteOffset": 24 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "TransferMBondOwnershipAndPossession_input", + "fields": [ + { + "name": "newOwnerAndPossessor", + "type": "id", + "byteOffset": 0 + }, + { + "name": "epoch", + "type": "sint64", + "byteOffset": 32 + }, + { + "name": "numberOfMBonds", + "type": "sint64", + "byteOffset": 40 + } + ], + "byteSize": 48, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "TransferMBondOwnershipAndPossession_output", + "fields": [ + { + "name": "transferredMBonds", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "UpdateCFA_input", + "fields": [ + { + "name": "user", + "type": "id", + "byteOffset": 0 + }, + { + "name": "operation", + "type": "bit", + "byteOffset": 32 + } + ], + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "UpdateCFA_output", + "fields": [ + { + "name": "result", + "type": "bit", + "byteOffset": 0 + } + ], + "byteSize": 1, + "byteAlign": 1 + } + ], + "label": "QBond", + "githubUrl": "https://github.com/qubic/core/blob/main/src/contracts/QBond.h", + "proposalUrl": "https://github.com/qubic/proposal/blob/605da6f57f17505b2d5b9b271b2351a90268f4c8/SmartContracts/2025-09-26-QBond.md" + }, + { + "name": "QIP", + "contractIndex": 18, + "address": "SAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABNI", + "filename": "QIP.h", + "entries": [ + { + "kind": "function", + "name": "getICOInfo", + "inputType": 1, + "inputTypeName": "getICOInfo_input", + "outputTypeName": "getICOInfo_output", + "inputSize": 4, + "outputSize": 512 + }, + { + "kind": "procedure", + "name": "createICO", + "inputType": 1, + "inputTypeName": "createICO_input", + "outputTypeName": "createICO_output", + "inputSize": 456, + "outputSize": 4, + "displayName": "Create ICO" + }, + { + "kind": "procedure", + "name": "buyToken", + "inputType": 2, + "inputTypeName": "buyToken_input", + "outputTypeName": "buyToken_output", + "inputSize": 16, + "outputSize": 4, + "displayName": "Buy Token" + }, + { + "kind": "procedure", + "name": "TransferShareManagementRights", + "inputType": 3, + "inputTypeName": "TransferShareManagementRights_input", + "outputTypeName": "TransferShareManagementRights_output", + "inputSize": 56, + "outputSize": 8, + "displayName": "Transfer Share Management Rights" + } + ], + "ioTypes": [ + { + "kind": "struct", + "name": "Asset", + "fields": [ + { + "name": "issuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "assetName", + "type": "uint64", + "byteOffset": 32 + } + ], + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "buyToken_input", + "fields": [ + { + "name": "indexOfICO", + "type": "uint32", + "byteOffset": 0 + }, + { + "name": "amount", + "type": "uint64", + "byteOffset": 8 + } + ], + "byteSize": 16, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "buyToken_output", + "fields": [ + { + "name": "returnCode", + "type": "sint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "createICO_input", + "fields": [ + { + "name": "issuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "address1", + "type": "id", + "byteOffset": 32 + }, + { + "name": "address2", + "type": "id", + "byteOffset": 64 + }, + { + "name": "address3", + "type": "id", + "byteOffset": 96 + }, + { + "name": "address4", + "type": "id", + "byteOffset": 128 + }, + { + "name": "address5", + "type": "id", + "byteOffset": 160 + }, + { + "name": "address6", + "type": "id", + "byteOffset": 192 + }, + { + "name": "address7", + "type": "id", + "byteOffset": 224 + }, + { + "name": "address8", + "type": "id", + "byteOffset": 256 + }, + { + "name": "address9", + "type": "id", + "byteOffset": 288 + }, + { + "name": "address10", + "type": "id", + "byteOffset": 320 + }, + { + "name": "assetName", + "type": "uint64", + "byteOffset": 352 + }, + { + "name": "price1", + "type": "uint64", + "byteOffset": 360 + }, + { + "name": "price2", + "type": "uint64", + "byteOffset": 368 + }, + { + "name": "price3", + "type": "uint64", + "byteOffset": 376 + }, + { + "name": "saleAmountForPhase1", + "type": "uint64", + "byteOffset": 384 + }, + { + "name": "saleAmountForPhase2", + "type": "uint64", + "byteOffset": 392 + }, + { + "name": "saleAmountForPhase3", + "type": "uint64", + "byteOffset": 400 + }, + { + "name": "percent1", + "type": "uint32", + "byteOffset": 408 + }, + { + "name": "percent2", + "type": "uint32", + "byteOffset": 412 + }, + { + "name": "percent3", + "type": "uint32", + "byteOffset": 416 + }, + { + "name": "percent4", + "type": "uint32", + "byteOffset": 420 + }, + { + "name": "percent5", + "type": "uint32", + "byteOffset": 424 + }, + { + "name": "percent6", + "type": "uint32", + "byteOffset": 428 + }, + { + "name": "percent7", + "type": "uint32", + "byteOffset": 432 + }, + { + "name": "percent8", + "type": "uint32", + "byteOffset": 436 + }, + { + "name": "percent9", + "type": "uint32", + "byteOffset": 440 + }, + { + "name": "percent10", + "type": "uint32", + "byteOffset": 444 + }, + { + "name": "startEpoch", + "type": "uint32", + "byteOffset": 448 + } + ], + "byteSize": 456, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "createICO_output", + "fields": [ + { + "name": "returnCode", + "type": "sint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "getICOInfo_input", + "fields": [ + { + "name": "indexOfICO", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "getICOInfo_output", + "fields": [ + { + "name": "creatorOfICO", + "type": "id", + "byteOffset": 0 + }, + { + "name": "issuer", + "type": "id", + "byteOffset": 32 + }, + { + "name": "address1", + "type": "id", + "byteOffset": 64 + }, + { + "name": "address2", + "type": "id", + "byteOffset": 96 + }, + { + "name": "address3", + "type": "id", + "byteOffset": 128 + }, + { + "name": "address4", + "type": "id", + "byteOffset": 160 + }, + { + "name": "address5", + "type": "id", + "byteOffset": 192 + }, + { + "name": "address6", + "type": "id", + "byteOffset": 224 + }, + { + "name": "address7", + "type": "id", + "byteOffset": 256 + }, + { + "name": "address8", + "type": "id", + "byteOffset": 288 + }, + { + "name": "address9", + "type": "id", + "byteOffset": 320 + }, + { + "name": "address10", + "type": "id", + "byteOffset": 352 + }, + { + "name": "assetName", + "type": "uint64", + "byteOffset": 384 + }, + { + "name": "price1", + "type": "uint64", + "byteOffset": 392 + }, + { + "name": "price2", + "type": "uint64", + "byteOffset": 400 + }, + { + "name": "price3", + "type": "uint64", + "byteOffset": 408 + }, + { + "name": "saleAmountForPhase1", + "type": "uint64", + "byteOffset": 416 + }, + { + "name": "saleAmountForPhase2", + "type": "uint64", + "byteOffset": 424 + }, + { + "name": "saleAmountForPhase3", + "type": "uint64", + "byteOffset": 432 + }, + { + "name": "remainingAmountForPhase1", + "type": "uint64", + "byteOffset": 440 + }, + { + "name": "remainingAmountForPhase2", + "type": "uint64", + "byteOffset": 448 + }, + { + "name": "remainingAmountForPhase3", + "type": "uint64", + "byteOffset": 456 + }, + { + "name": "percent1", + "type": "uint32", + "byteOffset": 464 + }, + { + "name": "percent2", + "type": "uint32", + "byteOffset": 468 + }, + { + "name": "percent3", + "type": "uint32", + "byteOffset": 472 + }, + { + "name": "percent4", + "type": "uint32", + "byteOffset": 476 + }, + { + "name": "percent5", + "type": "uint32", + "byteOffset": 480 + }, + { + "name": "percent6", + "type": "uint32", + "byteOffset": 484 + }, + { + "name": "percent7", + "type": "uint32", + "byteOffset": 488 + }, + { + "name": "percent8", + "type": "uint32", + "byteOffset": 492 + }, + { + "name": "percent9", + "type": "uint32", + "byteOffset": 496 + }, + { + "name": "percent10", + "type": "uint32", + "byteOffset": 500 + }, + { + "name": "startEpoch", + "type": "uint32", + "byteOffset": 504 + } + ], + "byteSize": 512, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "TransferShareManagementRights_input", + "fields": [ + { + "name": "asset", + "type": "Asset", + "byteOffset": 0 + }, + { + "name": "numberOfShares", + "type": "sint64", + "byteOffset": 40 + }, + { + "name": "newManagingContractIndex", + "type": "uint32", + "byteOffset": 48 + } + ], + "byteSize": 56, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "TransferShareManagementRights_output", + "fields": [ + { + "name": "transferredNumberOfShares", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + } + ], + "label": "Qubic ICO Portal", + "githubUrl": "https://github.com/qubic/core/blob/main/src/contracts/QIP.h", + "proposalUrl": "https://github.com/nineisten/qubicICOportal/blob/f6d09a05761f04af3556816c628fae66482889cb/README.md" + }, + { + "name": "QRAFFLE", + "contractIndex": 19, + "address": "TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXRFC", + "filename": "QRaffle.h", + "entries": [ + { + "kind": "function", + "name": "getRegisters", + "inputType": 1, + "inputTypeName": "getRegisters_input", + "outputTypeName": "getRegisters_output", + "inputSize": 8, + "outputSize": 648 + }, + { + "kind": "function", + "name": "getAnalytics", + "inputType": 2, + "inputTypeName": "getAnalytics_input", + "outputTypeName": "getAnalytics_output", + "inputSize": 1, + "outputSize": 96 + }, + { + "kind": "function", + "name": "getActiveProposal", + "inputType": 3, + "inputTypeName": "getActiveProposal_input", + "outputTypeName": "getActiveProposal_output", + "inputSize": 4, + "outputSize": 96 + }, + { + "kind": "function", + "name": "getEndedTokenRaffle", + "inputType": 4, + "inputTypeName": "getEndedTokenRaffle_input", + "outputTypeName": "getEndedTokenRaffle_output", + "inputSize": 4, + "outputSize": 96 + }, + { + "kind": "function", + "name": "getEndedQuRaffle", + "inputType": 5, + "inputTypeName": "getEndedQuRaffle_input", + "outputTypeName": "getEndedQuRaffle_output", + "inputSize": 4, + "outputSize": 64 + }, + { + "kind": "function", + "name": "getActiveTokenRaffle", + "inputType": 6, + "inputTypeName": "getActiveTokenRaffle_input", + "outputTypeName": "getActiveTokenRaffle_output", + "inputSize": 4, + "outputSize": 56 + }, + { + "kind": "function", + "name": "getEpochRaffleIndexes", + "inputType": 7, + "inputTypeName": "getEpochRaffleIndexes_input", + "outputTypeName": "getEpochRaffleIndexes_output", + "inputSize": 4, + "outputSize": 12 + }, + { + "kind": "function", + "name": "getQuRaffleEntryAmountPerUser", + "inputType": 8, + "inputTypeName": "getQuRaffleEntryAmountPerUser_input", + "outputTypeName": "getQuRaffleEntryAmountPerUser_output", + "inputSize": 32, + "outputSize": 16 + }, + { + "kind": "function", + "name": "getQuRaffleEntryAverageAmount", + "inputType": 9, + "inputTypeName": "getQuRaffleEntryAverageAmount_input", + "outputTypeName": "getQuRaffleEntryAverageAmount_output", + "inputSize": 1, + "outputSize": 16 + }, + { + "kind": "procedure", + "name": "registerInSystem", + "inputType": 1, + "inputTypeName": "registerInSystem_input", + "outputTypeName": "registerInSystem_output", + "inputSize": 1, + "outputSize": 4, + "displayName": "Register in System" + }, + { + "kind": "procedure", + "name": "logoutInSystem", + "inputType": 2, + "inputTypeName": "logoutInSystem_input", + "outputTypeName": "logoutInSystem_output", + "inputSize": 1, + "outputSize": 4, + "displayName": "Logout in System" + }, + { + "kind": "procedure", + "name": "submitEntryAmount", + "inputType": 3, + "inputTypeName": "submitEntryAmount_input", + "outputTypeName": "submitEntryAmount_output", + "inputSize": 8, + "outputSize": 4, + "displayName": "Submit Entry Amount" + }, + { + "kind": "procedure", + "name": "submitProposal", + "inputType": 4, + "inputTypeName": "submitProposal_input", + "outputTypeName": "submitProposal_output", + "inputSize": 48, + "outputSize": 4, + "displayName": "Submit Proposal" + }, + { + "kind": "procedure", + "name": "voteInProposal", + "inputType": 5, + "inputTypeName": "voteInProposal_input", + "outputTypeName": "voteInProposal_output", + "inputSize": 8, + "outputSize": 4, + "displayName": "Vote in Proposal" + }, + { + "kind": "procedure", + "name": "depositInQuRaffle", + "inputType": 6, + "inputTypeName": "depositInQuRaffle_input", + "outputTypeName": "depositInQuRaffle_output", + "inputSize": 1, + "outputSize": 4, + "displayName": "Deposit in Qu Raffle" + }, + { + "kind": "procedure", + "name": "depositInTokenRaffle", + "inputType": 7, + "inputTypeName": "depositInTokenRaffle_input", + "outputTypeName": "depositInTokenRaffle_output", + "inputSize": 4, + "outputSize": 4, + "displayName": "Deposit in Token Raffle" + }, + { + "kind": "procedure", + "name": "TransferShareManagementRights", + "inputType": 8, + "inputTypeName": "TransferShareManagementRights_input", + "outputTypeName": "TransferShareManagementRights_output", + "inputSize": 56, + "outputSize": 8, + "displayName": "Transfer Share Management Rights" + } + ], + "ioTypes": [ + { + "kind": "struct", + "name": "depositInQuRaffle_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "depositInQuRaffle_output", + "fields": [ + { + "name": "returnCode", + "type": "sint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "depositInTokenRaffle_input", + "fields": [ + { + "name": "indexOfTokenRaffle", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "depositInTokenRaffle_output", + "fields": [ + { + "name": "returnCode", + "type": "sint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "getActiveProposal_input", + "fields": [ + { + "name": "indexOfProposal", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "getActiveProposal_output", + "fields": [ + { + "name": "tokenIssuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "proposer", + "type": "id", + "byteOffset": 32 + }, + { + "name": "tokenName", + "type": "uint64", + "byteOffset": 64 + }, + { + "name": "entryAmount", + "type": "uint64", + "byteOffset": 72 + }, + { + "name": "nYes", + "type": "uint32", + "byteOffset": 80 + }, + { + "name": "nNo", + "type": "uint32", + "byteOffset": 84 + }, + { + "name": "returnCode", + "type": "sint32", + "byteOffset": 88 + } + ], + "byteSize": 96, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getActiveTokenRaffle_input", + "fields": [ + { + "name": "indexOfTokenRaffle", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "getActiveTokenRaffle_output", + "fields": [ + { + "name": "tokenIssuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "tokenName", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "entryAmount", + "type": "uint64", + "byteOffset": 40 + }, + { + "name": "numberOfMembers", + "type": "uint32", + "byteOffset": 48 + }, + { + "name": "returnCode", + "type": "sint32", + "byteOffset": 52 + } + ], + "byteSize": 56, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getAnalytics_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "getAnalytics_output", + "fields": [ + { + "name": "currentQuRaffleAmount", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "totalBurnAmount", + "type": "uint64", + "byteOffset": 8 + }, + { + "name": "totalCharityAmount", + "type": "uint64", + "byteOffset": 16 + }, + { + "name": "totalShareholderAmount", + "type": "uint64", + "byteOffset": 24 + }, + { + "name": "totalRegisterAmount", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "totalFeeAmount", + "type": "uint64", + "byteOffset": 40 + }, + { + "name": "totalWinnerAmount", + "type": "uint64", + "byteOffset": 48 + }, + { + "name": "largestWinnerAmount", + "type": "uint64", + "byteOffset": 56 + }, + { + "name": "numberOfRegisters", + "type": "uint32", + "byteOffset": 64 + }, + { + "name": "numberOfProposals", + "type": "uint32", + "byteOffset": 68 + }, + { + "name": "numberOfQuRaffleMembers", + "type": "uint32", + "byteOffset": 72 + }, + { + "name": "numberOfActiveTokenRaffle", + "type": "uint32", + "byteOffset": 76 + }, + { + "name": "numberOfEndedTokenRaffle", + "type": "uint32", + "byteOffset": 80 + }, + { + "name": "numberOfEntryAmountSubmitted", + "type": "uint32", + "byteOffset": 84 + }, + { + "name": "returnCode", + "type": "sint32", + "byteOffset": 88 + } + ], + "byteSize": 96, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getEndedQuRaffle_input", + "fields": [ + { + "name": "epoch", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "getEndedQuRaffle_output", + "fields": [ + { + "name": "epochWinner", + "type": "id", + "byteOffset": 0 + }, + { + "name": "receivedAmount", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "entryAmount", + "type": "uint64", + "byteOffset": 40 + }, + { + "name": "numberOfMembers", + "type": "uint32", + "byteOffset": 48 + }, + { + "name": "winnerIndex", + "type": "uint32", + "byteOffset": 52 + }, + { + "name": "returnCode", + "type": "sint32", + "byteOffset": 56 + } + ], + "byteSize": 64, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getEndedTokenRaffle_input", + "fields": [ + { + "name": "indexOfRaffle", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "getEndedTokenRaffle_output", + "fields": [ + { + "name": "epochWinner", + "type": "id", + "byteOffset": 0 + }, + { + "name": "tokenIssuer", + "type": "id", + "byteOffset": 32 + }, + { + "name": "tokenName", + "type": "uint64", + "byteOffset": 64 + }, + { + "name": "entryAmount", + "type": "uint64", + "byteOffset": 72 + }, + { + "name": "numberOfMembers", + "type": "uint32", + "byteOffset": 80 + }, + { + "name": "winnerIndex", + "type": "uint32", + "byteOffset": 84 + }, + { + "name": "epoch", + "type": "uint32", + "byteOffset": 88 + }, + { + "name": "returnCode", + "type": "sint32", + "byteOffset": 92 + } + ], + "byteSize": 96, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getEpochRaffleIndexes_input", + "fields": [ + { + "name": "epoch", + "type": "uint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "getEpochRaffleIndexes_output", + "fields": [ + { + "name": "StartIndex", + "type": "uint32", + "byteOffset": 0 + }, + { + "name": "EndIndex", + "type": "uint32", + "byteOffset": 4 + }, + { + "name": "returnCode", + "type": "sint32", + "byteOffset": 8 + } + ], + "byteSize": 12, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "getQuRaffleEntryAmountPerUser_input", + "fields": [ + { + "name": "user", + "type": "id", + "byteOffset": 0 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getQuRaffleEntryAmountPerUser_output", + "fields": [ + { + "name": "entryAmount", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "returnCode", + "type": "sint32", + "byteOffset": 8 + } + ], + "byteSize": 16, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getQuRaffleEntryAverageAmount_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "getQuRaffleEntryAverageAmount_output", + "fields": [ + { + "name": "entryAverageAmount", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "returnCode", + "type": "sint32", + "byteOffset": 8 + } + ], + "byteSize": 16, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "getRegisters_input", + "fields": [ + { + "name": "offset", + "type": "uint32", + "byteOffset": 0 + }, + { + "name": "limit", + "type": "uint32", + "byteOffset": 4 + } + ], + "byteSize": 8, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "getRegisters_output", + "fields": [ + { + "name": "register1", + "type": "id", + "byteOffset": 0 + }, + { + "name": "register2", + "type": "id", + "byteOffset": 32 + }, + { + "name": "register3", + "type": "id", + "byteOffset": 64 + }, + { + "name": "register4", + "type": "id", + "byteOffset": 96 + }, + { + "name": "register5", + "type": "id", + "byteOffset": 128 + }, + { + "name": "register6", + "type": "id", + "byteOffset": 160 + }, + { + "name": "register7", + "type": "id", + "byteOffset": 192 + }, + { + "name": "register8", + "type": "id", + "byteOffset": 224 + }, + { + "name": "register9", + "type": "id", + "byteOffset": 256 + }, + { + "name": "register10", + "type": "id", + "byteOffset": 288 + }, + { + "name": "register11", + "type": "id", + "byteOffset": 320 + }, + { + "name": "register12", + "type": "id", + "byteOffset": 352 + }, + { + "name": "register13", + "type": "id", + "byteOffset": 384 + }, + { + "name": "register14", + "type": "id", + "byteOffset": 416 + }, + { + "name": "register15", + "type": "id", + "byteOffset": 448 + }, + { + "name": "register16", + "type": "id", + "byteOffset": 480 + }, + { + "name": "register17", + "type": "id", + "byteOffset": 512 + }, + { + "name": "register18", + "type": "id", + "byteOffset": 544 + }, + { + "name": "register19", + "type": "id", + "byteOffset": 576 + }, + { + "name": "register20", + "type": "id", + "byteOffset": 608 + }, + { + "name": "returnCode", + "type": "sint32", + "byteOffset": 640 + } + ], + "byteSize": 648, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "logoutInSystem_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "logoutInSystem_output", + "fields": [ + { + "name": "returnCode", + "type": "sint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "registerInSystem_input", + "fields": [ + { + "name": "useQXMR", + "type": "bit", + "byteOffset": 0 + } + ], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "registerInSystem_output", + "fields": [ + { + "name": "returnCode", + "type": "sint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "submitEntryAmount_input", + "fields": [ + { + "name": "amount", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "submitEntryAmount_output", + "fields": [ + { + "name": "returnCode", + "type": "sint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "submitProposal_input", + "fields": [ + { + "name": "tokenIssuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "tokenName", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "entryAmount", + "type": "uint64", + "byteOffset": 40 + } + ], + "byteSize": 48, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "submitProposal_output", + "fields": [ + { + "name": "returnCode", + "type": "sint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "TransferShareManagementRights_input", + "fields": [ + { + "name": "tokenIssuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "tokenName", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "numberOfShares", + "type": "sint64", + "byteOffset": 40 + }, + { + "name": "newManagingContractIndex", + "type": "uint32", + "byteOffset": 48 + } + ], + "byteSize": 56, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "TransferShareManagementRights_output", + "fields": [ + { + "name": "transferredNumberOfShares", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "voteInProposal_input", + "fields": [ + { + "name": "indexOfProposal", + "type": "uint32", + "byteOffset": 0 + }, + { + "name": "yes", + "type": "bit", + "byteOffset": 4 + } + ], + "byteSize": 8, + "byteAlign": 4 + }, + { + "kind": "struct", + "name": "voteInProposal_output", + "fields": [ + { + "name": "returnCode", + "type": "sint32", + "byteOffset": 0 + } + ], + "byteSize": 4, + "byteAlign": 4 + } + ], + "label": "QRaffle", + "githubUrl": "https://github.com/qubic/core/blob/main/src/contracts/QRaffle.h" + }, + { + "name": "QRWA", + "contractIndex": 20, + "address": "UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHQEE", + "filename": "qRWA.h", + "entries": [ + { + "kind": "function", + "name": "GetGovParams", + "inputType": 1, + "inputTypeName": "GetGovParams_input", + "outputTypeName": "GetGovParams_output", + "inputSize": 1, + "outputSize": 184 + }, + { + "kind": "function", + "name": "GetGovPoll", + "inputType": 2, + "inputTypeName": "GetGovPoll_input", + "outputTypeName": "GetGovPoll_output", + "inputSize": 8, + "outputSize": 216 + }, + { + "kind": "function", + "name": "GetAssetReleasePoll", + "inputType": 3, + "inputTypeName": "GetAssetReleasePoll_input", + "outputTypeName": "GetAssetReleasePoll_output", + "inputSize": 8, + "outputSize": 152 + }, + { + "kind": "function", + "name": "GetTreasuryBalance", + "inputType": 4, + "inputTypeName": "GetTreasuryBalance_input", + "outputTypeName": "GetTreasuryBalance_output", + "inputSize": 1, + "outputSize": 8 + }, + { + "kind": "function", + "name": "GetDividendBalances", + "inputType": 5, + "inputTypeName": "GetDividendBalances_input", + "outputTypeName": "GetDividendBalances_output", + "inputSize": 1, + "outputSize": 32 + }, + { + "kind": "function", + "name": "GetTotalDistributed", + "inputType": 6, + "inputTypeName": "GetTotalDistributed_input", + "outputTypeName": "GetTotalDistributed_output", + "inputSize": 1, + "outputSize": 16 + }, + { + "kind": "function", + "name": "GetActiveAssetReleasePollIds", + "inputType": 7, + "inputTypeName": "GetActiveAssetReleasePollIds_input", + "outputTypeName": "GetActiveAssetReleasePollIds_output", + "inputSize": 1, + "outputSize": 520 + }, + { + "kind": "function", + "name": "GetActiveGovPollIds", + "inputType": 8, + "inputTypeName": "GetActiveGovPollIds_input", + "outputTypeName": "GetActiveGovPollIds_output", + "inputSize": 1, + "outputSize": 520 + }, + { + "kind": "function", + "name": "GetGeneralAssetBalance", + "inputType": 9, + "inputTypeName": "GetGeneralAssetBalance_input", + "outputTypeName": "GetGeneralAssetBalance_output", + "inputSize": 40, + "outputSize": 16 + }, + { + "kind": "function", + "name": "GetGeneralAssets", + "inputType": 10, + "inputTypeName": "GetGeneralAssets_input", + "outputTypeName": "GetGeneralAssets_output", + "inputSize": 1, + "outputSize": 49160 + }, + { + "kind": "procedure", + "name": "DonateToTreasury", + "inputType": 3, + "inputTypeName": "DonateToTreasury_input", + "outputTypeName": "DonateToTreasury_output", + "inputSize": 8, + "outputSize": 8, + "displayName": "Donate to Treasury" + }, + { + "kind": "procedure", + "name": "VoteGovParams", + "inputType": 4, + "inputTypeName": "VoteGovParams_input", + "outputTypeName": "VoteGovParams_output", + "inputSize": 184, + "outputSize": 8, + "displayName": "Vote Gov Params" + }, + { + "kind": "procedure", + "name": "CreateAssetReleasePoll", + "inputType": 5, + "inputTypeName": "CreateAssetReleasePoll_input", + "outputTypeName": "CreateAssetReleasePoll_output", + "inputSize": 112, + "outputSize": 16, + "displayName": "Create Asset Release Poll" + }, + { + "kind": "procedure", + "name": "VoteAssetRelease", + "inputType": 6, + "inputTypeName": "VoteAssetRelease_input", + "outputTypeName": "VoteAssetRelease_output", + "inputSize": 16, + "outputSize": 8, + "displayName": "Vote Asset Release" + }, + { + "kind": "procedure", + "name": "DepositGeneralAsset", + "inputType": 7, + "inputTypeName": "DepositGeneralAsset_input", + "outputTypeName": "DepositGeneralAsset_output", + "inputSize": 48, + "outputSize": 8, + "displayName": "Deposit General Asset" + }, + { + "kind": "procedure", + "name": "RevokeAssetManagementRights", + "inputType": 8, + "inputTypeName": "RevokeAssetManagementRights_input", + "outputTypeName": "RevokeAssetManagementRights_output", + "inputSize": 48, + "outputSize": 16, + "displayName": "Revoke Asset Management Rights" + } + ], + "ioTypes": [ + { + "kind": "struct", + "name": "Asset", + "fields": [ + { + "name": "issuer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "assetName", + "type": "uint64", + "byteOffset": 32 + } + ], + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "AssetReleaseProposal", + "fields": [ + { + "name": "proposalId", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "proposalName", + "type": "id", + "byteOffset": 8 + }, + { + "name": "asset", + "type": "Asset", + "byteOffset": 40 + }, + { + "name": "amount", + "type": "uint64", + "byteOffset": 80 + }, + { + "name": "destination", + "type": "id", + "byteOffset": 88 + }, + { + "name": "status", + "type": "uint64", + "byteOffset": 120 + }, + { + "name": "votesYes", + "type": "uint64", + "byteOffset": 128 + }, + { + "name": "votesNo", + "type": "uint64", + "byteOffset": 136 + } + ], + "byteSize": 144, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "CreateAssetReleasePoll_input", + "fields": [ + { + "name": "proposalName", + "type": "id", + "byteOffset": 0 + }, + { + "name": "asset", + "type": "Asset", + "byteOffset": 32 + }, + { + "name": "amount", + "type": "uint64", + "byteOffset": 72 + }, + { + "name": "destination", + "type": "id", + "byteOffset": 80 + } + ], + "byteSize": 112, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "CreateAssetReleasePoll_output", + "fields": [ + { + "name": "status", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "proposalId", + "type": "uint64", + "byteOffset": 8 + } + ], + "byteSize": 16, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "DepositGeneralAsset_input", + "fields": [ + { + "name": "asset", + "type": "Asset", + "byteOffset": 0 + }, + { + "name": "amount", + "type": "uint64", + "byteOffset": 40 + } + ], + "byteSize": 48, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "DepositGeneralAsset_output", + "fields": [ + { + "name": "status", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "DonateToTreasury_input", + "fields": [ + { + "name": "amount", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "DonateToTreasury_output", + "fields": [ + { + "name": "status", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetActiveAssetReleasePollIds_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "GetActiveAssetReleasePollIds_output", + "fields": [ + { + "name": "count", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "ids", + "type": "Array", + "byteOffset": 8 + } + ], + "byteSize": 520, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetActiveGovPollIds_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "GetActiveGovPollIds_output", + "fields": [ + { + "name": "count", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "ids", + "type": "Array", + "byteOffset": 8 + } + ], + "byteSize": 520, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetAssetReleasePoll_input", + "fields": [ + { + "name": "proposalId", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetAssetReleasePoll_output", + "fields": [ + { + "name": "proposal", + "type": "AssetReleaseProposal", + "byteOffset": 0 + }, + { + "name": "status", + "type": "uint64", + "byteOffset": 144 + } + ], + "byteSize": 152, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetDividendBalances_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "GetDividendBalances_output", + "fields": [ + { + "name": "revenuePoolA", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "revenuePoolB", + "type": "uint64", + "byteOffset": 8 + }, + { + "name": "qmineDividendPool", + "type": "uint64", + "byteOffset": 16 + }, + { + "name": "qrwaDividendPool", + "type": "uint64", + "byteOffset": 24 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetGeneralAssetBalance_input", + "fields": [ + { + "name": "asset", + "type": "Asset", + "byteOffset": 0 + } + ], + "byteSize": 40, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetGeneralAssetBalance_output", + "fields": [ + { + "name": "balance", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "status", + "type": "uint64", + "byteOffset": 8 + } + ], + "byteSize": 16, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetGeneralAssets_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "GetGeneralAssets_output", + "fields": [ + { + "name": "count", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "assets", + "type": "Array", + "byteOffset": 8 + }, + { + "name": "balances", + "type": "Array", + "byteOffset": 40968 + } + ], + "byteSize": 49160, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetGovParams_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "GetGovParams_output", + "fields": [ + { + "name": "params", + "type": "QRWAGovParams", + "byteOffset": 0 + } + ], + "byteSize": 184, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetGovPoll_input", + "fields": [ + { + "name": "proposalId", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetGovPoll_output", + "fields": [ + { + "name": "proposal", + "type": "QRWAGovProposal", + "byteOffset": 0 + }, + { + "name": "status", + "type": "uint64", + "byteOffset": 208 + } + ], + "byteSize": 216, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetTotalDistributed_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "GetTotalDistributed_output", + "fields": [ + { + "name": "totalQmineDistributed", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "totalQRWADistributed", + "type": "uint64", + "byteOffset": 8 + } + ], + "byteSize": 16, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetTreasuryBalance_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "GetTreasuryBalance_output", + "fields": [ + { + "name": "balance", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "QRWAGovParams", + "fields": [ + { + "name": "mAdminAddress", + "type": "id", + "byteOffset": 0 + }, + { + "name": "electricityAddress", + "type": "id", + "byteOffset": 32 + }, + { + "name": "maintenanceAddress", + "type": "id", + "byteOffset": 64 + }, + { + "name": "reinvestmentAddress", + "type": "id", + "byteOffset": 96 + }, + { + "name": "qmineDevAddress", + "type": "id", + "byteOffset": 128 + }, + { + "name": "electricityPercent", + "type": "uint64", + "byteOffset": 160 + }, + { + "name": "maintenancePercent", + "type": "uint64", + "byteOffset": 168 + }, + { + "name": "reinvestmentPercent", + "type": "uint64", + "byteOffset": 176 + } + ], + "byteSize": 184, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "QRWAGovProposal", + "fields": [ + { + "name": "proposalId", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "status", + "type": "uint64", + "byteOffset": 8 + }, + { + "name": "score", + "type": "uint64", + "byteOffset": 16 + }, + { + "name": "params", + "type": "QRWAGovParams", + "byteOffset": 24 + } + ], + "byteSize": 208, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "RevokeAssetManagementRights_input", + "fields": [ + { + "name": "asset", + "type": "Asset", + "byteOffset": 0 + }, + { + "name": "numberOfShares", + "type": "sint64", + "byteOffset": 40 + } + ], + "byteSize": 48, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "RevokeAssetManagementRights_output", + "fields": [ + { + "name": "transferredNumberOfShares", + "type": "sint64", + "byteOffset": 0 + }, + { + "name": "status", + "type": "uint64", + "byteOffset": 8 + } + ], + "byteSize": 16, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "VoteAssetRelease_input", + "fields": [ + { + "name": "proposalId", + "type": "uint64", + "byteOffset": 0 + }, + { + "name": "option", + "type": "uint64", + "byteOffset": 8 + } + ], + "byteSize": 16, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "VoteAssetRelease_output", + "fields": [ + { + "name": "status", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "VoteGovParams_input", + "fields": [ + { + "name": "proposal", + "type": "QRWAGovParams", + "byteOffset": 0 + } + ], + "byteSize": 184, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "VoteGovParams_output", + "fields": [ + { + "name": "status", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + } + ], + "label": "QRWA", + "githubUrl": "https://github.com/qubic/core/blob/main/src/contracts/qRWA.h" + }, + { + "name": "QRP", + "contractIndex": 21, + "address": "VAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAILLJ", + "filename": "QReservePool.h", + "entries": [ + { + "kind": "function", + "name": "GetAvailableReserve", + "inputType": 1, + "inputTypeName": "GetAvailableReserve_input", + "outputTypeName": "GetAvailableReserve_output" + }, + { + "kind": "function", + "name": "GetAllowedSC", + "inputType": 2, + "inputTypeName": "GetAllowedSC_input", + "outputTypeName": "GetAllowedSC_output" + }, + { + "kind": "procedure", + "name": "WithdrawReserve", + "inputType": 1, + "inputTypeName": "WithdrawReserve_input", + "outputTypeName": "WithdrawReserve_output", + "displayName": "Withdraw Reserve" + }, + { + "kind": "procedure", + "name": "AddAllowedSC", + "inputType": 2, + "inputTypeName": "AddAllowedSC_input", + "outputTypeName": "AddAllowedSC_output", + "displayName": "Add Allowed SC" + }, + { + "kind": "procedure", + "name": "RemoveAllowedSC", + "inputType": 3, + "inputTypeName": "RemoveAllowedSC_input", + "outputTypeName": "RemoveAllowedSC_output", + "displayName": "Remove Allowed SC" + } + ], + "ioTypes": [ + { + "kind": "struct", + "name": "AddAllowedSC_input", + "fields": [ + { + "name": "scIndex", + "type": "uint64" + } + ] + }, + { + "kind": "struct", + "name": "AddAllowedSC_output", + "fields": [ + { + "name": "returnCode", + "type": "uint8" + } + ] + }, + { + "kind": "struct", + "name": "GetAllowedSC_input", + "fields": [] + }, + { + "kind": "struct", + "name": "GetAllowedSC_output", + "fields": [ + { + "name": "allowedSC", + "type": "Array" + } + ] + }, + { + "kind": "struct", + "name": "GetAvailableReserve_input", + "fields": [] + }, + { + "kind": "struct", + "name": "GetAvailableReserve_output", + "fields": [ + { + "name": "availableReserve", + "type": "uint64" + } + ] + }, + { + "kind": "struct", + "name": "RemoveAllowedSC_input", + "fields": [ + { + "name": "scIndex", + "type": "uint64" + } + ] + }, + { + "kind": "struct", + "name": "RemoveAllowedSC_output", + "fields": [ + { + "name": "returnCode", + "type": "uint8" + } + ] + }, + { + "kind": "struct", + "name": "WithdrawReserve_input", + "fields": [ + { + "name": "revenue", + "type": "uint64" + } + ] + }, + { + "kind": "struct", + "name": "WithdrawReserve_output", + "fields": [ + { + "name": "allocatedRevenue", + "type": "uint64" + }, + { + "name": "returnCode", + "type": "uint8" + } + ] + } + ], + "label": "QReservePool", + "githubUrl": "https://github.com/qubic/core/blob/main/src/contracts/QReservePool.h" + }, + { + "name": "QTF", + "contractIndex": 22, + "address": "WAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVDQA", + "filename": "QThirtyFour.h", + "entries": [ + { + "kind": "function", + "name": "GetTicketPrice", + "inputType": 1, + "inputTypeName": "GetTicketPrice_input", + "outputTypeName": "GetTicketPrice_output" + }, + { + "kind": "function", + "name": "GetNextEpochData", + "inputType": 2, + "inputTypeName": "GetNextEpochData_input", + "outputTypeName": "GetNextEpochData_output" + }, + { + "kind": "function", + "name": "GetWinnerData", + "inputType": 3, + "inputTypeName": "GetWinnerData_input", + "outputTypeName": "GetWinnerData_output" + }, + { + "kind": "function", + "name": "GetPools", + "inputType": 4, + "inputTypeName": "GetPools_input", + "outputTypeName": "GetPools_output" + }, + { + "kind": "function", + "name": "GetSchedule", + "inputType": 5, + "inputTypeName": "GetSchedule_input", + "outputTypeName": "GetSchedule_output" + }, + { + "kind": "function", + "name": "GetDrawHour", + "inputType": 6, + "inputTypeName": "GetDrawHour_input", + "outputTypeName": "GetDrawHour_output" + }, + { + "kind": "function", + "name": "GetState", + "inputType": 7, + "inputTypeName": "GetState_input", + "outputTypeName": "GetState_output" + }, + { + "kind": "function", + "name": "GetFees", + "inputType": 8, + "inputTypeName": "GetFees_input", + "outputTypeName": "GetFees_output" + }, + { + "kind": "function", + "name": "EstimatePrizePayouts", + "inputType": 9, + "inputTypeName": "EstimatePrizePayouts_input", + "outputTypeName": "EstimatePrizePayouts_output" + }, + { + "kind": "procedure", + "name": "BuyTicket", + "inputType": 1, + "inputTypeName": "BuyTicket_input", + "outputTypeName": "BuyTicket_output", + "displayName": "Buy Ticket" + }, + { + "kind": "procedure", + "name": "SetPrice", + "inputType": 2, + "inputTypeName": "SetPrice_input", + "outputTypeName": "SetPrice_output", + "displayName": "Set Price" + }, + { + "kind": "procedure", + "name": "SetSchedule", + "inputType": 3, + "inputTypeName": "SetSchedule_input", + "outputTypeName": "SetSchedule_output", + "displayName": "Set Schedule" + }, + { + "kind": "procedure", + "name": "SetTargetJackpot", + "inputType": 4, + "inputTypeName": "SetTargetJackpot_input", + "outputTypeName": "SetTargetJackpot_output", + "displayName": "Set Target Jackpot" + }, + { + "kind": "procedure", + "name": "SetDrawHour", + "inputType": 5, + "inputTypeName": "SetDrawHour_input", + "outputTypeName": "SetDrawHour_output", + "displayName": "Set Draw Hour" + } + ], + "ioTypes": [ + { + "kind": "struct", + "name": "BuyTicket_input", + "fields": [ + { + "name": "randomValues", + "type": "Array" + } + ] + }, + { + "kind": "struct", + "name": "BuyTicket_output", + "fields": [ + { + "name": "returnCode", + "type": "uint8" + } + ] + }, + { + "kind": "struct", + "name": "EstimatePrizePayouts_input", + "fields": [ + { + "name": "k2WinnerCount", + "type": "uint64" + }, + { + "name": "k3WinnerCount", + "type": "uint64" + } + ] + }, + { + "kind": "struct", + "name": "EstimatePrizePayouts_output", + "fields": [ + { + "name": "k2PayoutPerWinner", + "type": "uint64" + }, + { + "name": "k3PayoutPerWinner", + "type": "uint64" + }, + { + "name": "k2MinFloor", + "type": "uint64" + }, + { + "name": "k3MinFloor", + "type": "uint64" + }, + { + "name": "perWinnerCap", + "type": "uint64" + }, + { + "name": "totalRevenue", + "type": "uint64" + }, + { + "name": "k2Pool", + "type": "uint64" + }, + { + "name": "k3Pool", + "type": "uint64" + } + ] + }, + { + "kind": "struct", + "name": "GetDrawHour_input", + "fields": [] + }, + { + "kind": "struct", + "name": "GetDrawHour_output", + "fields": [ + { + "name": "drawHour", + "type": "uint8" + } + ] + }, + { + "kind": "struct", + "name": "GetFees_input", + "fields": [] + }, + { + "kind": "struct", + "name": "GetFees_output", + "fields": [ + { + "name": "teamFeePercent", + "type": "uint8" + }, + { + "name": "distributionFeePercent", + "type": "uint8" + }, + { + "name": "winnerFeePercent", + "type": "uint8" + }, + { + "name": "burnPercent", + "type": "uint8" + }, + { + "name": "returnCode", + "type": "uint8" + } + ] + }, + { + "kind": "struct", + "name": "GetNextEpochData_input", + "fields": [] + }, + { + "kind": "struct", + "name": "GetNextEpochData_output", + "fields": [ + { + "name": "nextEpochData", + "type": "NextEpochData" + } + ] + }, + { + "kind": "struct", + "name": "GetPools_input", + "fields": [] + }, + { + "kind": "struct", + "name": "GetPools_output", + "fields": [ + { + "name": "pools", + "type": "PoolsSnapshot" + } + ] + }, + { + "kind": "struct", + "name": "GetSchedule_input", + "fields": [] + }, + { + "kind": "struct", + "name": "GetSchedule_output", + "fields": [ + { + "name": "schedule", + "type": "uint8" + } + ] + }, + { + "kind": "struct", + "name": "GetState_input", + "fields": [] + }, + { + "kind": "struct", + "name": "GetState_output", + "fields": [ + { + "name": "currentState", + "type": "uint8" + } + ] + }, + { + "kind": "struct", + "name": "GetTicketPrice_input", + "fields": [] + }, + { + "kind": "struct", + "name": "GetTicketPrice_output", + "fields": [ + { + "name": "ticketPrice", + "type": "uint64" + } + ] + }, + { + "kind": "struct", + "name": "GetWinnerData_input", + "fields": [] + }, + { + "kind": "struct", + "name": "GetWinnerData_output", + "fields": [ + { + "name": "winnerData", + "type": "WinnerData" + } + ] + }, + { + "kind": "struct", + "name": "NextEpochData", + "fields": [ + { + "name": "newTicketPrice", + "type": "uint64" + }, + { + "name": "newTargetJackpot", + "type": "uint64" + }, + { + "name": "newSchedule", + "type": "uint8" + }, + { + "name": "newDrawHour", + "type": "uint8" + } + ] + }, + { + "kind": "struct", + "name": "PlayerData", + "fields": [ + { + "name": "player", + "type": "id" + }, + { + "name": "randomValues", + "type": "Array" + } + ] + }, + { + "kind": "struct", + "name": "PoolsSnapshot", + "fields": [ + { + "name": "jackpot", + "type": "uint64" + }, + { + "name": "reserve", + "type": "uint64" + }, + { + "name": "targetJackpot", + "type": "uint64" + }, + { + "name": "frActive", + "type": "uint8" + }, + { + "name": "roundsSinceK4", + "type": "uint16" + } + ] + }, + { + "kind": "struct", + "name": "SetDrawHour_input", + "fields": [ + { + "name": "newDrawHour", + "type": "uint8" + } + ] + }, + { + "kind": "struct", + "name": "SetDrawHour_output", + "fields": [ + { + "name": "returnCode", + "type": "uint8" + } + ] + }, + { + "kind": "struct", + "name": "SetPrice_input", + "fields": [ + { + "name": "newPrice", + "type": "uint64" + } + ] + }, + { + "kind": "struct", + "name": "SetPrice_output", + "fields": [ + { + "name": "returnCode", + "type": "uint8" + } + ] + }, + { + "kind": "struct", + "name": "SetSchedule_input", + "fields": [ + { + "name": "newSchedule", + "type": "uint8" + } + ] + }, + { + "kind": "struct", + "name": "SetSchedule_output", + "fields": [ + { + "name": "returnCode", + "type": "uint8" + } + ] + }, + { + "kind": "struct", + "name": "SetTargetJackpot_input", + "fields": [ + { + "name": "newTargetJackpot", + "type": "uint64" + } + ] + }, + { + "kind": "struct", + "name": "SetTargetJackpot_output", + "fields": [ + { + "name": "returnCode", + "type": "uint8" + } + ] + }, + { + "kind": "struct", + "name": "WinnerData", + "fields": [ + { + "name": "winners", + "type": "Array" + }, + { + "name": "winnerValues", + "type": "Array" + }, + { + "name": "winnerCounter", + "type": "uint64" + }, + { + "name": "epoch", + "type": "uint16" + } + ] + } + ], + "label": "QThirtyFour", + "githubUrl": "https://github.com/qubic/core/blob/main/src/contracts/QThirtyFour.h" + }, + { + "name": "QDUEL", + "contractIndex": 23, + "address": "XAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXNMD", + "filename": "QDuel.h", + "entries": [ + { + "kind": "function", + "name": "GetPercentFees", + "inputType": 1, + "inputTypeName": "GetPercentFees_input", + "outputTypeName": "GetPercentFees_output", + "inputSize": 1, + "outputSize": 16 + }, + { + "kind": "function", + "name": "GetRooms", + "inputType": 2, + "inputTypeName": "GetRooms_input", + "outputTypeName": "GetRooms_output", + "inputSize": 1, + "outputSize": 61448 + }, + { + "kind": "function", + "name": "GetTTLHours", + "inputType": 3, + "inputTypeName": "GetTTLHours_input", + "outputTypeName": "GetTTLHours_output", + "inputSize": 1, + "outputSize": 2 + }, + { + "kind": "function", + "name": "GetUserProfile", + "inputType": 4, + "inputTypeName": "GetUserProfile_input", + "outputTypeName": "GetUserProfile_output", + "inputSize": 1, + "outputSize": 80 + }, + { + "kind": "procedure", + "name": "CreateRoom", + "inputType": 1, + "inputTypeName": "CreateRoom_input", + "outputTypeName": "CreateRoom_output", + "inputSize": 56, + "outputSize": 1, + "displayName": "Create Room" + }, + { + "kind": "procedure", + "name": "ConnectToRoom", + "inputType": 2, + "inputTypeName": "ConnectToRoom_input", + "outputTypeName": "ConnectToRoom_output", + "inputSize": 32, + "outputSize": 1, + "displayName": "Connect to Room" + }, + { + "kind": "procedure", + "name": "SetPercentFees", + "inputType": 3, + "inputTypeName": "SetPercentFees_input", + "outputTypeName": "SetPercentFees_output", + "inputSize": 3, + "outputSize": 1, + "displayName": "Set Percent Fees" + }, + { + "kind": "procedure", + "name": "SetTTLHours", + "inputType": 4, + "inputTypeName": "SetTTLHours_input", + "outputTypeName": "SetTTLHours_output", + "inputSize": 1, + "outputSize": 1, + "displayName": "Set TTL Hours" + }, + { + "kind": "procedure", + "name": "Deposit", + "inputType": 5, + "inputTypeName": "Deposit_input", + "outputTypeName": "Deposit_output", + "inputSize": 1, + "outputSize": 1, + "displayName": "Deposit" + }, + { + "kind": "procedure", + "name": "Withdraw", + "inputType": 6, + "inputTypeName": "Withdraw_input", + "outputTypeName": "Withdraw_output", + "inputSize": 8, + "outputSize": 1, + "displayName": "Withdraw" + } + ], + "ioTypes": [ + { + "kind": "struct", + "name": "ConnectToRoom_input", + "fields": [ + { + "name": "roomId", + "type": "id", + "byteOffset": 0 + } + ], + "byteSize": 32, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "ConnectToRoom_output", + "fields": [ + { + "name": "returnCode", + "type": "uint8", + "byteOffset": 0 + } + ], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "CreateRoom_input", + "fields": [ + { + "name": "allowedPlayer", + "type": "id", + "byteOffset": 0 + }, + { + "name": "stake", + "type": "sint64", + "byteOffset": 32 + }, + { + "name": "raiseStep", + "type": "sint64", + "byteOffset": 40 + }, + { + "name": "maxStake", + "type": "sint64", + "byteOffset": 48 + } + ], + "byteSize": 56, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "CreateRoom_output", + "fields": [ + { + "name": "returnCode", + "type": "uint8", + "byteOffset": 0 + } + ], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "DateAndTime", + "fields": [ + { + "name": "value", + "type": "uint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "Deposit_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "Deposit_output", + "fields": [ + { + "name": "returnCode", + "type": "uint8", + "byteOffset": 0 + } + ], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "GetPercentFees_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "GetPercentFees_output", + "fields": [ + { + "name": "devFeePercentBps", + "type": "uint8", + "byteOffset": 0 + }, + { + "name": "burnFeePercentBps", + "type": "uint8", + "byteOffset": 1 + }, + { + "name": "shareholdersFeePercentBps", + "type": "uint8", + "byteOffset": 2 + }, + { + "name": "percentScale", + "type": "uint16", + "byteOffset": 4 + }, + { + "name": "returnCode", + "type": "uint64", + "byteOffset": 8 + } + ], + "byteSize": 16, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetRooms_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "GetRooms_output", + "fields": [ + { + "name": "rooms", + "type": "Array", + "byteOffset": 0 + }, + { + "name": "returnCode", + "type": "uint8", + "byteOffset": 61440 + } + ], + "byteSize": 61448, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "GetTTLHours_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "GetTTLHours_output", + "fields": [ + { + "name": "ttlHours", + "type": "uint8", + "byteOffset": 0 + }, + { + "name": "returnCode", + "type": "uint8", + "byteOffset": 1 + } + ], + "byteSize": 2, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "GetUserProfile_input", + "fields": [], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "GetUserProfile_output", + "fields": [ + { + "name": "roomId", + "type": "id", + "byteOffset": 0 + }, + { + "name": "depositedAmount", + "type": "uint64", + "byteOffset": 32 + }, + { + "name": "locked", + "type": "uint64", + "byteOffset": 40 + }, + { + "name": "stake", + "type": "uint64", + "byteOffset": 48 + }, + { + "name": "raiseStep", + "type": "uint64", + "byteOffset": 56 + }, + { + "name": "maxStake", + "type": "uint64", + "byteOffset": 64 + }, + { + "name": "returnCode", + "type": "uint8", + "byteOffset": 72 + } + ], + "byteSize": 80, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "RoomInfo", + "fields": [ + { + "name": "roomId", + "type": "id", + "byteOffset": 0 + }, + { + "name": "owner", + "type": "id", + "byteOffset": 32 + }, + { + "name": "allowedPlayer", + "type": "id", + "byteOffset": 64 + }, + { + "name": "amount", + "type": "sint64", + "byteOffset": 96 + }, + { + "name": "closeTimer", + "type": "uint64", + "byteOffset": 104 + }, + { + "name": "lastUpdate", + "type": "DateAndTime", + "byteOffset": 112 + } + ], + "byteSize": 120, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "SetPercentFees_input", + "fields": [ + { + "name": "devFeePercentBps", + "type": "uint8", + "byteOffset": 0 + }, + { + "name": "burnFeePercentBps", + "type": "uint8", + "byteOffset": 1 + }, + { + "name": "shareholdersFeePercentBps", + "type": "uint8", + "byteOffset": 2 + } + ], + "byteSize": 3, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "SetPercentFees_output", + "fields": [ + { + "name": "returnCode", + "type": "uint8", + "byteOffset": 0 + } + ], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "SetTTLHours_input", + "fields": [ + { + "name": "ttlHours", + "type": "uint8", + "byteOffset": 0 + } + ], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "SetTTLHours_output", + "fields": [ + { + "name": "returnCode", + "type": "uint8", + "byteOffset": 0 + } + ], + "byteSize": 1, + "byteAlign": 1 + }, + { + "kind": "struct", + "name": "Withdraw_input", + "fields": [ + { + "name": "amount", + "type": "sint64", + "byteOffset": 0 + } + ], + "byteSize": 8, + "byteAlign": 8 + }, + { + "kind": "struct", + "name": "Withdraw_output", + "fields": [ + { + "name": "returnCode", + "type": "uint8", + "byteOffset": 0 + } + ], + "byteSize": 1, + "byteAlign": 1 + } + ], + "label": "QDuel", + "githubUrl": "https://github.com/qubic/core/blob/main/src/contracts/QDuel.h" + } + ] +} diff --git a/index.html b/index.html index 766ec90..c6eae37 100644 --- a/index.html +++ b/index.html @@ -395,12 +395,15 @@

General Data (Shared)

Smart Contracts

Comprehensive list of Qubic smart contracts including names, indexes, procedures, - GitHub source links, and addresses. This data is automatically updated weekly from the + GitHub source links, and addresses. The canonical runtime contracts registry is also published with + a signed manifest for client-side integrity verification. This data is automatically updated weekly from the qubic-core repository.

@@ -678,4 +681,4 @@

Locales

- \ No newline at end of file + diff --git a/scripts/build_dist.py b/scripts/build_dist.py index 106d2d1..4965b7e 100644 --- a/scripts/build_dist.py +++ b/scripts/build_dist.py @@ -2,7 +2,9 @@ import argparse import hashlib import json +import os import shutil +import subprocess from datetime import datetime, timezone from pathlib import Path from typing import Any, Dict, List, Tuple @@ -108,7 +110,45 @@ def generate_version_file(root_dir: Path, version: str, environment: str) -> Pat write_json(version_path, version_data, pretty=True) return version_path -def build_product(product_name: str, src_dir: Path, dist_dir: Path, version: str, environment: str) -> None: +def sign_contracts_registry_if_enabled(root_dir: Path, environment: str) -> None: + registry_path = root_dir / "contracts_registry.json" + if not registry_path.exists(): + return + + private_key = os.environ.get("CONTRACTS_REGISTRY_SIGNING_PRIVATE_KEY") + if not private_key: + raise RuntimeError( + "CONTRACTS_REGISTRY_SIGNING_PRIVATE_KEY is required when --sign-contracts-registry is enabled" + ) + + key_id = os.environ.get("CONTRACTS_REGISTRY_SIGNING_KEY_ID", "default") + env_path = "v1" if environment == "production" else ("staging/v1" if environment == "staging" else "dev/v1") + registry_url = f"https://static.qubic.org/{env_path}/general/data/contracts_registry.json" + manifest_path = root_dir / "contracts_registry.manifest.json" + + cmd = [ + "node", + "scripts/sign_contracts_registry.mjs", + "--registry-file", + str(registry_path), + "--manifest-file", + str(manifest_path), + "--registry-url", + registry_url, + "--key-id", + key_id, + ] + subprocess.run(cmd, check=True, cwd=Path.cwd(), env=os.environ.copy()) + print(f"Signed contracts registry manifest: {manifest_path}") + +def build_product( + product_name: str, + src_dir: Path, + dist_dir: Path, + version: str, + environment: str, + sign_contracts_registry: bool, +) -> None: """Build a single product.""" print(f"\n{'='*60}") print(f"Building product: {product_name}") @@ -127,6 +167,9 @@ def build_product(product_name: str, src_dir: Path, dist_dir: Path, version: str print(f"Bundle: {bundle_path}") print(f"Bundle (min): {bundle_min_path}") + if sign_contracts_registry and product_name == "general": + sign_contracts_registry_if_enabled(dist_dir, environment) + # Generate version.json version_path = generate_version_file(dist_dir, version, environment) print(f"Version: {version_path}") @@ -164,6 +207,9 @@ def main(): # Build all products (production) python3 scripts/build_dist.py --product all --version v1.2.3 + # Build all products and sign contracts registry manifest + CONTRACTS_REGISTRY_SIGNING_PRIVATE_KEY=\"...\" python3 scripts/build_dist.py --product all --version v1.2.3 --sign-contracts-registry + # Build for staging environment python3 scripts/build_dist.py --product all --version v1.2.3-rc.1 --environment staging @@ -175,6 +221,11 @@ def main(): ap.add_argument("--dist-dir", default="dist", help="Path to dist directory (default: dist)") ap.add_argument("--environment", default="production", choices=["dev", "staging", "production"], help="Build environment") ap.add_argument("--version", required=True, help="Version string (e.g., v1.2.3 or v1.2.3-rc.1)") + ap.add_argument( + "--sign-contracts-registry", + action="store_true", + help="Generate contracts_registry.manifest.json with Ed25519 signature for general data", + ) args = ap.parse_args() base_dir = Path.cwd() @@ -216,7 +267,14 @@ def main(): product_dist_dir.mkdir(parents=True, exist_ok=True) # Build the product - build_product(product_name, src_dir, product_dist_dir, args.version, args.environment) + build_product( + product_name, + src_dir, + product_dist_dir, + args.version, + args.environment, + args.sign_contracts_registry, + ) # Copy index.html to dist root (for landing page) index_html = base_dir / "index.html" diff --git a/scripts/sign_contracts_registry.mjs b/scripts/sign_contracts_registry.mjs new file mode 100755 index 0000000..c4aa7d2 --- /dev/null +++ b/scripts/sign_contracts_registry.mjs @@ -0,0 +1,133 @@ +#!/usr/bin/env node +import { createHash, createPrivateKey, sign } from "node:crypto"; +import { readFile, writeFile } from "node:fs/promises"; +import { resolve } from "node:path"; + +const args = parseArgs(process.argv.slice(2)); + +const registryPath = resolve(args.registryFile); +const manifestPath = resolve(args.manifestFile); +const privateKeyPemRaw = process.env[args.privateKeyEnv]; + +if (!privateKeyPemRaw) { + throw new Error( + `Missing ${args.privateKeyEnv}. Cannot sign contracts registry manifest without a private key.`, + ); +} + +const privateKeyPem = privateKeyPemRaw.replace(/\\n/g, "\n"); +const privateKey = createPrivateKey(privateKeyPem); + +const registryText = await readFile(registryPath, "utf8"); +const registry = JSON.parse(registryText); + +const registryHash = sha256Prefixed(registryText); +const sourceRevision = + args.sourceRevision ?? deriveSourceRevision(registry) ?? `generatedAt:${new Date().toISOString()}`; + +const payload = { + schema_version: 1, + registry_hash: registryHash, + generated_at: new Date().toISOString(), + source_revision: sourceRevision, + signature_algorithm: "ed25519", + ...(args.registryUrl ? { registry_url: args.registryUrl } : {}), + ...(args.keyId ? { key_id: args.keyId } : {}), +}; + +const payloadText = serializeManifestPayload(payload); +const signature = sign(null, Buffer.from(payloadText, "utf8"), privateKey).toString("base64"); + +const manifest = { + ...payload, + signature, +}; + +await writeFile(manifestPath, `${JSON.stringify(manifest, null, 2)}\n`, "utf8"); +console.log(`Signed contracts registry manifest: ${manifestPath}`); + +function parseArgs(argv) { + let registryFile = "dist/v1/general/data/contracts_registry.json"; + let manifestFile = "dist/v1/general/data/contracts_registry.manifest.json"; + let sourceRevision; + let registryUrl; + let keyId; + let privateKeyEnv = "CONTRACTS_REGISTRY_SIGNING_PRIVATE_KEY"; + + for (let i = 0; i < argv.length; i++) { + const arg = argv[i]; + if (arg === "--registry-file") { + registryFile = argv[++i] ?? registryFile; + continue; + } + if (arg === "--manifest-file") { + manifestFile = argv[++i] ?? manifestFile; + continue; + } + if (arg === "--source-revision") { + sourceRevision = argv[++i] ?? sourceRevision; + continue; + } + if (arg === "--registry-url") { + registryUrl = argv[++i] ?? registryUrl; + continue; + } + if (arg === "--key-id") { + keyId = argv[++i] ?? keyId; + continue; + } + if (arg === "--private-key-env") { + privateKeyEnv = argv[++i] ?? privateKeyEnv; + continue; + } + throw new Error(`Unknown argument: ${arg}`); + } + + return { + registryFile, + manifestFile, + sourceRevision, + registryUrl, + keyId, + privateKeyEnv, + }; +} + +function deriveSourceRevision(registry) { + const sources = registry?.metadata?.sources; + if (!Array.isArray(sources) || sources.length === 0) { + return undefined; + } + + const parts = sources.map((source) => { + if (!source || typeof source !== "object") return "unknown"; + const name = typeof source.name === "string" ? source.name : "unknown"; + const revision = typeof source.revision === "string" ? source.revision : undefined; + const hash = typeof source.hash === "string" ? source.hash : undefined; + + if (revision && hash) return `${name}@${revision}#${hash}`; + if (revision) return `${name}@${revision}`; + if (hash) return `${name}#${hash}`; + return name; + }); + + return parts.join("|"); +} + +function sha256Prefixed(content) { + const hash = createHash("sha256").update(content, "utf8").digest("hex"); + return `sha256:${hash}`; +} + +function serializeManifestPayload(payload) { + const body = { + schema_version: payload.schema_version, + registry_hash: payload.registry_hash, + generated_at: payload.generated_at, + source_revision: payload.source_revision, + signature_algorithm: payload.signature_algorithm, + ...(payload.registry_url ? { registry_url: payload.registry_url } : {}), + ...(payload.key_id ? { key_id: payload.key_id } : {}), + }; + return JSON.stringify(body); +} diff --git a/scripts/update_contracts_registry.py b/scripts/update_contracts_registry.py new file mode 100755 index 0000000..434190a --- /dev/null +++ b/scripts/update_contracts_registry.py @@ -0,0 +1,106 @@ +#!/usr/bin/env python3 +"""Refresh data/contracts_registry.json from qubic.ts generated source.""" + +from __future__ import annotations + +import argparse +import json +import os +from pathlib import Path +from typing import Any + +import requests + +RAW_SOURCE_URL = ( + "https://raw.githubusercontent.com/qubic/qubic.ts/main/" + "packages/contracts/src/generated/core-registry.source.json" +) +API_SOURCE_URL = ( + "https://api.github.com/repos/qubic/qubic.ts/contents/" + "packages/contracts/src/generated/core-registry.source.json?ref=main" +) + + +def fetch_json(url: str, token: str | None = None, raw_accept: bool = False) -> Any: + headers: dict[str, str] = {} + if token: + headers["Authorization"] = f"Bearer {token}" + if raw_accept: + headers["Accept"] = "application/vnd.github.raw+json" + + response = requests.get(url, timeout=30, headers=headers) + response.raise_for_status() + return response.json() + +def fetch_registry_payload(source_url: str | None) -> Any: + token = os.environ.get("QUBIC_TS_GITHUB_TOKEN") or os.environ.get("GITHUB_TOKEN") + + if source_url: + return fetch_json(source_url, token=token, raw_accept="api.github.com" in source_url) + + attempts: list[tuple[str, str | None, bool]] = [] + if token: + attempts.append((API_SOURCE_URL, token, True)) + attempts.append((RAW_SOURCE_URL, None, False)) + + errors: list[str] = [] + for url, auth_token, raw_accept in attempts: + try: + return fetch_json(url, token=auth_token, raw_accept=raw_accept) + except Exception as error: # pragma: no cover - best-effort multi-source fetch + errors.append(f"{url}: {error}") + + raise RuntimeError("Unable to fetch contracts registry source:\n" + "\n".join(errors)) + + +def validate_registry_shape(value: Any) -> None: + if not isinstance(value, dict): + raise ValueError("registry payload must be an object") + if value.get("version") != 1: + raise ValueError("registry.version must be 1") + if not isinstance(value.get("metadata"), dict): + raise ValueError("registry.metadata must be an object") + contracts = value.get("contracts") + if not isinstance(contracts, list): + raise ValueError("registry.contracts must be an array") + + +def write_registry(path: Path, data: Any) -> None: + path.parent.mkdir(parents=True, exist_ok=True) + path.write_text(json.dumps(data, indent=2, ensure_ascii=False) + "\n", encoding="utf-8") + + +def parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser(description="Refresh data/contracts_registry.json") + parser.add_argument( + "--source-url", + default=None, + help="Optional explicit source URL. Defaults to token-aware multi-source fetch.", + ) + parser.add_argument( + "--output", + default="data/contracts_registry.json", + help="Output file path", + ) + return parser.parse_args() + + +def main() -> int: + args = parse_args() + payload = fetch_registry_payload(args.source_url) + validate_registry_shape(payload) + + output_path = Path(args.output) + write_registry(output_path, payload) + + contracts = payload.get("contracts", []) + generated_at = payload.get("metadata", {}).get("generatedAt", "unknown") + print( + f"Updated {output_path} " + f"(contracts={len(contracts)}, generatedAt={generated_at})" + ) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main())