From 9e85a048d0cb7217f919e828dec56cc86b5cf31b Mon Sep 17 00:00:00 2001 From: dkijania Date: Sat, 4 Apr 2026 21:51:41 +0200 Subject: [PATCH 1/2] Rewrite SDK: replace CodaClient with mina-sdk Complete rewrite of the Python client library: - Replace CodaClient.py with modern mina_sdk package (src layout) - Modern packaging with pyproject.toml (hatchling), drop setup.py - MinaDaemonClient with typed responses, retry logic, error handling - Currency class modernized (nanomina naming, comparisons, from_graphql) - Typed dataclasses: AccountData, DaemonStatus, BlockInfo, PeerInfo, etc. - GraphQL queries for: sync status, daemon status, network ID, accounts, best chain, peers, pooled commands, payments, delegations, snark worker - 38 unit tests with respx mocking - Copy current graphql_schema.json from monorepo - Usage examples and updated README Co-Authored-By: Claude Opus 4.6 (1M context) --- .gitignore | 16 +- .style.yapf | 2 - CodaClient.py | 689 - Makefile | 11 - README.md | 108 +- examples/basic_usage.py | 60 + pyproject.toml | 59 + setup.py | 47 - src/mina_sdk/__init__.py | 7 + src/mina_sdk/daemon/__init__.py | 5 + src/mina_sdk/daemon/client.py | 383 + src/mina_sdk/daemon/queries.py | 131 + .../mina_sdk/schema/.gitkeep | 0 src/mina_sdk/schema/graphql_schema.json | 16092 ++++++++++++++++ src/mina_sdk/types.py | 225 + tests/__init__.py | 0 tests/snapshots/snap_test_client.py | 181 - tests/test_client.py | 102 - tests/test_currency.py | 46 - tests/test_daemon_client.py | 252 + tests/test_types.py | 111 + 21 files changed, 17432 insertions(+), 1095 deletions(-) delete mode 100644 .style.yapf delete mode 100644 CodaClient.py delete mode 100644 Makefile create mode 100644 examples/basic_usage.py create mode 100644 pyproject.toml delete mode 100644 setup.py create mode 100644 src/mina_sdk/__init__.py create mode 100644 src/mina_sdk/daemon/__init__.py create mode 100644 src/mina_sdk/daemon/client.py create mode 100644 src/mina_sdk/daemon/queries.py rename tests/snapshots/__init__.py => src/mina_sdk/schema/.gitkeep (100%) create mode 100644 src/mina_sdk/schema/graphql_schema.json create mode 100644 src/mina_sdk/types.py create mode 100644 tests/__init__.py delete mode 100644 tests/snapshots/snap_test_client.py delete mode 100644 tests/test_client.py delete mode 100644 tests/test_currency.py create mode 100644 tests/test_daemon_client.py create mode 100644 tests/test_types.py diff --git a/.gitignore b/.gitignore index 05b0da6..12ce6ea 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,12 @@ -*egg-info/ -build/* -dist/* -__pycache__ +__pycache__/ +*.py[cod] +*.egg-info/ +*.egg +dist/ +build/ +.venv/ +.pytest_cache/ +.ruff_cache/ +*.so +.coverage +htmlcov/ diff --git a/.style.yapf b/.style.yapf deleted file mode 100644 index 47ca4cc..0000000 --- a/.style.yapf +++ /dev/null @@ -1,2 +0,0 @@ -[style] -based_on_style = chromium \ No newline at end of file diff --git a/CodaClient.py b/CodaClient.py deleted file mode 100644 index be58429..0000000 --- a/CodaClient.py +++ /dev/null @@ -1,689 +0,0 @@ -#!/usr/bin/python3 - -import random -import requests -import time -import json -import asyncio -import websockets -import logging -from enum import Enum - -class CurrencyFormat(Enum): - """An Enum representing different formats of Currency in coda. - - Constants: - WHOLE - represents whole coda (1 whole coda == 10^9 nanocodas) - NANO - represents the atomic unit of coda - """ - WHOLE = 1 - NANO = 2 - -class CurrencyUnderflow(Exception): - pass - -class Currency(): - """A convenience wrapper around interacting with coda currency values. - - This class supports performing math on Currency values of differing formats. - Currency instances can be added or subtracted. Currency instances can also be - scaled through multiplication (either against another Currency instance or a - int scalar). - """ - - @classmethod - def __nanocodas_from_int(_cls, n): - return n * 1000000000 - - @classmethod - def __nanocodas_from_string(_cls, s): - segments = s.split('.') - if len(segments) == 1: - return int(segments[0]) - elif len(segments) == 2: - [l, r] = segments - if len(r) <= 9: - return int(l + r + ('0' * (9 - len(r)))) - else: - raise Exception('invalid coda currency format: %s' % s) - - @classmethod - def random(_cls, lower_bound, upper_bound): - """Generates a random Currency instance between a provided lower_bound and upper_bound - - Arguments: - lower_bound {Currency} -- A Currency instance representing the lower bound for the randomly generated value - upper_bound {Currency} -- A Currency instance representing the upper bound for the randomly generated value - - Returns: - Currency - A randomly generated Currency instance between the lower_bound and upper_bound - """ - if not (isinstance(lower_bound, Currency) and isinstance(upper_bound, Currency)): - raise Exception('invalid call to Currency.random: lower and upper bound must be instances of Currency') - if not upper_bound.nanocodas() >= lower_bound.nanocodas(): - raise Exception('invalid call to Currency.random: upper_bound is not greater than lower_bound') - if lower_bound == upper_bound: - return lower_bound - bound_range = upper_bound.nanocodas() - lower_bound.nanocodas() - delta = random.randint(0, bound_range) - return lower_bound + Currency(delta, format=CurrencyFormat.NANO) - - def __init__(self, value, format=CurrencyFormat.WHOLE): - """Constructs a new Currency instance. Values of different CurrencyFormats may be passed in to construct the instance. - - Arguments: - value {int|float|string} - The value to construct the Currency instance from - format {CurrencyFormat} - The representation format of the value - - Return: - Currency - The newly constructed Currency instance - - In the case of format=CurrencyFormat.WHOLE, then it is interpreted as value * 10^9 nanocodas. - In the case of format=CurrencyFormat.NANO, value is only allowed to be an int, as there can be no decimal point for nanocodas. - """ - if format == CurrencyFormat.WHOLE: - if isinstance(value, int): - self.__nanocodas = Currency.__nanocodas_from_int(value) - elif isinstance(value, float): - self.__nanocodas = Currency.__nanocodas_from_string(str(value)) - elif isinstance(value, str): - self.__nanocodas = Currency.__nanocodas_from_string(value) - else: - raise Exception('cannot construct whole Currency from %s' % type(value)) - elif format == CurrencyFormat.NANO: - if isinstance(value, int): - self.__nanocodas = value - else: - raise Exception('cannot construct nano Currency from %s' % type(value)) - else: - raise Exception('invalid Currency format %s' % format) - - def decimal_format(self): - """Computes the string decimal format representation of a Currency instance. - - Return: - str - The decimal format representation of the Currency instance - """ - s = str(self.__nanocodas) - if len(s) > 9: - return s[:-9] + '.' + s[-9:] - else: - return '0.' + ('0' * (9 - len(s))) + s - - def nanocodas(self): - """Accesses the raw nanocodas representation of a Currency instance. - - Return: - int - The nanocodas of the Currency instance represented as an integer - """ - return self.__nanocodas - - def __str__(self): - return self.decimal_format() - - def __repr__(self): - return 'Currency(%s)' % self.decimal_format() - - def __add__(self, other): - if isinstance(other, Currency): - return Currency(self.nanocodas() + other.nanocodas(), format=CurrencyFormat.NANO) - else: - raise Exception('cannot add Currency and %s' % type(other)) - - def __sub__(self, other): - if isinstance(other, Currency): - new_value = self.nanocodas() - other.nanocodas() - if new_value >= 0: - return Currency(new_value, format=CurrencyFormat.NANO) - else: - raise CurrencyUnderflow() - else: - raise Exception('cannot subtract Currency and %s' % type(other)) - - def __mul__(self, other): - if isinstance(other, int): - return Currency(self.nanocodas() * other, format=CurrencyFormat.NANO) - elif isinstance(other, Currency): - return Currency(self.nanocodas() * other.nanocodas(), format=CurrencyFormat.NANO) - else: - raise Exception('cannot multiply Currency and %s' % type(other)) - -class Client(): - # Implements a GraphQL Client for the Coda Daemon - - def __init__( - self, - graphql_protocol: str = "http", - websocket_protocol: str = "ws", - graphql_host: str = "localhost", - graphql_path: str = "/graphql", - graphql_port: int = 3085, - ): - self.endpoint = "{}://{}:{}{}".format(graphql_protocol, graphql_host, graphql_port, graphql_path) - self.websocket_endpoint = "{}://{}:{}{}".format(websocket_protocol, graphql_host, graphql_port, graphql_path) - self.logger = logging.getLogger(__name__) - - def _send_query(self, query: str, variables: dict = {}) -> dict: - """Sends a query to the Coda Daemon's GraphQL Endpoint - - Arguments: - query {str} -- A GraphQL Query - - Keyword Arguments: - variables {dict} -- Optional Variables for the query (default: {{}}) - - Returns: - dict -- A Response object from the GraphQL Server. - """ - return self._graphql_request(query, variables) - - def _send_mutation(self, query: str, variables: dict = {}) -> dict: - """Sends a mutation to the Coda Daemon's GraphQL Endpoint. - - Arguments: - query {str} -- A GraphQL Mutation - - Keyword Arguments: - variables {dict} -- Variables for the mutation (default: {{}}) - - Returns: - dict -- A Response object from the GraphQL Server. - """ - return self._graphql_request(query, variables) - - def _graphql_request(self, query: str, variables: dict = {}): - """GraphQL queries all look alike, this is a generic function to facilitate a GraphQL Request. - - Arguments: - query {str} -- A GraphQL Query - - Keyword Arguments: - variables {dict} -- Optional Variables for the GraphQL Query (default: {{}}) - - Raises: - Exception: Raises an exception if the response is anything other than 200. - - Returns: - dict -- Returns the JSON Response as a Dict. - """ - # Strip all the whitespace and replace with spaces - query = " ".join(query.split()) - payload = {'query': query} - if variables: - payload = { **payload, 'variables': variables } - - headers = { - "Accept": "application/json" - } - self.logger.debug("Sending a Query: {}".format(payload)) - response = requests.post(self.endpoint, json=payload, headers=headers) - resp_json = response.json() - if response.status_code == 200 and "errors" not in resp_json: - self.logger.debug("Got a Response: {}".format(response.json())) - return resp_json - else: - print(response.text) - raise Exception( - "Query failed -- returned code {}. {} -> {}".format(response.status_code, query, response.json())) - - async def _graphql_subscription(self, query: str, variables: dict = {}, callback = None): - hello_message = {"type": "connection_init", "payload": {}} - - # Strip all the whitespace and replace with spaces - query = " ".join(query.split()) - payload = {'query': query} - if variables: - payload = { **payload, 'variables': variables } - - query_message = {"id": "1", "type": "start", "payload": payload} - self.logger.info("Listening to GraphQL Subscription...") - - uri = self.websocket_endpoint - self.logger.info(uri) - async with websockets.client.connect(uri, ping_timeout=None) as websocket: - # Set up Websocket Connection - self.logger.debug("WEBSOCKET -- Sending Hello Message: {}".format(hello_message)) - await websocket.send(json.dumps(hello_message)) - resp = await websocket.recv() - self.logger.debug("WEBSOCKET -- Recieved Response {}".format(resp)) - self.logger.debug("WEBSOCKET -- Sending Subscribe Query: {}".format(query_message)) - await websocket.send(json.dumps(query_message)) - - # Wait for and iterate over messages in the connection - async for message in websocket: - self.logger.debug("Recieved a message from a Subscription: {}".format(message)) - if callback: - await callback(message) - else: - print(message) - - def get_daemon_status(self) -> dict: - """Gets the status of the currently configured Coda Daemon. - - Returns: - dict -- Returns the "data" field of the JSON Response as a Dict. - """ - query = ''' - query { - daemonStatus { - numAccounts - blockchainLength - highestBlockLengthReceived - uptimeSecs - ledgerMerkleRoot - stateHash - commitId - peers - userCommandsSent - snarkWorker - snarkWorkFee - syncStatus - proposePubkeys - nextProposal - consensusTimeBestTip - consensusTimeNow - consensusMechanism - confDir - commitId - consensusConfiguration { - delta - k - c - cTimesK - slotsPerEpoch - slotDuration - epochDuration - acceptableNetworkDelay - } - } - } - ''' - res = self._send_query(query) - return res['data'] - - def get_daemon_version(self) -> dict: - """Gets the version of the currently configured Coda Daemon. - - Returns: - dict -- Returns the "data" field of the JSON Response as a Dict. - """ - query = ''' - { - version - } - ''' - res = self._send_query(query) - return res["data"] - - def get_wallets(self) -> dict: - """Gets the wallets that are currently installed in the Coda Daemon. - - Returns: - dict -- Returns the "data" field of the JSON Response as a Dict. - """ - query = ''' - { - ownedWallets { - publicKey - balance { - total - } - } - } - ''' - res = self._send_query(query) - return res["data"] - - def get_wallet(self, pk: str) -> dict: - """Gets the wallet for the specified Public Key. - - Arguments: - pk {str} -- A Public Key corresponding to a currently installed wallet. - - Returns: - dict -- Returns the "data" field of the JSON Response as a Dict. - """ - query = ''' - query($publicKey:PublicKey!){ - wallet(publicKey:$publicKey) { - publicKey - balance { - total - unknown - } - nonce - receiptChainHash - delegate - votingFor - stakingActive - privateKeyPath - } - } - ''' - variables = { - "publicKey": pk - } - res = self._send_query(query, variables) - return res["data"] - - def create_wallet(self, password: str) -> dict: - """Creates a new Wallet. - - Arguments: - password {str} -- A password for the wallet to unlock. - - Returns: - dict -- Returns the "data" field of the JSON Response as a Dict. - """ - query = ''' - mutation ($password: String!) { - createAccount(input: {password: $password}) { - publicKey - } - } - ''' - variables = { - "password": password - } - res = self._send_query(query, variables) - return res["data"] - - def unlock_wallet(self, pk: str, password: str) -> dict: - """Unlocks the wallet for the specified Public Key. - - Arguments: - pk {str} -- A Public Key corresponding to a currently installed wallet. - password {str} -- A password for the wallet to unlock. - - Returns: - dict -- Returns the "data" field of the JSON Response as a Dict. - """ - query = ''' - mutation ($publicKey: PublicKey!, $password: String!) { - unlockWallet(input: {publicKey: $publicKey, password: $password}) { - account { - balance { - total - } - } - } - } - ''' - variables = { - "publicKey": pk, - "password": password - } - res = self._send_query(query, variables) - return res["data"] - - def get_blocks(self) -> dict: - """Gets the blocks known to the Coda Daemon. - Mostly useful for Archive nodes. - - Returns: - dict -- Returns the "data" field of the JSON Response as a Dict. - """ - query = ''' - { - blocks{ - nodes { - creator - stateHash - protocolState { - previousStateHash - blockchainState{ - date - snarkedLedgerHash - stagedLedgerHash - } - } - transactions { - userCommands{ - id - isDelegation - nonce - from - to - amount - fee - memo - } - feeTransfer { - recipient - fee - } - coinbase - } - snarkJobs { - prover - fee - workIds - } - } - pageInfo { - hasNextPage - hasPreviousPage - firstCursor - lastCursor - } - } - } - ''' - res = self._send_query(query) - return res["data"] - - def get_current_snark_worker(self) -> dict: - """Gets the currently configured SNARK Worker from the Coda Daemon. - - Returns: - dict -- Returns the "data" field of the JSON Response as a Dict. - """ - query = ''' - { - currentSnarkWorker{ - key - fee - } - } - ''' - res = self._send_query(query) - return res["data"] - - def get_sync_status(self) -> dict: - """Gets the Sync Status of the Coda Daemon. - - Returns: - dict -- Returns the "data" field of the JSON Response as a Dict. - """ - query = ''' - { - syncStatus - } - ''' - res = self._send_query(query) - return res["data"] - - def set_current_snark_worker(self, worker_pk: str, fee: str) -> dict: - """Set the current SNARK Worker preference. - - Arguments: - worker_pk {str} -- The public key corresponding to the desired SNARK Worker - fee {str} -- The desired SNARK Work fee - - Returns: - dict -- Returns the "data" field of the JSON Response as a Dict - """ - query = ''' - mutation($worker_pk:PublicKey!, $fee:UInt64!){ - setSnarkWorker(input: {publicKey:$worker_pk}) { - lastSnarkWorker - } - setSnarkWorkFee(input: {fee:$fee}) - }''' - variables = { - "worker_pk": worker_pk, - "fee": fee - } - res = self._send_mutation(query, variables) - return res["data"] - - def send_payment(self, to_pk: str, from_pk: str, amount: Currency, fee: Currency, memo: str) -> dict: - """Send a payment from the specified wallet to the specified target wallet. - - Arguments: - to_pk {PublicKey} -- The target wallet where funds should be sent - from_pk {PublicKey} -- The installed wallet which will finance the payment - amount {UInt64} -- Tha amount of Coda to send - fee {UInt64} -- The transaction fee that will be attached to the payment - memo {str} -- A memo to attach to the payment - - Returns: - dict -- Returns the "data" field of the JSON Response as a Dict - """ - query = ''' - mutation($from:PublicKey!, $to:PublicKey!, $amount:UInt64!, $fee:UInt64!, $memo:String){ - sendPayment(input: { - from:$from, - to:$to, - amount:$amount, - fee:$fee, - memo:$memo - }) { - payment { - id, - isDelegation, - nonce, - from, - to, - amount, - fee, - memo - } - } - } - ''' - variables = { - "from": from_pk, - "to": to_pk, - "amount": amount.nanocodas(), - "fee": fee.nanocodas(), - "memo": memo - } - res = self._send_mutation(query, variables) - return res["data"] - - def get_pooled_payments(self, pk: str) -> dict: - """Get the current transactions in the payments pool - - Arguments: - pk {str} -- The public key corresponding to the installed wallet that will be queried - - Returns: - dict -- Returns the "data" field of the JSON Response as a Dict - """ - query = ''' - query ($publicKey:String!){ - pooledUserCommands(publicKey:$publicKey) { - id, - isDelegation, - nonce, - from, - to, - amount, - fee, - memo - } - } - ''' - variables = { - "publicKey": pk - } - res = self._send_query(query, variables) - return res["data"] - - def get_transaction_status(self, payment_id: str) -> dict: - """Get the transaction status for the specified Payment Id. - - Arguments: - payment_id {str} -- A Payment Id corresponding to a UserCommand. - - Returns: - dict -- Returns the "data" field of the JSON Response as a Dict. - """ - query = ''' - query($paymentId:ID!){ - transactionStatus(payment:$paymentId) - } - ''' - variables = { - "paymentId": payment_id - } - res = self._send_query(query, variables) - return res["data"] - - async def listen_sync_update(self, callback): - """Creates a subscription for Network Sync Updates - """ - query = ''' - subscription{ - newSyncUpdate - } - ''' - await self._graphql_subscription(query, {}, callback) - - async def listen_block_confirmations(self, callback): - """Creates a subscription for Block Confirmations - Calls callback when a new block is recieved. - """ - query = ''' - subscription{ - blockConfirmation { - stateHash - numConfirmations - } - } - ''' - await self._graphql_subscription(query, {}, callback) - - async def listen_new_blocks(self, callback): - """Creates a subscription for new blocks, calls `callback` each time the subscription fires. - - Arguments: - callback(block) {coroutine} -- This coroutine is executed with the new block as an argument each time the subscription fires - """ - query = ''' - subscription(){ - newBlock(){ - creator - stateHash - protocolState { - previousStateHash - blockchainState { - date - snarkedLedgerHash - stagedLedgerHash - } - }, - transactions { - userCommands { - id - isDelegation - nonce - from - to - amount - fee - memo - } - feeTransfer { - recipient - fee - } - coinbase - } - } - } - ''' - variables = { - } - await self._graphql_subscription(query, variables, callback) diff --git a/Makefile b/Makefile deleted file mode 100644 index 4a5e2aa..0000000 --- a/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -install: - pip3 install -e . - -dist: - python3 setup.py sdist bdist_wheel - -dist-upload: - twine upload --repository-url ${PYPI_REPO_URL} --username ${PYPI_USER} --password ${PYPI_PASSWORD} dist/* - -test: - py.test \ No newline at end of file diff --git a/README.md b/README.md index 8df658e..0e25d1d 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,107 @@ -# Coda Python API Client +# Mina Python SDK -This module implements a lightweight wrapper around the Coda Daemon's GraphQL Endpoint. It under active development but may not be consistent with the nightly Coda Daemon build. +Python SDK for interacting with [Mina Protocol](https://minaprotocol.com) nodes. -**Need Help?** if you're having trouble installing or using this library, (or if you just build something cool with this) join us in the [Coda Protocol Discord Server](https://discordapp.com/invite/Vexf4ED) and we can help you out. +## Features -# Pre Requisites +- **Daemon GraphQL client** — query node status, accounts, blocks; send payments and delegations +- Typed response objects with `Currency` arithmetic +- Automatic retry with configurable backoff +- Context manager support -This library requires `>= Python 3.5` +## Installation -# Installation +```bash +pip install mina-sdk +``` -You can either install the library via Git or the O(1) Labs Artifact Repository. +For archive database support (coming soon): -## Git +```bash +pip install mina-sdk[archive] +``` -Install the Library with pip3: +## Quick Start -`pip3 install git+https://github.com/CodaProtocol/coda-python-client.git` +```python +from mina_sdk import MinaDaemonClient, Currency -## Artifactory +with MinaDaemonClient() as client: + # Check sync status + print(client.get_sync_status()) # "SYNCED" -Install the Library with pip3: + # Query an account + account = client.get_account("B62q...") + print(f"Balance: {account.balance.total} MINA") -`pip3 install --extra-index-url https://o1labs.jfrog.io/o1labs/api/pypi/pypi/simple CodaClient` + # Send a payment + result = client.send_payment( + sender="B62qsender...", + receiver="B62qreceiver...", + amount=Currency("1.5"), + fee=Currency("0.01"), + ) + print(f"Tx hash: {result.hash}") +``` + +## Configuration + +```python +client = MinaDaemonClient( + graphql_uri="http://127.0.0.1:3085/graphql", # default + retries=3, # retry failed requests + retry_delay=5.0, # seconds between retries + timeout=30.0, # HTTP timeout in seconds +) +``` + +## API Reference + +### Queries + +| Method | Description | +|--------|-------------| +| `get_sync_status()` | Node sync status (SYNCED, BOOTSTRAP, etc.) | +| `get_daemon_status()` | Comprehensive daemon status | +| `get_network_id()` | Network identifier | +| `get_account(public_key)` | Account balance, nonce, delegate | +| `get_best_chain(max_length)` | Recent blocks from best chain | +| `get_peers()` | Connected peers | +| `get_pooled_user_commands(public_key)` | Pending transactions | + +### Mutations + +| Method | Description | +|--------|-------------| +| `send_payment(sender, receiver, amount, fee)` | Send a payment | +| `send_delegation(sender, delegate_to, fee)` | Delegate stake | +| `set_snark_worker(public_key)` | Set/unset SNARK worker | +| `set_snark_work_fee(fee)` | Set SNARK work fee | + +### Currency + +```python +from mina_sdk import Currency + +a = Currency(10) # 10 MINA +b = Currency("1.5") # 1.5 MINA +c = Currency.from_nanomina(1_000_000_000) # 1 MINA + +print(a + b) # 11.500000000 +print(a.nanomina) # 10000000000 +print(a > b) # True +``` + +## Development + +```bash +git clone https://github.com/MinaProtocol/mina-sdk-python.git +cd mina-sdk-python +python3 -m venv .venv && . .venv/bin/activate +pip install -e ".[dev]" +pytest +``` + +## License + +Apache License 2.0 diff --git a/examples/basic_usage.py b/examples/basic_usage.py new file mode 100644 index 0000000..29bca75 --- /dev/null +++ b/examples/basic_usage.py @@ -0,0 +1,60 @@ +"""Basic usage of the Mina Python SDK.""" + +from mina_sdk import MinaDaemonClient, Currency + + +def main(): + # Connect to a local Mina daemon (default: http://127.0.0.1:3085/graphql) + with MinaDaemonClient() as client: + # Check sync status + sync_status = client.get_sync_status() + print(f"Sync status: {sync_status}") + + # Get daemon status with peer info + status = client.get_daemon_status() + print(f"Blockchain length: {status.blockchain_length}") + print(f"Peers: {len(status.peers) if status.peers else 0}") + + # Get network ID + network_id = client.get_network_id() + print(f"Network: {network_id}") + + # Query an account + account = client.get_account("B62qrPN5Y5yq8kGE3FbVKbGTdTAJNdtNtS5vH1tH...") + print(f"Balance: {account.balance.total} MINA") + print(f"Nonce: {account.nonce}") + + # Get recent blocks + blocks = client.get_best_chain(max_length=5) + for block in blocks: + print(f"Block {block.height}: {block.state_hash[:20]}... " + f"({block.command_transaction_count} txns)") + + # Send a payment (requires sender account unlocked on node) + result = client.send_payment( + sender="B62qsender...", + receiver="B62qreceiver...", + amount=Currency("1.5"), # 1.5 MINA + fee=Currency("0.01"), # 0.01 MINA fee + memo="hello from SDK", + ) + print(f"Payment sent! Hash: {result.hash}, Nonce: {result.nonce}") + + +def connect_to_remote_node(): + """Connect to a remote daemon.""" + client = MinaDaemonClient( + graphql_uri="http://my-mina-node:3085/graphql", + retries=5, + retry_delay=10.0, + timeout=60.0, + ) + try: + status = client.get_sync_status() + print(f"Remote node status: {status}") + finally: + client.close() + + +if __name__ == "__main__": + main() diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..c1f798f --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,59 @@ +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[project] +name = "mina-sdk" +version = "0.1.0" +description = "Python SDK for interacting with Mina Protocol nodes" +readme = "README.md" +license = "Apache-2.0" +requires-python = ">=3.8" +authors = [ + { name = "Mina Protocol", email = "engineering@minaprotocol.com" }, +] +classifiers = [ + "Development Status :: 3 - Alpha", + "Intended Audience :: Developers", + "Operating System :: OS Independent", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Topic :: Software Development :: Libraries", + "License :: OSI Approved :: Apache Software License", +] +dependencies = [ + "httpx>=0.27", +] + +[project.optional-dependencies] +archive = ["asyncpg>=0.29"] +dev = [ + "pytest>=8.0", + "pytest-asyncio>=0.24", + "respx>=0.20", + "ruff>=0.8", +] + +[project.urls] +Homepage = "https://github.com/MinaProtocol/mina-sdk-python" +Repository = "https://github.com/MinaProtocol/mina-sdk-python" +Issues = "https://github.com/MinaProtocol/mina-sdk-python/issues" + +[tool.hatch.build.targets.wheel] +packages = ["src/mina_sdk"] + +[tool.ruff] +target-version = "py38" +line-length = 100 + +[tool.ruff.lint] +select = ["E", "F", "I", "W"] + +[tool.pytest.ini_options] +testpaths = ["tests"] +asyncio_mode = "auto" diff --git a/setup.py b/setup.py deleted file mode 100644 index 680b9d5..0000000 --- a/setup.py +++ /dev/null @@ -1,47 +0,0 @@ -from __future__ import with_statement - -try: - from setuptools import setup -except ImportError: - from distutils.core import setup - -with open('README.md') as f: - readme = f.read() - -tests_require = ['six', 'pytest', 'pytest-cov', 'python-coveralls', 'mock', 'pysnap'] - -setup( - name='CodaClient', - version='0.0.14', - python_requires='>=3.5', - description='A Python wrapper around the Coda Daemon GraphQL API.', - github='http://github.com/CodaProtocol/coda-python', - author='Conner Swann', - author_email='conner@o1labs.org', - license='Apache License 2.0', - py_modules=['CodaClient'], - install_requires=[ - 'requests', - 'websockets>=7.0', - 'asyncio' - ], - extras_require={ - 'test': tests_require, - 'pytest': [ - 'pytest', - ] - }, - tests_require=tests_require, - long_description=open('README.md').read(), - classifiers=[ - 'Development Status :: 3 - Alpha', - 'Intended Audience :: Developers', - 'Operating System :: OS Independent', - 'Programming Language :: Python', - 'Programming Language :: Python :: 3 :: Only', - 'Programming Language :: Python :: 3.5', - 'Programming Language :: Python :: 3.6', - 'Topic :: Software Development :: Libraries', - 'License :: OSI Approved :: Apache Software License' - ], -) \ No newline at end of file diff --git a/src/mina_sdk/__init__.py b/src/mina_sdk/__init__.py new file mode 100644 index 0000000..4bd0754 --- /dev/null +++ b/src/mina_sdk/__init__.py @@ -0,0 +1,7 @@ +"""Mina Protocol Python SDK.""" + +from mina_sdk.daemon.client import MinaDaemonClient +from mina_sdk.types import Currency, CurrencyFormat + +__all__ = ["MinaDaemonClient", "Currency", "CurrencyFormat"] +__version__ = "0.1.0" diff --git a/src/mina_sdk/daemon/__init__.py b/src/mina_sdk/daemon/__init__.py new file mode 100644 index 0000000..6002da3 --- /dev/null +++ b/src/mina_sdk/daemon/__init__.py @@ -0,0 +1,5 @@ +"""Mina daemon GraphQL client.""" + +from mina_sdk.daemon.client import MinaDaemonClient + +__all__ = ["MinaDaemonClient"] diff --git a/src/mina_sdk/daemon/client.py b/src/mina_sdk/daemon/client.py new file mode 100644 index 0000000..beacc80 --- /dev/null +++ b/src/mina_sdk/daemon/client.py @@ -0,0 +1,383 @@ +"""Mina daemon GraphQL client.""" + +from __future__ import annotations + +import logging +import time +from typing import Any + +import httpx + +from mina_sdk.daemon import queries +from mina_sdk.types import ( + AccountBalance, + AccountData, + BlockInfo, + Currency, + DaemonStatus, + PeerInfo, + SendDelegationResult, + SendPaymentResult, + _parse_response, +) + +logger = logging.getLogger(__name__) + + +class GraphQLError(Exception): + """Raised when the GraphQL endpoint returns an error response.""" + + def __init__(self, errors: list[dict[str, Any]], query_name: str = ""): + self.errors = errors + self.query_name = query_name + messages = [e.get("message", str(e)) for e in errors] + super().__init__(f"GraphQL error in {query_name}: {'; '.join(messages)}") + + +class ConnectionError(Exception): + """Raised when the client cannot connect to the daemon.""" + + pass + + +class MinaDaemonClient: + """Client for interacting with a Mina daemon via its GraphQL API. + + Args: + graphql_uri: The daemon's GraphQL endpoint URL. + retries: Number of retry attempts for failed requests. + retry_delay: Seconds to wait between retries. + timeout: HTTP request timeout in seconds. + """ + + def __init__( + self, + graphql_uri: str = "http://127.0.0.1:3085/graphql", + retries: int = 3, + retry_delay: float = 5.0, + timeout: float = 30.0, + ): + self._uri = graphql_uri + self._retries = retries + self._retry_delay = retry_delay + self._client = httpx.Client(timeout=timeout) + + def close(self) -> None: + self._client.close() + + def __enter__(self) -> MinaDaemonClient: + return self + + def __exit__(self, *args: Any) -> None: + self.close() + + def _request( + self, query: str, variables: dict[str, Any] | None = None, query_name: str = "" + ) -> dict[str, Any]: + """Execute a GraphQL request with retry logic. + + Returns the 'data' field of the response. + """ + payload: dict[str, Any] = {"query": query} + if variables: + payload["variables"] = variables + + last_error: Exception | None = None + for attempt in range(1, self._retries + 1): + try: + logger.debug("GraphQL %s attempt %d/%d", query_name, attempt, self._retries) + resp = self._client.post(self._uri, json=payload) + resp_json = resp.json() + + if "errors" in resp_json: + raise GraphQLError(resp_json["errors"], query_name) + + resp.raise_for_status() + return resp_json.get("data", {}) + + except GraphQLError: + raise + except httpx.HTTPStatusError as e: + last_error = e + logger.warning( + "GraphQL %s HTTP %d (attempt %d/%d)", + query_name, + e.response.status_code, + attempt, + self._retries, + ) + except httpx.HTTPError as e: + last_error = e + logger.warning( + "GraphQL %s connection error (attempt %d/%d): %s", + query_name, + attempt, + self._retries, + e, + ) + + if attempt < self._retries: + time.sleep(self._retry_delay) + + raise ConnectionError( + f"Failed to execute {query_name} after {self._retries} attempts: {last_error}" + ) + + # -- Queries -- + + def get_sync_status(self) -> str: + """Get the node's sync status. + + Returns one of: CONNECTING, LISTENING, OFFLINE, BOOTSTRAP, SYNCED, CATCHUP. + """ + data = self._request(queries.SYNC_STATUS, query_name="get_sync_status") + return data["syncStatus"] + + def get_daemon_status(self) -> DaemonStatus: + """Get comprehensive daemon status.""" + data = self._request(queries.DAEMON_STATUS, query_name="get_daemon_status") + status = data["daemonStatus"] + + peers = None + if status.get("peers"): + peers = [ + PeerInfo( + peer_id=p["peerId"], + host=p["host"], + port=p["libp2pPort"], + ) + for p in status["peers"] + ] + + return DaemonStatus( + sync_status=status["syncStatus"], + blockchain_length=status.get("blockchainLength"), + highest_block_length_received=status.get("highestBlockLengthReceived"), + uptime_secs=status.get("uptimeSecs"), + state_hash=status.get("stateHash"), + commit_id=status.get("commitId"), + peers=peers, + ) + + def get_network_id(self) -> str: + """Get the network identifier.""" + data = self._request(queries.NETWORK_ID, query_name="get_network_id") + return data["networkID"] + + def get_account( + self, public_key: str, token_id: str | None = None + ) -> AccountData: + """Get account data for a public key. + + Args: + public_key: Base58-encoded public key. + token_id: Optional token ID (defaults to MINA token). + """ + variables: dict[str, Any] = {"publicKey": public_key} + if token_id is not None: + variables["token"] = token_id + + data = self._request(queries.GET_ACCOUNT, variables=variables, query_name="get_account") + acc = data.get("account") + if acc is None: + raise ValueError(f"account not found: {public_key}") + + balance = acc["balance"] + return AccountData( + public_key=acc["publicKey"], + nonce=int(acc["nonce"]), + delegate=acc.get("delegate"), + token_id=acc.get("tokenId"), + balance=AccountBalance( + total=Currency.from_graphql(balance["total"]), + liquid=Currency.from_graphql(balance["liquid"]) if balance.get("liquid") else None, + locked=Currency.from_graphql(balance["locked"]) if balance.get("locked") else None, + ), + ) + + def get_best_chain(self, max_length: int | None = None) -> list[BlockInfo]: + """Get blocks from the best chain. + + Args: + max_length: Maximum number of blocks to return. + """ + variables: dict[str, Any] = {} + if max_length is not None: + variables["maxLength"] = max_length + + data = self._request( + queries.BEST_CHAIN, variables=variables or None, query_name="get_best_chain" + ) + chain = data.get("bestChain") + if not chain: + return [] + + blocks = [] + for block in chain: + consensus = block["protocolState"]["consensusState"] + creator = block.get("creatorAccount", {}) + creator_pk = creator.get("publicKey", "unknown") + if isinstance(creator_pk, dict): + creator_pk = str(creator_pk) + + blocks.append( + BlockInfo( + state_hash=block["stateHash"], + height=int(consensus["blockHeight"]), + global_slot_since_hard_fork=int(consensus["slot"]), + global_slot_since_genesis=int(consensus["slotSinceGenesis"]), + creator_pk=creator_pk, + command_transaction_count=block["commandTransactionCount"], + ) + ) + return blocks + + def get_peers(self) -> list[PeerInfo]: + """Get the list of connected peers.""" + data = self._request(queries.GET_PEERS, query_name="get_peers") + return [ + PeerInfo(peer_id=p["peerId"], host=p["host"], port=p["libp2pPort"]) + for p in data.get("getPeers", []) + ] + + def get_pooled_user_commands(self, public_key: str | None = None) -> list[dict[str, Any]]: + """Get pending user commands from the transaction pool. + + Args: + public_key: Optional filter by sender public key. + """ + variables: dict[str, Any] = {} + if public_key is not None: + variables["publicKey"] = public_key + + data = self._request( + queries.POOLED_USER_COMMANDS, + variables=variables or None, + query_name="get_pooled_user_commands", + ) + return data.get("pooledUserCommands", []) + + # -- Mutations -- + + def send_payment( + self, + sender: str, + receiver: str, + amount: Currency | str, + fee: Currency | str, + memo: str | None = None, + nonce: int | None = None, + ) -> SendPaymentResult: + """Send a payment transaction. + + Requires the sender's account to be unlocked on the node. + + Args: + sender: Sender public key (base58). + receiver: Receiver public key (base58). + amount: Amount to send (Currency or MINA string like "1.5"). + fee: Transaction fee (Currency or MINA string). + memo: Optional transaction memo. + nonce: Optional explicit nonce. + """ + if isinstance(amount, str): + amount = Currency(amount) + if isinstance(fee, str): + fee = Currency(fee) + + input_obj: dict[str, Any] = { + "from": sender, + "to": receiver, + "amount": amount.to_nanomina_str(), + "fee": fee.to_nanomina_str(), + } + if memo is not None: + input_obj["memo"] = memo + if nonce is not None: + input_obj["nonce"] = str(nonce) + + data = self._request( + queries.SEND_PAYMENT, variables={"input": input_obj}, query_name="send_payment" + ) + payment = _parse_response(data, ["sendPayment", "payment"]) + return SendPaymentResult( + id=payment["id"], + hash=payment["hash"], + nonce=int(payment["nonce"]), + ) + + def send_delegation( + self, + sender: str, + delegate_to: str, + fee: Currency | str, + memo: str | None = None, + nonce: int | None = None, + ) -> SendDelegationResult: + """Send a stake delegation transaction. + + Requires the sender's account to be unlocked on the node. + + Args: + sender: Delegator public key (base58). + delegate_to: Delegate-to public key (base58). + fee: Transaction fee (Currency or MINA string). + memo: Optional transaction memo. + nonce: Optional explicit nonce. + """ + if isinstance(fee, str): + fee = Currency(fee) + + input_obj: dict[str, Any] = { + "from": sender, + "to": delegate_to, + "fee": fee.to_nanomina_str(), + } + if memo is not None: + input_obj["memo"] = memo + if nonce is not None: + input_obj["nonce"] = str(nonce) + + data = self._request( + queries.SEND_DELEGATION, variables={"input": input_obj}, query_name="send_delegation" + ) + delegation = _parse_response(data, ["sendDelegation", "delegation"]) + return SendDelegationResult( + id=delegation["id"], + hash=delegation["hash"], + nonce=int(delegation["nonce"]), + ) + + def set_snark_worker(self, public_key: str | None) -> str | None: + """Set or unset the SNARK worker key. + + Args: + public_key: Public key for snark worker, or None to disable. + + Returns: + The previous snark worker public key, or None. + """ + data = self._request( + queries.SET_SNARK_WORKER, + variables={"input": public_key}, + query_name="set_snark_worker", + ) + return _parse_response(data, ["setSnarkWorker", "lastSnarkWorker"]) + + def set_snark_work_fee(self, fee: Currency | str) -> str: + """Set the fee for SNARK work. + + Args: + fee: The fee amount (Currency or MINA string). + + Returns: + The previous fee as a string. + """ + if isinstance(fee, str): + fee = Currency(fee) + data = self._request( + queries.SET_SNARK_WORK_FEE, + variables={"fee": fee.to_nanomina_str()}, + query_name="set_snark_work_fee", + ) + return _parse_response(data, ["setSnarkWorkFee", "lastFee"]) diff --git a/src/mina_sdk/daemon/queries.py b/src/mina_sdk/daemon/queries.py new file mode 100644 index 0000000..8c203c9 --- /dev/null +++ b/src/mina_sdk/daemon/queries.py @@ -0,0 +1,131 @@ +"""GraphQL query and mutation strings for the Mina daemon.""" + +SYNC_STATUS = """ +query { + syncStatus +} +""" + +DAEMON_STATUS = """ +query { + daemonStatus { + syncStatus + blockchainLength + highestBlockLengthReceived + uptimeSecs + stateHash + commitId + peers { + peerId + host + libp2pPort + } + } +} +""" + +NETWORK_ID = """ +query { + networkID +} +""" + +GET_ACCOUNT = """ +query ($publicKey: PublicKey!, $token: UInt64) { + account(publicKey: $publicKey, token: $token) { + publicKey + nonce + delegate + tokenId + balance { + total + liquid + locked + } + } +} +""" + +BEST_CHAIN = """ +query ($maxLength: Int) { + bestChain(maxLength: $maxLength) { + stateHash + commandTransactionCount + creatorAccount { + publicKey + } + protocolState { + consensusState { + blockHeight + slotSinceGenesis + slot + } + } + } +} +""" + +GET_PEERS = """ +query { + getPeers { + peerId + host + libp2pPort + } +} +""" + +POOLED_USER_COMMANDS = """ +query ($publicKey: PublicKey) { + pooledUserCommands(publicKey: $publicKey) { + id + hash + kind + nonce + amount + fee + from + to + } +} +""" + +SEND_PAYMENT = """ +mutation ($input: SendPaymentInput!) { + sendPayment(input: $input) { + payment { + id + hash + nonce + } + } +} +""" + +SEND_DELEGATION = """ +mutation ($input: SendDelegationInput!) { + sendDelegation(input: $input) { + delegation { + id + hash + nonce + } + } +} +""" + +SET_SNARK_WORKER = """ +mutation ($input: SetSnarkWorkerInput!) { + setSnarkWorker(input: $input) { + lastSnarkWorker + } +} +""" + +SET_SNARK_WORK_FEE = """ +mutation ($fee: UInt64!) { + setSnarkWorkFee(input: {fee: $fee}) { + lastFee + } +} +""" diff --git a/tests/snapshots/__init__.py b/src/mina_sdk/schema/.gitkeep similarity index 100% rename from tests/snapshots/__init__.py rename to src/mina_sdk/schema/.gitkeep diff --git a/src/mina_sdk/schema/graphql_schema.json b/src/mina_sdk/schema/graphql_schema.json new file mode 100644 index 0000000..9555dd4 --- /dev/null +++ b/src/mina_sdk/schema/graphql_schema.json @@ -0,0 +1,16092 @@ +{ + "data": { + "__schema": { + "queryType": { "name": "query" }, + "mutationType": { "name": "mutation" }, + "subscriptionType": { "name": "subscription" }, + "types": [ + { + "kind": "ENUM", + "name": "ChainReorganizationStatus", + "description": "Status for whenever the blockchain is reorganized", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "CHANGED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "subscription", + "description": null, + "fields": [ + { + "name": "newSyncUpdate", + "description": + "Event that triggers when the network sync status changes", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "SyncStatus", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "newBlock", + "description": + "Event that triggers when a new block is created that either contains a transaction with the specified public key, or was produced by it. If no public key is provided, then the event will trigger for every new block received", + "args": [ + { + "name": "publicKey", + "description": "Public key that is included in the block", + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Block", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "chainReorganization", + "description": + "Event that triggers when the best tip changes in a way that is not a trivial extension of the existing one", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "ChainReorganizationStatus", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "ProofBundleInput", + "description": "Proof bundle for a given spec in json format", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "RosettaTransaction", + "description": "A transaction encoded in the Rosetta format", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SendRosettaTransactionPayload", + "description": null, + "fields": [ + { + "name": "userCommand", + "description": "Command that was sent", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "UserCommand", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "ExtensionalBlock", + "description": "Block encoded in extensional block format", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "PrecomputedBlock", + "description": "Block encoded in precomputed block format", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Applied", + "description": null, + "fields": [ + { + "name": "applied", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "NetworkPeer", + "description": + "Network identifiers for another protocol participant", + "fields": [ + { + "name": "libp2pPort", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "host", + "description": "IP address of the remote host", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "peerId", + "description": "base58-encoded peer ID", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "libp2pPort", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "defaultValue": null + }, + { + "name": "host", + "description": "IP address of the remote host", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "peerId", + "description": "base58-encoded peer ID", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SetConnectionGatingConfigInput", + "description": null, + "fields": [ + { + "name": "cleanAddedPeers", + "description": + "If true, resets added peers to an empty list (including seeds)", + "args": [], + "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "isolate", + "description": + "If true, no connections will be allowed unless they are from a trusted peer", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "bannedPeers", + "description": + "Peers we will never allow connections from (unless they are also trusted!)", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "NetworkPeer", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "trustedPeers", + "description": "Peers we will always allow connections from", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "NetworkPeer", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "cleanAddedPeers", + "description": + "If true, resets added peers to an empty list (including seeds)", + "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "defaultValue": null + }, + { + "name": "isolate", + "description": + "If true, no connections will be allowed unless they are from a trusted peer", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "bannedPeers", + "description": + "Peers we will never allow connections from (unless they are also trusted!)", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "NetworkPeer", + "ofType": null + } + } + } + }, + "defaultValue": null + }, + { + "name": "trustedPeers", + "description": "Peers we will always allow connections from", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "NetworkPeer", + "ofType": null + } + } + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SetSnarkWorkFee", + "description": null, + "fields": [ + { + "name": "fee", + "description": "Fee to get rewarded for producing snark work", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt64", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "fee", + "description": "Fee to get rewarded for producing snark work", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt64", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SetSnarkWorkFeePayload", + "description": null, + "fields": [ + { + "name": "lastFee", + "description": "Returns the last fee set to do snark work", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SetSnarkWorkerInput", + "description": null, + "fields": [ + { + "name": "publicKey", + "description": + "Public key you wish to start snark-working on; null to stop doing any snark work. Warning: If the key is from a zkApp account, the account's receive permission must be None.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "publicKey", + "description": + "Public key you wish to start snark-working on; null to stop doing any snark work. Warning: If the key is from a zkApp account, the account's receive permission must be None.", + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SetSnarkWorkerPayload", + "description": null, + "fields": [ + { + "name": "lastSnarkWorker", + "description": + "Returns the last public key that was designated for snark work", + "args": [], + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SetCoinbaseReceiverInput", + "description": null, + "fields": [ + { + "name": "publicKey", + "description": + "Public key of the account to receive coinbases. Block production keys will receive the coinbases if omitted. Warning: If the key is from a zkApp account, the account's receive permission must be None.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "publicKey", + "description": + "Public key of the account to receive coinbases. Block production keys will receive the coinbases if omitted. Warning: If the key is from a zkApp account, the account's receive permission must be None.", + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SetCoinbaseReceiverPayload", + "description": null, + "fields": [ + { + "name": "lastCoinbaseReceiver", + "description": + "Returns the public key that was receiving coinbases previously, or none if it was the block producer", + "args": [], + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "currentCoinbaseReceiver", + "description": + "Returns the public key that will receive coinbase, or none if it will be the block producer", + "args": [], + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "TarFile", + "description": null, + "fields": [ + { + "name": "tarfile", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ExportLogsPayload", + "description": null, + "fields": [ + { + "name": "exportLogs", + "description": "Tar archive containing logs", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TarFile", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "SendTestZkappInput", + "description": "zkApp command for a test zkApp", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "FeePayerBodyInput", + "description": null, + "fields": [ + { + "name": "publicKey", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fee", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "validUntil", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "GlobalSlotSinceGenesis", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nonce", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "publicKey", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "fee", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + }, + "defaultValue": null + }, + { + "name": "validUntil", + "description": null, + "type": { + "kind": "SCALAR", + "name": "GlobalSlotSinceGenesis", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "nonce", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "ZkappFeePayerInput", + "description": null, + "fields": [ + { + "name": "body", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "FeePayerBodyInput", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "authorization", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Signature", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "body", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "FeePayerBodyInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "authorization", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Signature", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "VerificationKeyWithHashInput", + "description": null, + "fields": [ + { + "name": "data", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "VerificationKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "hash", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "data", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "VerificationKey", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "hash", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "VerificationKeyPermissionInput", + "description": null, + "fields": [ + { + "name": "auth", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "txnVersion", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "auth", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "txnVersion", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "PermissionsInput", + "description": null, + "fields": [ + { + "name": "editState", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "access", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "send", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "receive", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setDelegate", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setPermissions", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setVerificationKey", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "VerificationKeyPermissionInput", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setZkappUri", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "editActionState", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setTokenSymbol", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "incrementNonce", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setVotingFor", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setTiming", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "editState", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "access", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "send", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "receive", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "setDelegate", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "setPermissions", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "setVerificationKey", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "VerificationKeyPermissionInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "setZkappUri", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "editActionState", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "setTokenSymbol", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "incrementNonce", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "setVotingFor", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "setTiming", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "TimingInput", + "description": null, + "fields": [ + { + "name": "initialMinimumBalance", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Balance", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "cliffTime", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalSlotSinceGenesis", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "cliffAmount", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CurrencyAmount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vestingPeriod", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalSlotSpan", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vestingIncrement", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CurrencyAmount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "initialMinimumBalance", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Balance", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "cliffTime", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalSlotSinceGenesis", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "cliffAmount", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CurrencyAmount", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "vestingPeriod", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalSlotSpan", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "vestingIncrement", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CurrencyAmount", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "AccountUpdateModificationInput", + "description": null, + "fields": [ + { + "name": "appState", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "delegate", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "verificationKey", + "description": null, + "args": [], + "type": { + "kind": "INPUT_OBJECT", + "name": "VerificationKeyWithHashInput", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "permissions", + "description": null, + "args": [], + "type": { + "kind": "INPUT_OBJECT", + "name": "PermissionsInput", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "zkappUri", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tokenSymbol", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "timing", + "description": null, + "args": [], + "type": { + "kind": "INPUT_OBJECT", + "name": "TimingInput", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "votingFor", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "StateHash", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "appState", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "delegate", + "description": null, + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "verificationKey", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "VerificationKeyWithHashInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "permissions", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "PermissionsInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "zkappUri", + "description": null, + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "defaultValue": null + }, + { + "name": "tokenSymbol", + "description": null, + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "defaultValue": null + }, + { + "name": "timing", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "TimingInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "votingFor", + "description": null, + "type": { + "kind": "SCALAR", + "name": "StateHash", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "BalanceChangeInput", + "description": null, + "fields": [ + { + "name": "magnitude", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CurrencyAmount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sgn", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Sign", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "magnitude", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CurrencyAmount", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "sgn", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Sign", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "CurrencyAmountIntervalInput", + "description": null, + "fields": [ + { + "name": "lower", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CurrencyAmount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "upper", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CurrencyAmount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "lower", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CurrencyAmount", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "upper", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CurrencyAmount", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "EpochLedgerPreconditionInput", + "description": null, + "fields": [ + { + "name": "hash", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "totalCurrency", + "description": null, + "args": [], + "type": { + "kind": "INPUT_OBJECT", + "name": "CurrencyAmountIntervalInput", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "hash", + "description": null, + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "defaultValue": null + }, + { + "name": "totalCurrency", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "CurrencyAmountIntervalInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "LengthIntervalInput", + "description": null, + "fields": [ + { + "name": "lower", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "upper", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "lower", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "upper", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "EpochDataPreconditionInput", + "description": null, + "fields": [ + { + "name": "ledger", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "EpochLedgerPreconditionInput", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "seed", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "startCheckpoint", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lockCheckpoint", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "epochLength", + "description": null, + "args": [], + "type": { + "kind": "INPUT_OBJECT", + "name": "LengthIntervalInput", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "ledger", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "EpochLedgerPreconditionInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "seed", + "description": null, + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "defaultValue": null + }, + { + "name": "startCheckpoint", + "description": null, + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "defaultValue": null + }, + { + "name": "lockCheckpoint", + "description": null, + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "defaultValue": null + }, + { + "name": "epochLength", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "LengthIntervalInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "NetworkPreconditionInput", + "description": null, + "fields": [ + { + "name": "snarkedLedgerHash", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "blockchainLength", + "description": null, + "args": [], + "type": { + "kind": "INPUT_OBJECT", + "name": "LengthIntervalInput", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "minWindowDensity", + "description": null, + "args": [], + "type": { + "kind": "INPUT_OBJECT", + "name": "LengthIntervalInput", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "totalCurrency", + "description": null, + "args": [], + "type": { + "kind": "INPUT_OBJECT", + "name": "CurrencyAmountIntervalInput", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "globalSlotSinceGenesis", + "description": null, + "args": [], + "type": { + "kind": "INPUT_OBJECT", + "name": "GlobalSlotSinceGenesisIntervalInput", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "stakingEpochData", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "EpochDataPreconditionInput", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nextEpochData", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "EpochDataPreconditionInput", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "snarkedLedgerHash", + "description": null, + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "defaultValue": null + }, + { + "name": "blockchainLength", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "LengthIntervalInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "minWindowDensity", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "LengthIntervalInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "totalCurrency", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "CurrencyAmountIntervalInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "globalSlotSinceGenesis", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "GlobalSlotSinceGenesisIntervalInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "stakingEpochData", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "EpochDataPreconditionInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "nextEpochData", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "EpochDataPreconditionInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "BalanceIntervalInput", + "description": null, + "fields": [ + { + "name": "lower", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Balance", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "upper", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Balance", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "lower", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Balance", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "upper", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Balance", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "NonceIntervalInput", + "description": null, + "fields": [ + { + "name": "lower", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "upper", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "lower", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "upper", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "AccountPreconditionInput", + "description": null, + "fields": [ + { + "name": "balance", + "description": null, + "args": [], + "type": { + "kind": "INPUT_OBJECT", + "name": "BalanceIntervalInput", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nonce", + "description": null, + "args": [], + "type": { + "kind": "INPUT_OBJECT", + "name": "NonceIntervalInput", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "receiptChainHash", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "delegate", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "state", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "actionState", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "provedState", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "isNew", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "balance", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "BalanceIntervalInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "nonce", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "NonceIntervalInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "receiptChainHash", + "description": null, + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "defaultValue": null + }, + { + "name": "delegate", + "description": null, + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "state", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "actionState", + "description": null, + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "defaultValue": null + }, + { + "name": "provedState", + "description": null, + "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "defaultValue": null + }, + { + "name": "isNew", + "description": null, + "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "GlobalSlotSinceGenesisIntervalInput", + "description": null, + "fields": [ + { + "name": "lower", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalSlotSinceGenesis", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "upper", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalSlotSinceGenesis", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "lower", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalSlotSinceGenesis", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "upper", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalSlotSinceGenesis", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "PreconditionsInput", + "description": null, + "fields": [ + { + "name": "network", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "NetworkPreconditionInput", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AccountPreconditionInput", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "validWhile", + "description": null, + "args": [], + "type": { + "kind": "INPUT_OBJECT", + "name": "GlobalSlotSinceGenesisIntervalInput", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "network", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "NetworkPreconditionInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "account", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AccountPreconditionInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "validWhile", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "GlobalSlotSinceGenesisIntervalInput", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "MayUseTokenInput", + "description": null, + "fields": [ + { + "name": "parentsOwnToken", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "inheritFromParent", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "parentsOwnToken", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "inheritFromParent", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "AuthorizationKindStructuredInput", + "description": null, + "fields": [ + { + "name": "isSigned", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "isProved", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "verificationKeyHash", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "isSigned", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "isProved", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "verificationKeyHash", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "AccountUpdateBodyInput", + "description": null, + "fields": [ + { + "name": "publicKey", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tokenId", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "update", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AccountUpdateModificationInput", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "balanceChange", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "BalanceChangeInput", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "incrementNonce", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "events", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + } + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "actions", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + } + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "callData", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "callDepth", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "preconditions", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "PreconditionsInput", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "useFullCommitment", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "implicitAccountCreationFee", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "mayUseToken", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "MayUseTokenInput", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "authorizationKind", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AuthorizationKindStructuredInput", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "publicKey", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "tokenId", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "update", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AccountUpdateModificationInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "balanceChange", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "BalanceChangeInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "incrementNonce", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "events", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + } + } + } + } + }, + "defaultValue": null + }, + { + "name": "actions", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + } + } + } + } + }, + "defaultValue": null + }, + { + "name": "callData", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "callDepth", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "defaultValue": null + }, + { + "name": "preconditions", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "PreconditionsInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "useFullCommitment", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "implicitAccountCreationFee", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "mayUseToken", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "MayUseTokenInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "authorizationKind", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AuthorizationKindStructuredInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "ControlInput", + "description": null, + "fields": [ + { + "name": "proof", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "ZkappProof", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "signature", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Signature", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "proof", + "description": null, + "type": { + "kind": "SCALAR", + "name": "ZkappProof", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "signature", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Signature", + "ofType": null + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "ZkappAccountUpdateInput", + "description": "An account update in a zkApp transaction", + "fields": [ + { + "name": "body", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AccountUpdateBodyInput", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "authorization", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ControlInput", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "body", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AccountUpdateBodyInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "authorization", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ControlInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "ZkappCommandInput", + "description": null, + "fields": [ + { + "name": "feePayer", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ZkappFeePayerInput", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "accountUpdates", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ZkappAccountUpdateInput", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "memo", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Memo", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "feePayer", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ZkappFeePayerInput", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "accountUpdates", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ZkappAccountUpdateInput", + "ofType": null + } + } + } + }, + "defaultValue": null + }, + { + "name": "memo", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Memo", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SendZkappInput", + "description": null, + "fields": [ + { + "name": "zkappCommand", + "description": + "zkApp command structure representing the transaction", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ZkappCommandInput", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "zkappCommand", + "description": + "zkApp command structure representing the transaction", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ZkappCommandInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SendZkappPayload", + "description": null, + "fields": [ + { + "name": "zkapp", + "description": "zkApp transaction that was sent", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ZkappCommandResult", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SendDelegationInput", + "description": null, + "fields": [ + { + "name": "nonce", + "description": + "Should only be set when cancelling transactions, otherwise a nonce is determined automatically", + "args": [], + "type": { "kind": "SCALAR", "name": "UInt32", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "memo", + "description": "Short arbitrary message provided by the sender", + "args": [], + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "validUntil", + "description": + "The global slot since genesis after which this transaction cannot be applied", + "args": [], + "type": { "kind": "SCALAR", "name": "UInt32", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fee", + "description": "Fee amount in order to send a stake delegation", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt64", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "to", + "description": "Public key of the account being delegated to", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "from", + "description": "Public key of sender of a stake delegation", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "nonce", + "description": + "Should only be set when cancelling transactions, otherwise a nonce is determined automatically", + "type": { "kind": "SCALAR", "name": "UInt32", "ofType": null }, + "defaultValue": null + }, + { + "name": "memo", + "description": "Short arbitrary message provided by the sender", + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "defaultValue": null + }, + { + "name": "validUntil", + "description": + "The global slot since genesis after which this transaction cannot be applied", + "type": { "kind": "SCALAR", "name": "UInt32", "ofType": null }, + "defaultValue": null + }, + { + "name": "fee", + "description": "Fee amount in order to send a stake delegation", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt64", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "to", + "description": "Public key of the account being delegated to", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "from", + "description": "Public key of sender of a stake delegation", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SendDelegationPayload", + "description": null, + "fields": [ + { + "name": "delegation", + "description": "Delegation change that was sent", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "UserCommand", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "PrivateKey", + "description": "Base58Check-encoded private key", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SendPaymentPayload", + "description": null, + "fields": [ + { + "name": "payment", + "description": "Payment that was sent", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "UserCommand", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ImportAccountPayload", + "description": null, + "fields": [ + { + "name": "publicKey", + "description": "The public key of the imported account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "alreadyImported", + "description": "True if the account had already been imported", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "success", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ReloadAccountsPayload", + "description": null, + "fields": [ + { + "name": "success", + "description": "True when the reload was successful", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "DeleteAccountInput", + "description": null, + "fields": [ + { + "name": "publicKey", + "description": "Public key of account to be deleted", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "publicKey", + "description": "Public key of account to be deleted", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "DeleteAccountPayload", + "description": null, + "fields": [ + { + "name": "publicKey", + "description": "Public key of the deleted account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "LockInput", + "description": null, + "fields": [ + { + "name": "publicKey", + "description": "Public key specifying which account to lock", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "publicKey", + "description": "Public key specifying which account to lock", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "LockPayload", + "description": null, + "fields": [ + { + "name": "publicKey", + "description": "Public key of the locked account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": "Details of locked account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "UnlockInput", + "description": null, + "fields": [ + { + "name": "publicKey", + "description": "Public key specifying which account to unlock", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "password", + "description": "Password for the account to be unlocked", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "publicKey", + "description": "Public key specifying which account to unlock", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "password", + "description": "Password for the account to be unlocked", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "UnlockPayload", + "description": null, + "fields": [ + { + "name": "publicKey", + "description": "Public key of the unlocked account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use account field instead" + }, + { + "name": "account", + "description": "Details of unlocked account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "CreateHDAccountInput", + "description": null, + "fields": [ + { + "name": "index", + "description": "Index of the account in hardware wallet", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "index", + "description": "Index of the account in hardware wallet", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "AddAccountInput", + "description": null, + "fields": [ + { + "name": "password", + "description": "Password used to encrypt the new account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "password", + "description": "Password used to encrypt the new account", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AddAccountPayload", + "description": null, + "fields": [ + { + "name": "publicKey", + "description": "Public key of the created account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use account field instead" + }, + { + "name": "account", + "description": "Details of created account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "mutation", + "description": null, + "fields": [ + { + "name": "addWallet", + "description": + "Add a wallet - this will create a new keypair and store it in the daemon", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AddAccountInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AddAccountPayload", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use createAccount instead" + }, + { + "name": "startFilteredLog", + "description": + "TESTING ONLY: Start filtering and recording all structured events in memory", + "args": [ + { + "name": "filter", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "createAccount", + "description": + "Create a new account - this will create a new keypair and store it in the daemon", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AddAccountInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AddAccountPayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "createHDAccount", + "description": + "Create an account with hardware wallet - this will let the hardware wallet generate a keypair corresponds to the HD-index you give and store this HD-index and the generated public key in the daemon. Calling this command with the same HD-index and the same hardware wallet will always generate the same keypair.", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateHDAccountInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AddAccountPayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "unlockAccount", + "description": + "Allow transactions to be sent from the unlocked account", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UnlockInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "UnlockPayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "unlockWallet", + "description": + "Allow transactions to be sent from the unlocked account", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UnlockInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "UnlockPayload", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use unlockAccount instead" + }, + { + "name": "lockAccount", + "description": + "Lock an unlocked account to prevent transaction being sent from it", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "LockInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "LockPayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lockWallet", + "description": + "Lock an unlocked account to prevent transaction being sent from it", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "LockInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "LockPayload", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use lockAccount instead" + }, + { + "name": "deleteAccount", + "description": + "Delete the private key for an account that you track", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "DeleteAccountInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "DeleteAccountPayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "deleteWallet", + "description": + "Delete the private key for an account that you track", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "DeleteAccountInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "DeleteAccountPayload", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use deleteAccount instead" + }, + { + "name": "reloadAccounts", + "description": "Reload tracked account information from disk", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ReloadAccountsPayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "importAccount", + "description": "Reload tracked account information from disk", + "args": [ + { + "name": "password", + "description": "Password for the account to import", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "path", + "description": + "Path to the wallet file, relative to the daemon's current working directory.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ImportAccountPayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "reloadWallets", + "description": "Reload tracked account information from disk", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ReloadAccountsPayload", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use reloadAccounts instead" + }, + { + "name": "sendPayment", + "description": "Send a payment", + "args": [ + { + "name": "signature", + "description": + "If a signature is provided, this transaction is considered signed and will be broadcasted to the network without requiring a private key", + "type": { + "kind": "INPUT_OBJECT", + "name": "SignatureInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "SendPaymentInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SendPaymentPayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sendTestPayments", + "description": "Send a series of test payments", + "args": [ + { + "name": "repeat_delay_ms", + "description": + "Delay with which a transaction shall be repeated", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "repeat_count", + "description": + "How many times shall transaction be repeated", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "fee", + "description": "The fee of each payment", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt64", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "amount", + "description": "The amount of each payment", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt64", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "receiver", + "description": "The receiver of the payments", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "senders", + "description": + "The private keys from which to sign the payments", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PrivateKey", + "ofType": null + } + } + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sendDelegation", + "description": "Change your delegate by sending a transaction", + "args": [ + { + "name": "signature", + "description": + "If a signature is provided, this transaction is considered signed and will be broadcasted to the network without requiring a private key", + "type": { + "kind": "INPUT_OBJECT", + "name": "SignatureInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "SendDelegationInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SendDelegationPayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sendZkapp", + "description": "Send a zkApp transaction", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "SendZkappInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SendZkappPayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "mockZkapp", + "description": + "Mock a zkApp transaction, no effect on blockchain", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "SendZkappInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SendZkappPayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "internalSendZkapp", + "description": + "Send zkApp transactions (for internal testing purposes)", + "args": [ + { + "name": "zkappCommands", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "SendTestZkappInput", + "ofType": null + } + } + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SendZkappPayload", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "exportLogs", + "description": "Export daemon logs to tar archive", + "args": [ + { + "name": "basename", + "description": null, + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ExportLogsPayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setCoinbaseReceiver", + "description": "Set the key to receive coinbases", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "SetCoinbaseReceiverInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SetCoinbaseReceiverPayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setSnarkWorker", + "description": + "Set key you wish to snark work with or disable snark working", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "SetSnarkWorkerInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SetSnarkWorkerPayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setSnarkWorkFee", + "description": + "Set fee that you will like to receive for doing snark work", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "SetSnarkWorkFee", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SetSnarkWorkFeePayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setConnectionGatingConfig", + "description": + "Set the connection gating config, returning the current config after the application (which may have failed)", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "SetConnectionGatingConfigInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SetConnectionGatingConfigPayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "addPeers", + "description": "Connect to the given peers", + "args": [ + { + "name": "seed", + "description": null, + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "peers", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "NetworkPeer", + "ofType": null + } + } + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Peer", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "archivePrecomputedBlock", + "description": null, + "args": [ + { + "name": "block", + "description": "Block encoded in precomputed block format", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PrecomputedBlock", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Applied", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "archiveExtensionalBlock", + "description": null, + "args": [ + { + "name": "block", + "description": "Block encoded in extensional block format", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ExtensionalBlock", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Applied", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sendRosettaTransaction", + "description": "Send a transaction in Rosetta format", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "RosettaTransaction", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SendRosettaTransactionPayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sendProofBundle", + "description": "Transaction SNARKs for a given spec", + "args": [ + { + "name": "input", + "description": + "Proof bundle for a given spec in json format including fees and prover public key", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ProofBundleInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ActionState", + "description": "", + "fields": [ + { + "name": "action", + "description": "", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "FieldElem", + "ofType": null + } + } + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "transactionSequenceNo", + "description": "", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "actionSequenceNo", + "description": "", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "blockNumber", + "description": "", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "Encoding", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "JSON", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "BASE64", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "VrfEvaluationInput", + "description": "The witness to a vrf evaluation", + "fields": [ + { + "name": "vrfThreshold", + "description": null, + "args": [], + "type": { + "kind": "INPUT_OBJECT", + "name": "VrfThresholdInput", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "scaledMessageHash", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "s", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "c", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "publicKey", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "message", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "VrfMessageInput", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "vrfThreshold", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "VrfThresholdInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "scaledMessageHash", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + "defaultValue": null + }, + { + "name": "s", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "c", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "publicKey", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "message", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "VrfMessageInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "VrfMessageInput", + "description": "The inputs to a vrf evaluation", + "fields": [ + { + "name": "delegatorIndex", + "description": + "Position in the ledger of the delegator's account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "epochSeed", + "description": "Formatted with base58check", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "globalSlot", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "delegatorIndex", + "description": + "Position in the ledger of the delegator's account", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "defaultValue": null + }, + { + "name": "epochSeed", + "description": "Formatted with base58check", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "globalSlot", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "VrfThresholdInput", + "description": + "The amount of stake delegated, used to determine the threshold for a vrf evaluation producing a block", + "fields": [ + { + "name": "totalStake", + "description": + "The total amount of stake across all accounts in the epoch's staking ledger.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt64", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "delegatedStake", + "description": + "The amount of stake delegated to the vrf evaluator by the delegating account. This should match the amount in the epoch's staking ledger, which may be different to the amount in the current ledger.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt64", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "totalStake", + "description": + "The total amount of stake across all accounts in the epoch's staking ledger.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt64", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "delegatedStake", + "description": + "The amount of stake delegated to the vrf evaluator by the delegating account. This should match the amount in the epoch's staking ledger, which may be different to the amount in the current ledger.", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt64", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "VrfOutputTruncated", + "description": "truncated vrf output", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VrfThreshold", + "description": + "The amount of stake delegated, used to determine the threshold for a vrf evaluation winning a slot", + "fields": [ + { + "name": "delegatedStake", + "description": + "The amount of stake delegated to the vrf evaluator by the delegating account. This should match the amount in the epoch's staking ledger, which may be different to the amount in the current ledger.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Balance", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "totalStake", + "description": + "The total amount of stake across all accounts in the epoch's staking ledger.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "VrfScalar", + "description": "consensus vrf scalar", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VrfMessage", + "description": "The inputs to a vrf evaluation", + "fields": [ + { + "name": "globalSlot", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalSlotSinceHardFork", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "epochSeed", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "EpochSeed", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "delegatorIndex", + "description": + "Position in the ledger of the delegator's account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VrfEvaluation", + "description": + "A witness to a vrf evaluation, which may be externally verified", + "fields": [ + { + "name": "message", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VrfMessage", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "publicKey", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "c", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "VrfScalar", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "s", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "VrfScalar", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "scaledMessageHash", + "description": + "A group element represented as 2 field elements", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vrfThreshold", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "VrfThreshold", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vrfOutput", + "description": + "The vrf output derived from the evaluation witness. If null, the vrf witness was invalid.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "VrfOutputTruncated", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vrfOutputFractional", + "description": + "The vrf output derived from the evaluation witness, as a fraction. This represents a won slot if vrfOutputFractional <= (1 - (1 / 4)^(delegated_balance / total_stake)). If null, the vrf witness was invalid.", + "args": [], + "type": { "kind": "SCALAR", "name": "Float", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "thresholdMet", + "description": + "Whether the threshold to produce a block was met, if specified", + "args": [ + { + "name": "input", + "description": "Override for delegation threshold", + "type": { + "kind": "INPUT_OBJECT", + "name": "VrfThresholdInput", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SignatureInput", + "description": + "A cryptographic signature -- you must provide either field+scalar or rawSignature", + "fields": [ + { + "name": "rawSignature", + "description": "Raw encoded signature", + "args": [], + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "scalar", + "description": "Scalar component of signature", + "args": [], + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "field", + "description": "Field component of signature", + "args": [], + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "rawSignature", + "description": "Raw encoded signature", + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "defaultValue": null + }, + { + "name": "scalar", + "description": "Scalar component of signature", + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "defaultValue": null + }, + { + "name": "field", + "description": "Field component of signature", + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "UInt64", + "description": + "String or Integer representation of a uint64 number. If the input is a string, it must represent the number in base 10", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "SendPaymentInput", + "description": null, + "fields": [ + { + "name": "nonce", + "description": + "Should only be set when cancelling transactions, otherwise a nonce is determined automatically", + "args": [], + "type": { "kind": "SCALAR", "name": "UInt32", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "memo", + "description": "Short arbitrary message provided by the sender", + "args": [], + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "validUntil", + "description": + "The global slot since genesis after which this transaction cannot be applied", + "args": [], + "type": { "kind": "SCALAR", "name": "UInt32", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fee", + "description": "Fee amount in order to send payment", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt64", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "amount", + "description": "Amount of MINA to send to receiver", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt64", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "to", + "description": "Public key of recipient of payment", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "from", + "description": "Public key of sender of payment", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "nonce", + "description": + "Should only be set when cancelling transactions, otherwise a nonce is determined automatically", + "type": { "kind": "SCALAR", "name": "UInt32", "ofType": null }, + "defaultValue": null + }, + { + "name": "memo", + "description": "Short arbitrary message provided by the sender", + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "defaultValue": null + }, + { + "name": "validUntil", + "description": + "The global slot since genesis after which this transaction cannot be applied", + "type": { "kind": "SCALAR", "name": "UInt32", "ofType": null }, + "defaultValue": null + }, + { + "name": "fee", + "description": "Fee amount in order to send payment", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt64", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "amount", + "description": "Amount of MINA to send to receiver", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt64", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "to", + "description": "Public key of recipient of payment", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "from", + "description": "Public key of sender of payment", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "GenesisConstants", + "description": null, + "fields": [ + { + "name": "accountCreationFee", + "description": "The fee charged to create a new account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "coinbase", + "description": + "The amount received as a coinbase reward for producing a block", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "genesisTimestamp", + "description": "The genesis timestamp in ISO 8601 format", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "EncodedAccount", + "description": null, + "fields": [ + { + "name": "account", + "description": "Base64 encoded account as binable wire type", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "merklePath", + "description": "Membership proof in the snarked ledger", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "MerklePathElement", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "AccountInput", + "description": "An account with a public key and a token id", + "fields": [ + { + "name": "token", + "description": "Token id of the account", + "args": [], + "type": { "kind": "SCALAR", "name": "TokenId", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "publicKey", + "description": "Public key of the account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": [ + { + "name": "token", + "description": "Token id of the account", + "type": { "kind": "SCALAR", "name": "TokenId", "ofType": null }, + "defaultValue": null + }, + { + "name": "publicKey", + "description": "Public key of the account", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "defaultValue": null + } + ], + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "MembershipInfo", + "description": null, + "fields": [ + { + "name": "accountBalance", + "description": "Account balance for a pk and token pair", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Balance", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "timingInfo", + "description": "Account timing according to chain state", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AccountTiming", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nonce", + "description": "current nonce related to the account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "merklePath", + "description": "Membership proof in the snarked ledger", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "MerklePathElement", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "WorkBundleSpec", + "description": + "Witnesses and statements for snark work bundles. Includes optional fees and prover public keys for ones that have proofs in the snark pool", + "fields": [ + { + "name": "spec", + "description": "Snark work specification in json format", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "snarkFee", + "description": "Fee if proof for the spec exists in snark pool", + "args": [], + "type": { "kind": "SCALAR", "name": "Fee", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "snarkProverKey", + "description": + "Prover public key if proof for the spec exists in snark pool", + "args": [], + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "workIds", + "description": "Unique identifier for a snark work", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PendingSnarkWorkSpec", + "description": + "Snark work witnesses and statements that are yet to be proven or included in blocks", + "fields": [ + { + "name": "workBundleSpec", + "description": "Work bundle spec with one or two snark work", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "WorkBundleSpec", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "WorkDescription", + "description": + "Transition from a source ledger to a target ledger with some fee excess and increase in supply ", + "fields": [ + { + "name": "sourceFirstPassLedgerHash", + "description": + "Base58Check-encoded hash of the source first-pass ledger", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "LedgerHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "targetFirstPassLedgerHash", + "description": + "Base58Check-encoded hash of the target first-pass ledger", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "LedgerHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sourceSecondPassLedgerHash", + "description": + "Base58Check-encoded hash of the source second-pass ledger", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "LedgerHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "targetSecondPassLedgerHash", + "description": + "Base58Check-encoded hash of the target second-pass ledger", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "LedgerHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "feeExcess", + "description": + "Total transaction fee that is not accounted for in the transition from source ledger to target ledger", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "FeeExcess", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "supplyIncrease", + "description": "Increase in total supply", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "Use supplyChange" + }, + { + "name": "supplyChange", + "description": "Increase/Decrease in total supply", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SignedAmount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "workId", + "description": "Unique identifier for a snark work", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PendingSnarkWork", + "description": + "Snark work bundles that are not available in the pool yet", + "fields": [ + { + "name": "workBundle", + "description": "Work bundle with one or two snark work", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "WorkDescription", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Float", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "TrustStatusPayload", + "description": null, + "fields": [ + { + "name": "ipAddr", + "description": "IP address", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "InetAddr", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "peerId", + "description": "libp2p Peer ID", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "trust", + "description": "Trust score", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "bannedStatus", + "description": "Banned status", + "args": [], + "type": { "kind": "SCALAR", "name": "Time", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "TransactionStatus", + "description": "Status of a transaction", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "INCLUDED", + "description": "A transaction that is on the longest chain", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "PENDING", + "description": + "A transaction either in the transition frontier or in transaction pool but is not on the longest chain", + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "UNKNOWN", + "description": + "The transaction has either been snarked, reached finality through consensus or has been dropped", + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "ID", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CompletedWork", + "description": "Completed snark works", + "fields": [ + { + "name": "prover", + "description": "Public key of the prover", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fee", + "description": "Amount the prover is paid for the snark work", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "workIds", + "description": "Unique identifier for the snark work purchased", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "FeeTransferType", + "description": "fee transfer type", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "FeeTransfer", + "description": null, + "fields": [ + { + "name": "recipient", + "description": "Public key of fee transfer recipient", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fee", + "description": + "Amount that the recipient is paid in this fee transfer", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "type", + "description": + "Fee_transfer|Fee_transfer_via_coinbase Snark worker fees deducted from the coinbase amount are of type 'Fee_transfer_via_coinbase', rest are deducted from transaction fees", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "FeeTransferType", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Index", + "description": "ocaml integer as a string", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ZkappCommandFailureReason", + "description": null, + "fields": [ + { + "name": "index", + "description": "List index of the account update that failed", + "args": [], + "type": { "kind": "SCALAR", "name": "Index", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "failures", + "description": + "Failure reason for the account update or any nested zkapp command", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TransactionStatusFailure", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Memo", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "ZkappProof", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Control", + "description": null, + "fields": [ + { + "name": "proof", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "ZkappProof", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "signature", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Signature", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AuthorizationKindStructured", + "description": null, + "fields": [ + { + "name": "isSigned", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "isProved", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "verificationKeyHash", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "MayUseToken", + "description": null, + "fields": [ + { + "name": "parentsOwnToken", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "inheritFromParent", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NonceInterval", + "description": null, + "fields": [ + { + "name": "lower", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "upper", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "BalanceInterval", + "description": null, + "fields": [ + { + "name": "lower", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Balance", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "upper", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Balance", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AccountPrecondition", + "description": null, + "fields": [ + { + "name": "balance", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "BalanceInterval", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nonce", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "NonceInterval", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "receiptChainHash", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "delegate", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "state", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "actionState", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "provedState", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "isNew", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "EpochLedgerPrecondition", + "description": null, + "fields": [ + { + "name": "hash", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "totalCurrency", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "CurrencyAmountInterval", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "EpochDataPrecondition", + "description": null, + "fields": [ + { + "name": "ledger", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "EpochLedgerPrecondition", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "seed", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "startCheckpoint", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lockCheckpoint", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "epochLength", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "LengthInterval", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "GlobalSlotSinceGenesisInterval", + "description": null, + "fields": [ + { + "name": "lower", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalSlotSinceGenesis", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "upper", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalSlotSinceGenesis", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "CurrencyAmountInterval", + "description": null, + "fields": [ + { + "name": "lower", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CurrencyAmount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "upper", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CurrencyAmount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "LengthInterval", + "description": null, + "fields": [ + { + "name": "lower", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "upper", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NetworkPrecondition", + "description": null, + "fields": [ + { + "name": "snarkedLedgerHash", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Field", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "blockchainLength", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "LengthInterval", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "minWindowDensity", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "LengthInterval", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "totalCurrency", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "CurrencyAmountInterval", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "globalSlotSinceGenesis", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "GlobalSlotSinceGenesisInterval", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "stakingEpochData", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "EpochDataPrecondition", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nextEpochData", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "EpochDataPrecondition", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Preconditions", + "description": null, + "fields": [ + { + "name": "network", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "NetworkPrecondition", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AccountPrecondition", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "validWhile", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "GlobalSlotSinceGenesisInterval", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Sign", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "BalanceChange", + "description": null, + "fields": [ + { + "name": "magnitude", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CurrencyAmount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sgn", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Sign", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "CurrencyAmount", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Timing", + "description": null, + "fields": [ + { + "name": "initialMinimumBalance", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Balance", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "cliffTime", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalSlotSinceGenesis", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "cliffAmount", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CurrencyAmount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vestingPeriod", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalSlotSpan", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vestingIncrement", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "CurrencyAmount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "AuthRequired", + "description": "Kind of authorization required", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Permissions", + "description": null, + "fields": [ + { + "name": "editState", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "access", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "send", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "receive", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setDelegate", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setPermissions", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setVerificationKey", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VerificationKeyPermission", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setZkappUri", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "editActionState", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setTokenSymbol", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "incrementNonce", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setVotingFor", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setTiming", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "AuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VerificationKeyWithHash", + "description": null, + "fields": [ + { + "name": "data", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "VerificationKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "hash", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Field", + "description": "String representing an Fp Field element", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AccountUpdateModification", + "description": null, + "fields": [ + { + "name": "appState", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "delegate", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "verificationKey", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "VerificationKeyWithHash", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "permissions", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "Permissions", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "zkappUri", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tokenSymbol", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "timing", + "description": null, + "args": [], + "type": { "kind": "OBJECT", "name": "Timing", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "votingFor", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "StateHash", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AccountUpdateBody", + "description": null, + "fields": [ + { + "name": "publicKey", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tokenId", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "update", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AccountUpdateModification", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "balanceChange", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "BalanceChange", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "incrementNonce", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "events", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + } + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "actions", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + } + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "callData", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Field", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "callDepth", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "preconditions", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Preconditions", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "useFullCommitment", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "implicitAccountCreationFee", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "mayUseToken", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "MayUseToken", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "authorizationKind", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AuthorizationKindStructured", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ZkappAccountUpdate", + "description": "An account update in a zkApp transaction", + "fields": [ + { + "name": "body", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AccountUpdateBody", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "authorization", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Control", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Signature", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "GlobalSlotSinceGenesis", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "FeePayerBody", + "description": null, + "fields": [ + { + "name": "publicKey", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fee", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "validUntil", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "GlobalSlotSinceGenesis", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nonce", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ZkappFeePayer", + "description": null, + "fields": [ + { + "name": "body", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "FeePayerBody", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "authorization", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Signature", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ZkappCommand", + "description": null, + "fields": [ + { + "name": "feePayer", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ZkappFeePayer", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "accountUpdates", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ZkappAccountUpdate", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "memo", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Memo", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ZkappCommandResult", + "description": null, + "fields": [ + { + "name": "id", + "description": "A Base64 string representing the zkApp command", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TransactionId", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "hash", + "description": "A cryptographic hash of the zkApp command", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TransactionHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "zkappCommand", + "description": "zkApp command representing the transaction", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ZkappCommand", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "failureReason", + "description": + "The reason for the zkApp transaction failure; null means success or the status is unknown", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ZkappCommandFailureReason", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "UserCommandPayment", + "description": null, + "fields": [ + { + "name": "id", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TransactionId", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "hash", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TransactionHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "kind", + "description": "String describing the kind of user command", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UserCommandKind", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nonce", + "description": + "Sequence number of command for the fee-payer's account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "source", + "description": "Account that the command is sent from", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "receiver", + "description": "Account that the command applies to", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "feePayer", + "description": "Account that pays the fees for the command", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use source field instead" + }, + { + "name": "validUntil", + "description": + "The global slot number after which this transaction cannot be applied", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Globalslot", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token", + "description": "Token used for the transaction", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "amount", + "description": + "Amount that the source is sending to receiver; 0 for commands without an associated amount", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "feeToken", + "description": "Token used to pay the fee", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fee", + "description": + "Fee that the fee-payer is willing to pay for making the transaction", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "memo", + "description": + "A short message from the sender, encoded with Base58Check, version byte=0x14; byte 2 of the decoding is the message length", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "isDelegation", + "description": + "If true, this command represents a delegation of stake", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use kind field instead" + }, + { + "name": "from", + "description": "Public key of the sender", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use feePayer field instead" + }, + { + "name": "fromAccount", + "description": "Account of the sender", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use feePayer field instead" + }, + { + "name": "to", + "description": "Public key of the receiver", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use receiver field instead" + }, + { + "name": "toAccount", + "description": "Account of the receiver", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use receiver field instead" + }, + { + "name": "failureReason", + "description": + "null is no failure or status unknown, reason for failure otherwise.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "TransactionStatusFailure", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { "kind": "INTERFACE", "name": "UserCommand", "ofType": null } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "TransactionStatusFailure", + "description": "transaction status failure", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "UserCommandKind", + "description": "The kind of user command", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "TransactionHash", + "description": "Base58Check-encoded transaction hash", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "TransactionId", + "description": "Base64-encoded transaction", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "UserCommandDelegation", + "description": null, + "fields": [ + { + "name": "delegator", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "delegatee", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "id", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TransactionId", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "hash", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TransactionHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "kind", + "description": "String describing the kind of user command", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UserCommandKind", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nonce", + "description": + "Sequence number of command for the fee-payer's account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "source", + "description": "Account that the command is sent from", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "receiver", + "description": "Account that the command applies to", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "feePayer", + "description": "Account that pays the fees for the command", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use source field instead" + }, + { + "name": "validUntil", + "description": + "The global slot number after which this transaction cannot be applied", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Globalslot", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token", + "description": "Token used for the transaction", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "amount", + "description": + "Amount that the source is sending to receiver; 0 for commands without an associated amount", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "feeToken", + "description": "Token used to pay the fee", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fee", + "description": + "Fee that the fee-payer is willing to pay for making the transaction", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "memo", + "description": + "A short message from the sender, encoded with Base58Check, version byte=0x14; byte 2 of the decoding is the message length", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "isDelegation", + "description": + "If true, this command represents a delegation of stake", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use kind field instead" + }, + { + "name": "from", + "description": "Public key of the sender", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use feePayer field instead" + }, + { + "name": "fromAccount", + "description": "Account of the sender", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use feePayer field instead" + }, + { + "name": "to", + "description": "Public key of the receiver", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use receiver field instead" + }, + { + "name": "toAccount", + "description": "Account of the receiver", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use receiver field instead" + }, + { + "name": "failureReason", + "description": + "null is no failure or status unknown, reason for failure otherwise.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "TransactionStatusFailure", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [ + { "kind": "INTERFACE", "name": "UserCommand", "ofType": null } + ], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INTERFACE", + "name": "UserCommand", + "description": "Common interface for user commands", + "fields": [ + { + "name": "id", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TransactionId", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "hash", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TransactionHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "kind", + "description": "String describing the kind of user command", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UserCommandKind", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nonce", + "description": + "Sequence number of command for the fee-payer's account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "source", + "description": "Account that the command is sent from", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "receiver", + "description": "Account that the command applies to", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "feePayer", + "description": "Account that pays the fees for the command", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "validUntil", + "description": + "The global slot number after which this transaction cannot be applied", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Globalslot", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token", + "description": "Token used by the command", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "amount", + "description": + "Amount that the source is sending to receiver - 0 for commands that are not associated with an amount", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "feeToken", + "description": "Token used to pay the fee", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fee", + "description": + "Fee that the fee-payer is willing to pay for making the transaction", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "memo", + "description": "Short arbitrary message provided by the sender", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "isDelegation", + "description": + "If true, this represents a delegation of stake, otherwise it is a payment", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use kind field instead" + }, + { + "name": "from", + "description": "Public key of the sender", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use feePayer field instead" + }, + { + "name": "fromAccount", + "description": "Account of the sender", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use feePayer field instead" + }, + { + "name": "to", + "description": "Public key of the receiver", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use receiver field instead" + }, + { + "name": "toAccount", + "description": "Account of the receiver", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use receiver field instead" + }, + { + "name": "failureReason", + "description": + "null is no failure, reason for failure otherwise.", + "args": [], + "type": { + "kind": "SCALAR", + "name": "TransactionStatusFailure", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": [ + { + "kind": "OBJECT", + "name": "UserCommandDelegation", + "ofType": null + }, + { + "kind": "OBJECT", + "name": "UserCommandPayment", + "ofType": null + } + ] + }, + { + "kind": "OBJECT", + "name": "Transactions", + "description": "Different types of transactions in a block", + "fields": [ + { + "name": "userCommands", + "description": + "List of user commands (payments and stake delegations) included in this block", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "UserCommand", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "zkappCommands", + "description": "List of zkApp commands included in this block", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ZkappCommandResult", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "feeTransfer", + "description": "List of fee transfers included in this block", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "FeeTransfer", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "coinbase", + "description": + "Amount of MINA granted to the producer of this block", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "coinbaseReceiverAccount", + "description": + "Account to which the coinbase for this block was granted", + "args": [], + "type": { "kind": "OBJECT", "name": "Account", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "JSON", + "description": "Arbitrary JSON", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "PrecomputedBlockProof", + "description": "Base-64 encoded proof", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "protocolStateProof", + "description": null, + "fields": [ + { + "name": "base64", + "description": "Base-64 encoded proof", + "args": [], + "type": { + "kind": "SCALAR", + "name": "PrecomputedBlockProof", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "json", + "description": "JSON-encoded proof", + "args": [], + "type": { "kind": "SCALAR", "name": "JSON", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Epoch", + "description": "epoch", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Slot", + "description": "slot", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NextEpochData", + "description": null, + "fields": [ + { + "name": "ledger", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "epochLedger", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "seed", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "EpochSeed", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "startCheckpoint", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "StateHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lockCheckpoint", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "epochLength", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Length", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "EpochSeed", + "description": "Base58Check-encoded epoch seed", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "epochLedger", + "description": null, + "fields": [ + { + "name": "hash", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "LedgerHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "totalCurrency", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "StakingEpochData", + "description": null, + "fields": [ + { + "name": "ledger", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "epochLedger", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "seed", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "EpochSeed", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "startCheckpoint", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "StateHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lockCheckpoint", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "epochLength", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Length", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ConsensusState", + "description": null, + "fields": [ + { + "name": "blockchainLength", + "description": "Length of the blockchain at this block", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Length", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use blockHeight instead" + }, + { + "name": "blockHeight", + "description": "Height of the blockchain at this block", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Length", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "epochCount", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Length", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "minWindowDensity", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Length", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lastVrfOutput", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "totalCurrency", + "description": "Total currency in circulation at this block", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "stakingEpochData", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "StakingEpochData", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nextEpochData", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "NextEpochData", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "hasAncestorInSameCheckpointWindow", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "slot", + "description": "Slot in which this block was created", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Slot", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "slotSinceGenesis", + "description": "Slot since genesis (across all hard-forks)", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Globalslot", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "epoch", + "description": "Epoch in which this block was created", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Epoch", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "superchargedCoinbase", + "description": + "Whether or not this coinbase was \"supercharged\", ie. created by an account that has no locked tokens", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "blockStakeWinner", + "description": + "The public key that is responsible for winning this block (including delegations)", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "blockCreator", + "description": + "The block producer public key that created this block", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "coinbaseReceiever", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "BodyReference", + "description": + "A reference to how the block header refers to the body of the block as a hex-encoded string", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SignedFee", + "description": "Signed fee", + "fields": [ + { + "name": "sign", + "description": "+/-", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "ENUM", "name": "sign", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "feeMagnitude", + "description": "Fee", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "FeeExcess", + "description": "Fee excess divided into left, right components", + "fields": [ + { + "name": "feeTokenLeft", + "description": "Token id for left component of fee excess", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "feeExcessLeft", + "description": "Fee for left component of fee excess", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SignedFee", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "feeTokenRight", + "description": "Token id for right component of fee excess", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "feeExcessRight", + "description": "Fee for right component of fee excess", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SignedFee", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "sign", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "PLUS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "MINUS", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SignedAmount", + "description": "Signed amount", + "fields": [ + { + "name": "sign", + "description": "+/-", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "ENUM", "name": "sign", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "amountMagnitude", + "description": "Amount", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Amount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "LocalState", + "description": null, + "fields": [ + { + "name": "stackFrame", + "description": "Stack frame component of local state", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "FieldElem", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "callStack", + "description": "Call stack component of local state", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "FieldElem", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "transactionCommitment", + "description": + "Transaction commitment component of local state", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "FieldElem", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fullTransactionCommitment", + "description": + "Full transaction commitment component of local state", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "FieldElem", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "excess", + "description": "Excess component of local state", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SignedAmount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "supplyIncrease", + "description": "Supply increase component of local state", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SignedAmount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ledger", + "description": "Ledger component of local state", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "LedgerHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "success", + "description": "Success component of local state", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "accountUpdateIndex", + "description": "Account update index component of local state", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "failureStatusTable", + "description": "Failure status table component of local state", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "willSucceed", + "description": "Will-succeed component of local state", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "StateStack", + "description": null, + "fields": [ + { + "name": "initial", + "description": "Initial hash", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "FieldElem", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "current", + "description": "Current hash", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "FieldElem", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "PendingCoinbaseStack", + "description": null, + "fields": [ + { + "name": "dataStack", + "description": "Data component of pending coinbase stack", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "FieldElem", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "stateStack", + "description": "State component of pending coinbase stack", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "StateStack", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Registers", + "description": null, + "fields": [ + { + "name": "firstPassLedger", + "description": "First pass ledger hash", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "LedgerHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "secondPassLedger", + "description": "Second pass ledger hash", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "LedgerHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pendingCoinbaseStack", + "description": "Pending coinbase stack", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PendingCoinbaseStack", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "localState", + "description": "Local state", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "LocalState", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SnarkedLedgerState", + "description": null, + "fields": [ + { + "name": "sourceRegisters", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Registers", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "targetRegisters", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Registers", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "connectingLedgerLeft", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "LedgerHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "connectingLedgerRight", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "LedgerHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "supplyIncrease", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SignedAmount", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "feeExcess", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "FeeExcess", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "sokDigest", + "description": "Placeholder for SOK digest", + "args": [], + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "PendingCoinbaseHash", + "description": + "Base58Check-encoded hash of a pending coinbase hash", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "PendingCoinbaseAuxHash", + "description": + "Base58Check-encoded hash of a pending coinbase auxiliary hash", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "StagedLedgerAuxHash", + "description": + "Base58Check-encoded hash of the staged ledger hash's aux_hash", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "LedgerHash", + "description": "Base58Check-encoded ledger hash", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "BlockchainState", + "description": null, + "fields": [ + { + "name": "date", + "description": + "date (stringified Unix time - number of milliseconds since January 1, 1970)", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BlockTime", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "utcDate", + "description": + "utcDate (stringified Unix time - number of milliseconds since January 1, 1970). Time offsets are adjusted to reflect true wall-clock time instead of genesis time.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BlockTime", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "snarkedLedgerHash", + "description": "Base58Check-encoded hash of the snarked ledger", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "LedgerHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "stagedLedgerHash", + "description": + "Base58Check-encoded hash of the staged ledger hash's main ledger hash", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "LedgerHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "stagedLedgerAuxHash", + "description": + "Base58Check-encoded hash of the staged ledger hash's aux_hash", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "StagedLedgerAuxHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "stagedLedgerPendingCoinbaseAux", + "description": + "Base58Check-encoded staged ledger hash's pending_coinbase_aux", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PendingCoinbaseAuxHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "stagedLedgerPendingCoinbaseHash", + "description": + "Base58Check-encoded hash of the staged ledger hash's pending_coinbase_hash", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PendingCoinbaseHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "stagedLedgerProofEmitted", + "description": + "Block finished a staged ledger, and a proof was emitted from it and included into this block's proof. If there is no transition frontier available or no block found, this will return null.", + "args": [], + "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ledgerProofStatement", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SnarkedLedgerState", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "bodyReference", + "description": + "A reference to how the block header refers to the body of the block as a hex-encoded string", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BodyReference", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ProtocolState", + "description": null, + "fields": [ + { + "name": "previousStateHash", + "description": "Base58Check-encoded hash of the previous state", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "StateHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "blockchainState", + "description": + "State which is agnostic of a particular consensus algorithm", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "BlockchainState", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "consensusState", + "description": + "State specific to the minaboros Proof of Stake consensus algorithm", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ConsensusState", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "StateHashAsDecimal", + "description": + "Experimental: Bigint field-element representation of stateHash", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Block", + "description": null, + "fields": [ + { + "name": "creator", + "description": "Public key of account that produced this block", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use creatorAccount field instead" + }, + { + "name": "creatorAccount", + "description": "Account that produced this block", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "winnerAccount", + "description": "Account that won the slot (Delegator/Staker)", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "stateHash", + "description": + "Base58Check-encoded hash of the state after this block", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "StateHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "stateHashField", + "description": + "Experimental: Bigint field-element representation of stateHash", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "StateHashAsDecimal", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "protocolState", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ProtocolState", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "protocolStateProof", + "description": "Snark proof of blockchain state", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "protocolStateProof", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "transactions", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Transactions", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "commandTransactionCount", + "description": + "Count of user command transactions in the block", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "snarkJobs", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "CompletedWork", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Fee", + "description": "fee", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SnarkWorker", + "description": null, + "fields": [ + { + "name": "key", + "description": "Public key of current snark worker", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "use account field instead" + }, + { + "name": "account", + "description": "Account of the current snark worker", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fee", + "description": + "Fee that snark worker is charging to generate a snark proof", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Fee", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "InetAddr", + "description": "network address", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "NetworkPeerPayload", + "description": null, + "fields": [ + { + "name": "peerId", + "description": "base58-encoded peer ID", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "host", + "description": "IP address of the remote host", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "InetAddr", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "libp2pPort", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SetConnectionGatingConfigPayload", + "description": null, + "fields": [ + { + "name": "trustedPeers", + "description": "Peers we will always allow connections from", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "NetworkPeerPayload", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "bannedPeers", + "description": + "Peers we will never allow connections from (unless they are also trusted!)", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "NetworkPeerPayload", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "isolate", + "description": + "If true, no connections will be allowed unless they are from a trusted peer", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "MerklePathElement", + "description": null, + "fields": [ + { + "name": "left", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "FieldElem", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "right", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "FieldElem", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Action", + "description": "action", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "VerificationKeyHash", + "description": "Hash of verification key", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "VerificationKey", + "description": "verification key in Base64 format", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AccountVerificationKeyWithHash", + "description": "Verification key with hash", + "fields": [ + { + "name": "verificationKey", + "description": "verification key in Base64 format", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "VerificationKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "hash", + "description": "Hash of verification key", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "VerificationKeyHash", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "VerificationKeyPermission", + "description": null, + "fields": [ + { + "name": "auth", + "description": + "Authorization required to set the verification key of the zkApp associated with the account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "AccountAuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "txnVersion", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "AccountAuthRequired", + "description": "Kind of authorization required", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "None", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "Either", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "Proof", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "Signature", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "Impossible", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AccountPermissions", + "description": null, + "fields": [ + { + "name": "editState", + "description": "Authorization required to edit zkApp state", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "AccountAuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "send", + "description": "Authorization required to send tokens", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "AccountAuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "receive", + "description": "Authorization required to receive tokens", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "AccountAuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "access", + "description": "Authorization required to access the account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "AccountAuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setDelegate", + "description": "Authorization required to set the delegate", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "AccountAuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setPermissions", + "description": "Authorization required to change permissions", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "AccountAuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setVerificationKey", + "description": + "Authorization required to set the verification key of the zkApp associated with the account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VerificationKeyPermission", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setZkappUri", + "description": + "Authorization required to change the URI of the zkApp associated with the account ", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "AccountAuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "editActionState", + "description": + "Authorization required to edit the action state", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "AccountAuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setTokenSymbol", + "description": "Authorization required to set the token symbol", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "AccountAuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "incrementNonce", + "description": "Authorization required to increment the nonce", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "AccountAuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setVotingFor", + "description": + "Authorization required to set the state hash the account is voting for", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "AccountAuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "setTiming", + "description": + "Authorization required to set the timing of the account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "AccountAuthRequired", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "FieldElem", + "description": "field element", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "ChainHash", + "description": "Base58Check-encoded chain hash", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "AccountNonce", + "description": "account nonce", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "StateHash", + "description": "Base58Check-encoded state hash", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Length", + "description": "length", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AnnotatedBalance", + "description": + "A total balance annotated with the amount that is currently unknown with the invariant unknown <= total, as well as the currently liquid and locked balances.", + "fields": [ + { + "name": "total", + "description": "The amount of MINA owned by the account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Balance", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "unknown", + "description": + "The amount of MINA owned by the account whose origin is currently unknown", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Balance", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": null + }, + { + "name": "liquid", + "description": + "The amount of MINA owned by the account which is currently available. Can be null if bootstrapping.", + "args": [], + "type": { "kind": "SCALAR", "name": "Balance", "ofType": null }, + "isDeprecated": true, + "deprecationReason": null + }, + { + "name": "locked", + "description": + "The amount of MINA owned by the account which is currently locked. Can be null if bootstrapping.", + "args": [], + "type": { "kind": "SCALAR", "name": "Balance", "ofType": null }, + "isDeprecated": true, + "deprecationReason": null + }, + { + "name": "blockHeight", + "description": "Block height at which balance was measured", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Length", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "stateHash", + "description": + "Hash of block at which balance was measured. Can be null if bootstrapping. Guaranteed to be non-null for direct account lookup queries when not bootstrapping. Can also be null when accessed as nested properties (eg. via delegators). ", + "args": [], + "type": { + "kind": "SCALAR", + "name": "StateHash", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "GlobalSlotSpan", + "description": "global slot span", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Amount", + "description": "amount", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Balance", + "description": "balance", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AccountTiming", + "description": null, + "fields": [ + { + "name": "initialMinimumBalance", + "description": + "The initial minimum balance for a time-locked account", + "args": [], + "type": { "kind": "SCALAR", "name": "Balance", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "cliffTime", + "description": "The cliff time for a time-locked account", + "args": [], + "type": { + "kind": "SCALAR", + "name": "Globalslot", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "cliffAmount", + "description": "The cliff amount for a time-locked account", + "args": [], + "type": { "kind": "SCALAR", "name": "Amount", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vestingPeriod", + "description": "The vesting period for a time-locked account", + "args": [], + "type": { + "kind": "SCALAR", + "name": "GlobalSlotSpan", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "vestingIncrement", + "description": + "The vesting increment for a time-locked account", + "args": [], + "type": { "kind": "SCALAR", "name": "Amount", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "TokenId", + "description": + "String representation of a token's UInt64 identifier", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "PublicKey", + "description": "Base58Check-encoded public key string", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Account", + "description": "An account record according to the daemon", + "fields": [ + { + "name": "publicKey", + "description": "The public identity of the account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tokenId", + "description": "The token associated with this account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "token", + "description": "The token associated with this account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + } + }, + "isDeprecated": true, + "deprecationReason": "Use tokenId" + }, + { + "name": "timing", + "description": "The timing associated with this account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AccountTiming", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "balance", + "description": "The amount of MINA owned by the account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AnnotatedBalance", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nonce", + "description": + "A natural number that increases with each transaction (stringified uint32)", + "args": [], + "type": { + "kind": "SCALAR", + "name": "AccountNonce", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "inferredNonce", + "description": + "Like the `nonce` field, except it includes the scheduled transactions (transactions not yet included in a block) (stringified uint32)", + "args": [], + "type": { + "kind": "SCALAR", + "name": "AccountNonce", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "epochDelegateAccount", + "description": + "The account that you delegated on the staking ledger of the current block's epoch", + "args": [], + "type": { "kind": "OBJECT", "name": "Account", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "receiptChainHash", + "description": "Top hash of the receipt chain Merkle-list", + "args": [], + "type": { + "kind": "SCALAR", + "name": "ChainHash", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "delegate", + "description": + "The public key to which you are delegating - if you are not delegating to anybody, this would return your public key", + "args": [], + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "isDeprecated": true, + "deprecationReason": "use delegateAccount instead" + }, + { + "name": "delegateAccount", + "description": + "The account to which you are delegating - if you are not delegating to anybody, this would return your public key", + "args": [], + "type": { "kind": "OBJECT", "name": "Account", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "delegators", + "description": + "The list of accounts which are delegating to you (note that the info is recorded in the last epoch so it might not be up to date with the current account status)", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "lastEpochDelegators", + "description": + "The list of accounts which are delegating to you in the last epoch (note that the info is recorded in the one before last epoch so it might not be up to date with the current account status)", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "votingFor", + "description": + "The previous epoch lock hash of the chain which you are voting for", + "args": [], + "type": { + "kind": "SCALAR", + "name": "ChainHash", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "stakingActive", + "description": + "True if you are actively staking with this account on the current daemon - this may not yet have been updated if the staking key was changed recently", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "privateKeyPath", + "description": "Path of the private key file for this account", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "locked", + "description": + "True if locked, false if unlocked, null if the account isn't tracked by the queried daemon", + "args": [], + "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "index", + "description": + "The index of this account in the ledger, or null if this account does not yet have a known position in the best tip ledger", + "args": [], + "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "zkappUri", + "description": + "The URI associated with this account, usually pointing to the zkApp source code", + "args": [], + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "zkappState", + "description": + "The 8 field elements comprising the zkApp state associated with this account encoded as bignum strings", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "FieldElem", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "provedState", + "description": + "Boolean indicating whether all 8 fields on zkAppState were last set by a proof-authorized account update", + "args": [], + "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "permissions", + "description": + "Permissions for updating certain fields of this account", + "args": [], + "type": { + "kind": "OBJECT", + "name": "AccountPermissions", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tokenSymbol", + "description": + "The symbol for the token owned by this account, if there is one", + "args": [], + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "verificationKey", + "description": "Verification key associated with this account", + "args": [], + "type": { + "kind": "OBJECT", + "name": "AccountVerificationKeyWithHash", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "actionState", + "description": "Action state associated with this account", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Action", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "leafHash", + "description": + "The base58Check-encoded hash of this account to bootstrap the merklePath", + "args": [], + "type": { + "kind": "SCALAR", + "name": "FieldElem", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "merklePath", + "description": + "Merkle path is a list of path elements that are either the left or right hashes up to the root", + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "MerklePathElement", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Boolean", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "GetFilteredLogEntries", + "description": null, + "fields": [ + { + "name": "logMessages", + "description": "Structured log messages since the given offset", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "isCapturing", + "description": + "Whether we are capturing structured log messages", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Metrics", + "description": null, + "fields": [ + { + "name": "blockProductionDelay", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "transactionPoolDiffReceived", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "transactionPoolDiffBroadcasted", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "transactionsAddedToPool", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "transactionPoolSize", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "snarkPoolDiffReceived", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "snarkPoolDiffBroadcasted", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pendingSnarkWork", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "snarkPoolSize", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "AddrsAndPorts", + "description": null, + "fields": [ + { + "name": "externalIp", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "bindIp", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "peer", + "description": null, + "args": [], + "type": { "kind": "OBJECT", "name": "Peer", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "libp2pPort", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "clientPort", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Time", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ConsensusConfiguration", + "description": null, + "fields": [ + { + "name": "delta", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "k", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "slotsPerEpoch", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "slotDuration", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "epochDuration", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "genesisStateTimestamp", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Time", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "acceptableNetworkDelay", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ConsensusTimeGlobalSlot", + "description": + "Consensus time and the corresponding global slot since genesis", + "fields": [ + { + "name": "consensusTime", + "description": + "Time in terms of slot number in an epoch, start and end time of the slot since UTC epoch", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ConsensusTime", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "globalSlotSinceGenesis", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Globalslot", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Globalslot", + "description": "global slot", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "BlockProducerTimings", + "description": null, + "fields": [ + { + "name": "times", + "description": "Next block production time", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ConsensusTime", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "globalSlotSinceGenesis", + "description": + "Next block production global-slot-since-genesis ", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Globalslot", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "generatedFromConsensusAt", + "description": + "Consensus time of the block that was used to determine the next block production time", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ConsensusTimeGlobalSlot", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "BlockTime", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "GlobalSlotSinceHardFork", + "description": "global slot since hard fork", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "UInt32", + "description": "String representing a uint32 number in base 10", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "ConsensusTime", + "description": null, + "fields": [ + { + "name": "epoch", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "slot", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "globalSlot", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalSlotSinceHardFork", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "startTime", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BlockTime", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "endTime", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "BlockTime", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Span", + "description": "span", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Interval", + "description": null, + "fields": [ + { + "name": "start", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Span", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "stop", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Span", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Histogram", + "description": null, + "fields": [ + { + "name": "values", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "intervals", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Interval", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "underflow", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "overflow", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "RpcPair", + "description": null, + "fields": [ + { + "name": "dispatch", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "Histogram", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "impl", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "Histogram", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "RpcTimings", + "description": null, + "fields": [ + { + "name": "getStagedLedgerAux", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "RpcPair", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "answerSyncLedgerQuery", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "RpcPair", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "getAncestry", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "RpcPair", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "getTransitionChainProof", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "RpcPair", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "getTransitionChain", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "RpcPair", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Histograms", + "description": null, + "fields": [ + { + "name": "rpcTimings", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "RpcTimings", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "externalTransitionLatency", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "Histogram", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "acceptedTransitionLocalLatency", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "Histogram", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "acceptedTransitionRemoteLatency", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "Histogram", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "snarkWorkerZkappTransitionTime", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "Histogram", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "snarkWorkerNonzkappTransitionTime", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "Histogram", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "snarkWorkerMergeTime", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "Histogram", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "Peer", + "description": null, + "fields": [ + { + "name": "host", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "libp2pPort", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "peerId", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "String", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "SCALAR", + "name": "Int", + "description": null, + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "DaemonStatus", + "description": null, + "fields": [ + { + "name": "numAccounts", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "blockchainLength", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "highestBlockLengthReceived", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "highestUnvalidatedBlockLengthReceived", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "uptimeSecs", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ledgerMerkleRoot", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "stateHash", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "chainId", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "commitId", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "confDir", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "peers", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Peer", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "userCommandsSent", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "snarkWorker", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "snarkWorkFee", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "syncStatus", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "SyncStatus", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "catchupStatus", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "blockProductionKeys", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "coinbaseReceiver", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "histograms", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "Histograms", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "consensusTimeBestTip", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "ConsensusTime", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "globalSlotSinceGenesisBestTip", + "description": null, + "args": [], + "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "nextBlockProduction", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "BlockProducerTimings", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "consensusTimeNow", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ConsensusTime", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "consensusMechanism", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "consensusConfiguration", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ConsensusConfiguration", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "addrsAndPorts", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "AddrsAndPorts", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "metrics", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Metrics", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "ENUM", + "name": "SyncStatus", + "description": "Sync status of daemon", + "fields": null, + "inputFields": null, + "interfaces": null, + "enumValues": [ + { + "name": "CONNECTING", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "LISTENING", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "OFFLINE", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "BOOTSTRAP", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "SYNCED", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "CATCHUP", + "description": null, + "isDeprecated": false, + "deprecationReason": null + } + ], + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "query", + "description": null, + "fields": [ + { + "name": "syncStatus", + "description": "Network sync status", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "SyncStatus", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "daemonStatus", + "description": "Get running daemon status", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "DaemonStatus", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "version", + "description": "The version of the node (git commit hash)", + "args": [], + "type": { "kind": "SCALAR", "name": "String", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "getFilteredLogEntries", + "description": + "TESTING ONLY: Retrieve all new structured events in memory", + "args": [ + { + "name": "offset", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "GetFilteredLogEntries", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "ownedWallets", + "description": + "Wallets for which the daemon knows the private key", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + } + } + }, + "isDeprecated": true, + "deprecationReason": "use trackedAccounts instead" + }, + { + "name": "trackedAccounts", + "description": + "Accounts for which the daemon tracks the private key", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "wallet", + "description": "Find any wallet via a public key", + "args": [ + { + "name": "publicKey", + "description": "Public key of account being retrieved", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { "kind": "OBJECT", "name": "Account", "ofType": null }, + "isDeprecated": true, + "deprecationReason": "use account instead" + }, + { + "name": "connectionGatingConfig", + "description": + "The rules that the libp2p helper will use to determine which connections to permit", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SetConnectionGatingConfigPayload", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "account", + "description": "Find any account via a public key and token", + "args": [ + { + "name": "token", + "description": + "Token of account being retrieved (defaults to MINA)", + "type": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "publicKey", + "description": "Public key of account being retrieved", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { "kind": "OBJECT", "name": "Account", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "accounts", + "description": "Find all accounts for a public key", + "args": [ + { + "name": "publicKey", + "description": "Public key to find accounts for", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tokenOwner", + "description": "Find the account that owns a given token", + "args": [ + { + "name": "tokenId", + "description": "Token ID to find the owning account for", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { "kind": "OBJECT", "name": "Account", "ofType": null }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "tokenAccounts", + "description": "Find all accounts for a token ID", + "args": [ + { + "name": "tokenId", + "description": "Token ID to find accounts for", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Account", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "currentSnarkWorker", + "description": "Get information about the current snark worker", + "args": [], + "type": { + "kind": "OBJECT", + "name": "SnarkWorker", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "bestChain", + "description": + "Retrieve a list of blocks from transition frontier's root to the current best tip. Returns an error if the system is bootstrapping.", + "args": [ + { + "name": "maxLength", + "description": + "The maximum number of blocks to return. If there are more blocks in the transition frontier from root to tip, the maxLength blocks closest to the best tip will be returned", + "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Block", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "block", + "description": + "Retrieve a block with the given state hash or height, if contained in the transition frontier.", + "args": [ + { + "name": "height", + "description": + "The height of the desired block in the best chain", + "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, + "defaultValue": null + }, + { + "name": "stateHash", + "description": "The state hash of the desired block", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Block", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "genesisBlock", + "description": "Get the genesis block", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Block", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "initialPeers", + "description": + "List of peers that the daemon first used to connect to the network", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "getPeers", + "description": + "List of peers that the daemon is currently connected to", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Peer", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pooledUserCommands", + "description": + "Retrieve all the scheduled user commands for a specified sender that the current daemon sees in its transaction pool. All scheduled commands are queried if no sender is specified", + "args": [ + { + "name": "ids", + "description": "Ids of User commands", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "hashes", + "description": "Hashes of the commands to find in the pool", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "publicKey", + "description": + "Public key of sender of pooled user commands", + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INTERFACE", + "name": "UserCommand", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pooledZkappCommands", + "description": + "Retrieve all the scheduled zkApp commands for a specified sender that the current daemon sees in its transaction pool. All scheduled commands are queried if no sender is specified", + "args": [ + { + "name": "ids", + "description": "Ids of zkApp commands", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "hashes", + "description": + "Hashes of the zkApp commands to find in the pool", + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "defaultValue": null + }, + { + "name": "publicKey", + "description": + "Public key of sender of pooled zkApp commands", + "type": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ZkappCommandResult", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "transactionStatus", + "description": "Get the status of a transaction", + "args": [ + { + "name": "zkappTransaction", + "description": "Id of a zkApp transaction", + "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, + "defaultValue": null + }, + { + "name": "payment", + "description": "Id of a Payment", + "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "TransactionStatus", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "trustStatus", + "description": "Trust status for an IPv4 or IPv6 address", + "args": [ + { + "name": "ipAddress", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TrustStatusPayload", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "trustStatusAll", + "description": "IP address and trust status for all peers", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "TrustStatusPayload", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "snarkPool", + "description": + "List of completed snark works that have the lowest fee so far", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "CompletedWork", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "pendingSnarkWork", + "description": "List of snark works that are yet to be done", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PendingSnarkWork", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "snarkWorkRange", + "description": + "Find any sequence of snark work between two indexes in all available snark work. Returns both completed and uncompleted work.", + "args": [ + { + "name": "endingIndex", + "description": + "The last index to be taken from all available snark work (exclusive). If not specified or greater than the available snark work list,all elements from index [startingIndex] will be returned. An empty list will be returned if startingIndex is not a valid index or if startingIndex >= endingIndex.", + "type": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "startingIndex", + "description": + "The first index to be taken from all available snark work", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "UInt32", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "PendingSnarkWorkSpec", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "snarkedLedgerAccountMembership", + "description": + "obtain a membership proof for an account in the snarked ledger along with the account's balance, timing information, and nonce", + "args": [ + { + "name": "stateHash", + "description": "Hash of the snarked ledger to check", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "accountInfos", + "description": "Token id of the account to check", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AccountInput", + "ofType": null + } + } + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "MembershipInfo", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "encodedSnarkedLedgerAccountMembership", + "description": + "obtain a membership proof for an account in the snarked ledger along with the accounts full information encoded as base64 binable type", + "args": [ + { + "name": "stateHash", + "description": "Hash of the snarked ledger to check", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "accountInfos", + "description": "Token id of the account to check", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AccountInput", + "ofType": null + } + } + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "EncodedAccount", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "genesisConstants", + "description": + "The constants used to determine the configuration of the genesis block and all of its transitive dependencies", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "GenesisConstants", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "timeOffset", + "description": + "The time offset in seconds used to convert real times into blockchain times", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "validatePayment", + "description": "Validate the format and signature of a payment", + "args": [ + { + "name": "signature", + "description": + "If a signature is provided, this transaction is considered signed and will be broadcasted to the network without requiring a private key", + "type": { + "kind": "INPUT_OBJECT", + "name": "SignatureInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "SendPaymentInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "evaluateVrf", + "description": + "Evaluate a vrf for the given public key. This includes a witness which may be verified without access to the private key for this vrf evaluation.", + "args": [ + { + "name": "vrfThreshold", + "description": null, + "type": { + "kind": "INPUT_OBJECT", + "name": "VrfThresholdInput", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "publicKey", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "defaultValue": null + }, + { + "name": "message", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "VrfMessageInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VrfEvaluation", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "checkVrf", + "description": + "Check a vrf evaluation commitment. This can be used to check vrf evaluations without needing to reveal the private key, in the format returned by evaluateVrf", + "args": [ + { + "name": "input", + "description": null, + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "VrfEvaluationInput", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "VrfEvaluation", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "runtimeConfig", + "description": + "The runtime configuration passed to the daemon at start-up", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "fork_config", + "description": + "The runtime configuration for a blockchain fork intended to be a continuation of the current one. By default, this returns the newest block that appeared before the transaction stop slot provided in the configuration, or the best tip if no such block exists.", + "args": [ + { + "name": "height", + "description": + "The height of the desired block in the best chain", + "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, + "defaultValue": null + }, + { + "name": "stateHash", + "description": "The state hash of the desired block", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "threadGraph", + "description": + "A graphviz dot format representation of the deamon's internal thread graph", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "blockchainVerificationKey", + "description": + "The pickles verification key for the protocol state proof", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "JSON", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "networkID", + "description": + "The chain-agnostic identifier of the network this daemon is participating in", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "signatureKind", + "description": + "The signature kind that this daemon instance is using", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "protocolState", + "description": + "Get the protocol state for a given block, optionally encoded in Base64", + "args": [ + { + "name": "encoding", + "description": "Encoding format (JSON or BASE64)", + "type": { + "kind": "ENUM", + "name": "Encoding", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "height", + "description": + "The height of the desired block in the best chain", + "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, + "defaultValue": null + }, + { + "name": "stateHash", + "description": "The state hash of the desired block", + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "accountActions", + "description": + "Find all the actions associated to an account from the current best tip.", + "args": [ + { + "name": "maxLength", + "description": + "The maximum number of blocks to search for actions. If there are more blocks in the transition frontier from root to tip, the maxLength blocks closest to the best tip will be returned", + "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, + "defaultValue": null + }, + { + "name": "token", + "description": + "Token of account being retrieved (defaults to MINA)", + "type": { + "kind": "SCALAR", + "name": "TokenId", + "ofType": null + }, + "defaultValue": null + }, + { + "name": "publicKey", + "description": "Public key of account being retrieved", + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "PublicKey", + "ofType": null + } + }, + "defaultValue": null + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "ActionState", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + } + ], + "directives": [] + } + } +} diff --git a/src/mina_sdk/types.py b/src/mina_sdk/types.py new file mode 100644 index 0000000..f9361a5 --- /dev/null +++ b/src/mina_sdk/types.py @@ -0,0 +1,225 @@ +"""Shared types for the Mina SDK.""" + +from __future__ import annotations + +import random +from dataclasses import dataclass +from enum import Enum +from typing import Any + + +class CurrencyFormat(Enum): + """Representation format for Mina currency values. + + WHOLE: 1 MINA = 10^9 nanomina + NANO: atomic unit (nanomina) + """ + + WHOLE = 1 + NANO = 2 + + +class CurrencyUnderflow(Exception): + pass + + +class Currency: + """Convenience wrapper for Mina currency values with arithmetic support. + + Internally stores values as nanomina (the atomic unit). + Supports addition, subtraction, multiplication, and comparison. + """ + + NANOMINA_PER_MINA = 1_000_000_000 + + def __init__(self, value: int | float | str, fmt: CurrencyFormat = CurrencyFormat.WHOLE): + if fmt == CurrencyFormat.WHOLE: + if isinstance(value, int): + self._nanomina = value * self.NANOMINA_PER_MINA + elif isinstance(value, float): + self._nanomina = self._parse_decimal(str(value)) + elif isinstance(value, str): + self._nanomina = self._parse_decimal(value) + else: + raise TypeError(f"cannot construct Currency from {type(value)}") + elif fmt == CurrencyFormat.NANO: + if not isinstance(value, int): + raise TypeError(f"nanomina value must be int, got {type(value)}") + self._nanomina = value + else: + raise ValueError(f"invalid CurrencyFormat: {fmt}") + + @staticmethod + def _parse_decimal(s: str) -> int: + segments = s.split(".") + if len(segments) == 1: + return int(segments[0]) * Currency.NANOMINA_PER_MINA + elif len(segments) == 2: + left, right = segments + if len(right) <= 9: + return int(left + right + "0" * (9 - len(right))) + else: + raise ValueError(f"invalid mina currency format: {s}") + else: + raise ValueError(f"invalid mina currency format: {s}") + + @classmethod + def from_nanomina(cls, nanomina: int) -> Currency: + return cls(nanomina, fmt=CurrencyFormat.NANO) + + @classmethod + def from_graphql(cls, value: str) -> Currency: + """Parse a currency value as returned by the GraphQL API (nanomina string).""" + return cls(int(value), fmt=CurrencyFormat.NANO) + + @classmethod + def random(cls, lower: Currency, upper: Currency) -> Currency: + if not (isinstance(lower, Currency) and isinstance(upper, Currency)): + raise TypeError("bounds must be Currency instances") + if upper.nanomina < lower.nanomina: + raise ValueError("upper bound must be >= lower bound") + if lower.nanomina == upper.nanomina: + return lower + delta = random.randint(0, upper.nanomina - lower.nanomina) + return cls.from_nanomina(lower.nanomina + delta) + + @property + def nanomina(self) -> int: + return self._nanomina + + @property + def mina(self) -> str: + """Decimal string representation in whole MINA.""" + s = str(self._nanomina) + if len(s) > 9: + return s[:-9] + "." + s[-9:] + else: + return "0." + "0" * (9 - len(s)) + s + + def to_nanomina_str(self) -> str: + """String representation for GraphQL API (nanomina).""" + return str(self._nanomina) + + def __str__(self) -> str: + return self.mina + + def __repr__(self) -> str: + return f"Currency({self.mina})" + + def __eq__(self, other: object) -> bool: + if isinstance(other, Currency): + return self._nanomina == other._nanomina + return NotImplemented + + def __lt__(self, other: Currency) -> bool: + if isinstance(other, Currency): + return self._nanomina < other._nanomina + return NotImplemented + + def __le__(self, other: Currency) -> bool: + if isinstance(other, Currency): + return self._nanomina <= other._nanomina + return NotImplemented + + def __gt__(self, other: Currency) -> bool: + if isinstance(other, Currency): + return self._nanomina > other._nanomina + return NotImplemented + + def __ge__(self, other: Currency) -> bool: + if isinstance(other, Currency): + return self._nanomina >= other._nanomina + return NotImplemented + + def __add__(self, other: Currency) -> Currency: + if isinstance(other, Currency): + return Currency.from_nanomina(self._nanomina + other._nanomina) + return NotImplemented + + def __sub__(self, other: Currency) -> Currency: + if isinstance(other, Currency): + result = self._nanomina - other._nanomina + if result < 0: + raise CurrencyUnderflow( + f"subtraction would result in negative: {self} - {other}" + ) + return Currency.from_nanomina(result) + return NotImplemented + + def __mul__(self, other: int | Currency) -> Currency: + if isinstance(other, int): + return Currency.from_nanomina(self._nanomina * other) + if isinstance(other, Currency): + return Currency.from_nanomina(self._nanomina * other._nanomina) + return NotImplemented + + def __hash__(self) -> int: + return hash(self._nanomina) + + +@dataclass(frozen=True) +class AccountBalance: + total: Currency + liquid: Currency | None = None + locked: Currency | None = None + + +@dataclass(frozen=True) +class AccountData: + public_key: str + nonce: int + balance: AccountBalance + delegate: str | None = None + token_id: str | None = None + + +@dataclass(frozen=True) +class PeerInfo: + peer_id: str + host: str + port: int + + +@dataclass(frozen=True) +class DaemonStatus: + sync_status: str + blockchain_length: int | None = None + highest_block_length_received: int | None = None + uptime_secs: int | None = None + peers: list[PeerInfo] | None = None + commit_id: str | None = None + state_hash: str | None = None + + +@dataclass(frozen=True) +class BlockInfo: + state_hash: str + height: int + global_slot_since_hard_fork: int + global_slot_since_genesis: int + creator_pk: str + command_transaction_count: int + + +@dataclass(frozen=True) +class SendPaymentResult: + id: str + hash: str + nonce: int + + +@dataclass(frozen=True) +class SendDelegationResult: + id: str + hash: str + nonce: int + + +def _parse_response(data: dict[str, Any], path: list[str]) -> Any: + """Navigate a nested dict by a list of keys, raising clear errors on missing fields.""" + current = data + for key in path: + if not isinstance(current, dict) or key not in current: + raise ValueError(f"missing field '{key}' in response at path {path}") + current = current[key] + return current diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/snapshots/snap_test_client.py b/tests/snapshots/snap_test_client.py deleted file mode 100644 index a193f8f..0000000 --- a/tests/snapshots/snap_test_client.py +++ /dev/null @@ -1,181 +0,0 @@ -# -*- coding: utf-8 -*- -# snapshottest: v1 - https://goo.gl/zC4yUc -from __future__ import unicode_literals - -from pysnap import Snapshot - - -snapshots = Snapshot() - -snapshots['TestCodaClient.test_get_daemon_status 1'] = [ - ( - ( - 'http://localhost:8304/graphql' - ,), - { - 'headers': { - 'Accept': 'application/json' - }, - 'json': { - 'query': 'query { daemonStatus { numAccounts blockchainLength highestBlockLengthReceived uptimeSecs ledgerMerkleRoot stateHash commitId peers userCommandsSent snarkWorker snarkWorkFee syncStatus proposePubkeys consensusTimeBestTip consensusTimeNow consensusMechanism confDir commitId consensusConfiguration { delta k c cTimesK slotsPerEpoch slotDuration epochDuration acceptableNetworkDelay } } }' - } - } - ,) -] - -snapshots['TestCodaClient.test_get_daemon_version 1'] = [ - ( - ( - 'http://localhost:8304/graphql' - ,), - { - 'headers': { - 'Accept': 'application/json' - }, - 'json': { - 'query': '{ version }' - } - } - ,) -] - -snapshots['TestCodaClient.test_get_wallets 1'] = [ - ( - ( - 'http://localhost:8304/graphql' - ,), - { - 'headers': { - 'Accept': 'application/json' - }, - 'json': { - 'query': '{ ownedWallets { publicKey balance { total } } }' - } - } - ,) -] - -snapshots['TestCodaClient.test_get_current_snark_worker 1'] = [ - ( - ( - 'http://localhost:8304/graphql' - ,), - { - 'headers': { - 'Accept': 'application/json' - }, - 'json': { - 'query': '{ currentSnarkWorker{ key fee } }' - } - } - ,) -] - -snapshots['TestCodaClient.test_get_sync_status 1'] = [ - ( - ( - 'http://localhost:8304/graphql' - ,), - { - 'headers': { - 'Accept': 'application/json' - }, - 'json': { - 'query': '{ syncStatus }' - } - } - ,) -] - -snapshots['TestCodaClient.test_set_current_snark_worker 1'] = [ - ( - ( - 'http://localhost:8304/graphql' - ,), - { - 'headers': { - 'Accept': 'application/json' - }, - 'json': { - 'query': '{ syncStatus }' - } - } - ,) -] - -snapshots['TestCodaClient.test_send_payment 1'] = [ - ( - ( - 'http://localhost:8304/graphql' - ,), - { - 'headers': { - 'Accept': 'application/json' - }, - 'json': { - 'query': 'mutation($from:PublicKey!, $to:PublicKey!, $amount:UInt64!, $fee:UInt64!, $memo:String){ sendPayment(input: { from:$from, to:$to, amount:$amount, fee:$fee, memo:$memo }) { payment { id, isDelegation, nonce, from, to, amount, fee, memo } } }', - 'variables': { - 'amount': 'amount', - 'fee': 'fee', - 'from': 'from_pk', - 'memo': 'memo', - 'to': 'to_pk' - } - } - } - ,) -] - -snapshots['TestCodaClient.test_get_wallet 1'] = [ - ( - ( - 'http://localhost:8304/graphql' - ,), - { - 'headers': { - 'Accept': 'application/json' - }, - 'json': { - 'query': 'query($publicKey:PublicKey!){ wallet(publicKey:$publicKey) { publicKey balance { total unknown } nonce receiptChainHash delegate votingFor stakingActive privateKeyPath } }', - 'variables': { - 'publicKey': 'pk' - } - } - } - ,) -] - -snapshots['TestCodaClient.test_create_wallet_no_args 1'] = [ - ( - ( - 'http://localhost:8304/graphql' - ,), - { - 'headers': { - 'Accept': 'application/json' - }, - 'json': { - 'query': 'mutation{ addWallet { publicKey } }' - } - } - ,) -] - -snapshots['TestCodaClient.test_get_transaction_status 1'] = [ - ( - ( - 'http://localhost:8304/graphql' - ,), - { - 'headers': { - 'Accept': 'application/json' - }, - 'json': { - 'query': 'query($paymentId:ID!){ transactionStatus(payment:$paymentId) }', - 'variables': { - 'paymentId': 'payment_id' - } - } - } - ,) -] diff --git a/tests/test_client.py b/tests/test_client.py deleted file mode 100644 index 4d00f7e..0000000 --- a/tests/test_client.py +++ /dev/null @@ -1,102 +0,0 @@ -import mock -import requests -from CodaClient import Client -from types import SimpleNamespace - -@mock.patch('requests.post') -class TestCodaClient(): - """ - Tests the CodaClient.Client class - """ - def _mock_response( - self, - status=200, - content="CONTENT", - json_data={"data": "{ foo: 'bar'}"}, - raise_for_status=None): - - mock_resp = mock.Mock() - # mock raise_for_status call w/optional error - mock_resp.raise_for_status = mock.Mock() - if raise_for_status: - mock_resp.raise_for_status.side_effect = raise_for_status - # set status code and content - mock_resp.status_code = status - mock_resp.content = content - # add json data if provided - if json_data: - mock_resp.json = mock.Mock( - return_value=json_data - ) - return mock_resp - - - def test_get_daemon_status(self, mock_post, snapshot ): - mock_post.return_value = self._mock_response(json_data={"data": "foo"}) - - client = Client() - client.get_daemon_status() - snapshot.assert_match(mock_post.call_args_list) - - def test_get_daemon_version(self, mock_post, snapshot): - mock_post.return_value = self._mock_response(json_data={"data": "foo"}) - - client = Client() - client.get_daemon_version() - snapshot.assert_match(mock_post.call_args_list) - - def test_get_wallets(self, mock_post, snapshot): - mock_post.return_value = self._mock_response(json_data={"data": "foo"}) - - client = Client() - client.get_wallets() - snapshot.assert_match(mock_post.call_args_list) - - def test_get_wallet(self, mock_post, snapshot): - mock_post.return_value = self._mock_response(json_data={"data": "foo"}) - - client = Client() - client.get_wallet("pk") - snapshot.assert_match(mock_post.call_args_list) - - def test_get_transaction_status(self, mock_post, snapshot): - mock_post.return_value = self._mock_response(json_data={"data": "foo"}) - - client = Client() - client.get_transaction_status("payment_id") - snapshot.assert_match(mock_post.call_args_list) - - def test_get_current_snark_worker(self, mock_post, snapshot): - mock_post.return_value = self._mock_response(json_data={"data": "foo"}) - - client = Client() - client.get_current_snark_worker() - snapshot.assert_match(mock_post.call_args_list) - - def test_get_sync_status(self, mock_post, snapshot): - mock_post.return_value = self._mock_response(json_data={"data": "foo"}) - - client = Client() - client.get_sync_status() - snapshot.assert_match(mock_post.call_args_list) - - def test_set_current_snark_worker(self, mock_post, snapshot): - mock_post.return_value = self._mock_response(json_data={"data": "foo"}) - - client = Client() - client.set_current_snark_worker("pk", "fee") - snapshot.assert_match(mock_post.call_args_list) - - def test_create_wallet_no_args(self, mock_post, snapshot): - mock_post.return_value = self._mock_response(json_data={"data": "foo"}) - - client = Client() - client.create_wallet() - snapshot.assert_match(mock_post.call_args_list) - - def test_send_payment(self, mock_post, snapshot): - mock_post.return_value = self._mock_response(json_data={"data": "foo"}) - - client = Client() - client.send_payment("to_pk", "from_pk", "amount", "fee", "memo") - snapshot.assert_match(mock_post.call_args_list) \ No newline at end of file diff --git a/tests/test_currency.py b/tests/test_currency.py deleted file mode 100644 index 08ad3eb..0000000 --- a/tests/test_currency.py +++ /dev/null @@ -1,46 +0,0 @@ -from CodaClient import CurrencyFormat, CurrencyUnderflow, Currency - -precision = 10 ** 9 - -def test_constructor_whole_int(): - n = 500 - assert Currency(n).nanocodas() == n * precision - -def test_constructor_whole_float(): - n = 5.5 - assert Currency(n).nanocodas() == n * precision - -def test_constructor_whole_string(): - n = "5.5" - assert Currency(n).nanocodas() == float(n) * precision - -def test_constructor_nano_int(): - n = 500 - assert Currency(n, format=CurrencyFormat.NANO) - -def test_add(): - assert (Currency(5) + Currency(2)).nanocodas() == 7 * precision - -def test_sub(): - assert (Currency(5) - Currency(2)).nanocodas() == 3 * precision - -def test_sub_underflow(): - try: - Currency(5) - Currency(7) - raise Exception('no underflow') - except CurrencyUnderflow: - pass - except: - raise - -def test_mul_int(): - assert (Currency(5) * 2).nanocodas() == 10 * precision - -def test_mul_currency(): - assert (Currency(5) * Currency(2, format=CurrencyFormat.NANO)).nanocodas() == 10 * precision - -def test_random(): - assert (Currency.random(Currency(5), Currency(5)).nanocodas() == 5 * precision) - for _ in range(25): - rand = Currency.random(Currency(3, format=CurrencyFormat.NANO), Currency(5, format=CurrencyFormat.NANO)) - assert (3 <= rand.nanocodas () and rand.nanocodas() <= 5) diff --git a/tests/test_daemon_client.py b/tests/test_daemon_client.py new file mode 100644 index 0000000..5f6f21f --- /dev/null +++ b/tests/test_daemon_client.py @@ -0,0 +1,252 @@ +"""Tests for mina_sdk.daemon.client.""" + +from __future__ import annotations + +import httpx +import pytest +import respx + +from mina_sdk.daemon.client import ConnectionError, GraphQLError, MinaDaemonClient +from mina_sdk.types import Currency + +GRAPHQL_URL = "http://localhost:3085/graphql" + + +@pytest.fixture +def client(): + c = MinaDaemonClient(graphql_uri=GRAPHQL_URL, retries=1, retry_delay=0.0, timeout=5.0) + yield c + c.close() + + +def _gql_response(data): + return httpx.Response(200, json={"data": data}) + + +def _gql_error(errors): + return httpx.Response(200, json={"errors": errors}) + + +@respx.mock +def test_sync_status_synced(client): + respx.post(GRAPHQL_URL).mock(return_value=_gql_response({"syncStatus": "SYNCED"})) + assert client.get_sync_status() == "SYNCED" + + +@respx.mock +def test_sync_status_bootstrap(client): + respx.post(GRAPHQL_URL).mock(return_value=_gql_response({"syncStatus": "BOOTSTRAP"})) + assert client.get_sync_status() == "BOOTSTRAP" + + +@respx.mock +def test_daemon_status(client): + respx.post(GRAPHQL_URL).mock(return_value=_gql_response({ + "daemonStatus": { + "syncStatus": "SYNCED", + "blockchainLength": 100, + "highestBlockLengthReceived": 100, + "uptimeSecs": 3600, + "stateHash": "3NKtest...", + "commitId": "abc123", + "peers": [ + {"peerId": "peer1", "host": "1.2.3.4", "libp2pPort": 8302} + ], + } + })) + status = client.get_daemon_status() + assert status.sync_status == "SYNCED" + assert status.blockchain_length == 100 + assert status.uptime_secs == 3600 + assert len(status.peers) == 1 + assert status.peers[0].peer_id == "peer1" + assert status.peers[0].host == "1.2.3.4" + assert status.peers[0].port == 8302 + + +@respx.mock +def test_network_id(client): + respx.post(GRAPHQL_URL).mock(return_value=_gql_response({"networkID": "mina:testnet"})) + assert client.get_network_id() == "mina:testnet" + + +@respx.mock +def test_get_account(client): + respx.post(GRAPHQL_URL).mock(return_value=_gql_response({ + "account": { + "publicKey": "B62qtest...", + "nonce": "5", + "delegate": "B62qdelegate...", + "tokenId": "1", + "balance": { + "total": "1500000000000", + "liquid": "1000000000000", + "locked": "500000000000", + }, + } + })) + account = client.get_account("B62qtest...") + assert account.public_key == "B62qtest..." + assert account.nonce == 5 + assert account.delegate == "B62qdelegate..." + assert account.balance.total == Currency(1500) + assert account.balance.liquid == Currency(1000) + assert account.balance.locked == Currency(500) + + +@respx.mock +def test_get_account_not_found(client): + respx.post(GRAPHQL_URL).mock(return_value=_gql_response({"account": None})) + with pytest.raises(ValueError, match="account not found"): + client.get_account("B62qnotfound...") + + +@respx.mock +def test_best_chain(client): + respx.post(GRAPHQL_URL).mock(return_value=_gql_response({ + "bestChain": [ + { + "stateHash": "3NKhash1", + "commandTransactionCount": 3, + "creatorAccount": {"publicKey": "B62qcreator..."}, + "protocolState": { + "consensusState": { + "blockHeight": "50", + "slotSinceGenesis": "1000", + "slot": "500", + } + }, + } + ] + })) + blocks = client.get_best_chain(max_length=1) + assert len(blocks) == 1 + assert blocks[0].state_hash == "3NKhash1" + assert blocks[0].height == 50 + assert blocks[0].creator_pk == "B62qcreator..." + assert blocks[0].command_transaction_count == 3 + + +@respx.mock +def test_best_chain_empty(client): + respx.post(GRAPHQL_URL).mock(return_value=_gql_response({"bestChain": None})) + assert client.get_best_chain() == [] + + +@respx.mock +def test_send_payment(client): + respx.post(GRAPHQL_URL).mock(return_value=_gql_response({ + "sendPayment": { + "payment": { + "id": "txn-id-123", + "hash": "CkpHash...", + "nonce": "6", + } + } + })) + result = client.send_payment( + sender="B62qsender...", + receiver="B62qreceiver...", + amount=Currency(10), + fee=Currency("0.1"), + ) + assert result.id == "txn-id-123" + assert result.hash == "CkpHash..." + assert result.nonce == 6 + + +@respx.mock +def test_send_payment_string_amounts(client): + respx.post(GRAPHQL_URL).mock(return_value=_gql_response({ + "sendPayment": { + "payment": {"id": "x", "hash": "y", "nonce": "1"} + } + })) + result = client.send_payment( + sender="B62qsender...", + receiver="B62qreceiver...", + amount="5.0", + fee="0.01", + ) + assert result.nonce == 1 + + +@respx.mock +def test_send_delegation(client): + respx.post(GRAPHQL_URL).mock(return_value=_gql_response({ + "sendDelegation": { + "delegation": { + "id": "del-id-456", + "hash": "CkpDel...", + "nonce": "7", + } + } + })) + result = client.send_delegation( + sender="B62qsender...", + delegate_to="B62qdelegate...", + fee=Currency("0.1"), + ) + assert result.id == "del-id-456" + assert result.hash == "CkpDel..." + assert result.nonce == 7 + + +@respx.mock +def test_graphql_error(client): + respx.post(GRAPHQL_URL).mock(return_value=_gql_error([{"message": "field not found"}])) + with pytest.raises(GraphQLError, match="field not found"): + client.get_sync_status() + + +@respx.mock +def test_connection_error_after_retries(): + respx.post(GRAPHQL_URL).mock(side_effect=httpx.ConnectError("refused")) + client = MinaDaemonClient( + graphql_uri=GRAPHQL_URL, retries=2, retry_delay=0.0, timeout=1.0 + ) + with pytest.raises(ConnectionError, match="after 2 attempts"): + client.get_sync_status() + client.close() + + +@respx.mock +def test_context_manager(): + respx.post(GRAPHQL_URL).mock(return_value=_gql_response({"syncStatus": "SYNCED"})) + with MinaDaemonClient(graphql_uri=GRAPHQL_URL, retries=1) as client: + assert client.get_sync_status() == "SYNCED" + + +@respx.mock +def test_get_peers(client): + respx.post(GRAPHQL_URL).mock(return_value=_gql_response({ + "getPeers": [ + {"peerId": "p1", "host": "10.0.0.1", "libp2pPort": 8302}, + {"peerId": "p2", "host": "10.0.0.2", "libp2pPort": 8302}, + ] + })) + peers = client.get_peers() + assert len(peers) == 2 + assert peers[0].peer_id == "p1" + assert peers[1].host == "10.0.0.2" + + +@respx.mock +def test_pooled_user_commands(client): + respx.post(GRAPHQL_URL).mock(return_value=_gql_response({ + "pooledUserCommands": [ + { + "id": "cmd1", + "hash": "CkpHash1", + "kind": "PAYMENT", + "nonce": "1", + "amount": "1000000000", + "fee": "10000000", + "from": "B62qsender...", + "to": "B62qreceiver...", + } + ] + })) + cmds = client.get_pooled_user_commands("B62qsender...") + assert len(cmds) == 1 + assert cmds[0]["kind"] == "PAYMENT" diff --git a/tests/test_types.py b/tests/test_types.py new file mode 100644 index 0000000..de7e6a2 --- /dev/null +++ b/tests/test_types.py @@ -0,0 +1,111 @@ +"""Tests for mina_sdk.types.""" + +import pytest + +from mina_sdk.types import Currency, CurrencyFormat, CurrencyUnderflow + + +class TestCurrency: + def test_whole_from_int(self): + c = Currency(5) + assert c.nanomina == 5_000_000_000 + assert c.mina == "5.000000000" + + def test_whole_from_float(self): + c = Currency(1.5) + assert c.nanomina == 1_500_000_000 + + def test_whole_from_string(self): + c = Currency("2.5") + assert c.nanomina == 2_500_000_000 + + def test_whole_from_string_no_decimal(self): + c = Currency("100") + assert c.nanomina == 100_000_000_000 + + def test_nano_from_int(self): + c = Currency(1000, fmt=CurrencyFormat.NANO) + assert c.nanomina == 1000 + assert c.mina == "0.000001000" + + def test_nano_rejects_float(self): + with pytest.raises(TypeError): + Currency(1.5, fmt=CurrencyFormat.NANO) + + def test_from_nanomina(self): + c = Currency.from_nanomina(500_000_000) + assert c.mina == "0.500000000" + + def test_from_graphql(self): + c = Currency.from_graphql("1500000000") + assert c.nanomina == 1_500_000_000 + + def test_to_nanomina_str(self): + c = Currency(3) + assert c.to_nanomina_str() == "3000000000" + + def test_addition(self): + a = Currency(1) + b = Currency(2) + assert (a + b).nanomina == 3_000_000_000 + + def test_subtraction(self): + a = Currency(3) + b = Currency(1) + assert (a - b).nanomina == 2_000_000_000 + + def test_subtraction_underflow(self): + a = Currency(1) + b = Currency(2) + with pytest.raises(CurrencyUnderflow): + a - b + + def test_multiplication_by_int(self): + c = Currency(2) + assert (c * 3).nanomina == 6_000_000_000 + + def test_equality(self): + a = Currency(1) + b = Currency.from_nanomina(1_000_000_000) + assert a == b + + def test_comparison(self): + a = Currency(1) + b = Currency(2) + assert a < b + assert a <= b + assert b > a + assert b >= a + + def test_hash(self): + a = Currency(1) + b = Currency.from_nanomina(1_000_000_000) + assert hash(a) == hash(b) + assert {a, b} == {a} + + def test_repr(self): + c = Currency("1.23") + assert repr(c) == "Currency(1.230000000)" + + def test_str(self): + c = Currency(0, fmt=CurrencyFormat.NANO) + assert str(c) == "0.000000000" + + def test_random(self): + lower = Currency(1) + upper = Currency(10) + for _ in range(50): + r = Currency.random(lower, upper) + assert lower <= r <= upper + + def test_random_equal_bounds(self): + c = Currency(5) + assert Currency.random(c, c) == c + + def test_invalid_decimal_format(self): + with pytest.raises(ValueError): + Currency("1.2345678901") # >9 decimal places + + def test_small_nanomina_display(self): + c = Currency.from_nanomina(1) + assert c.mina == "0.000000001" From 000645f045406cbed689c05eeb67a383c5012ab8 Mon Sep 17 00:00:00 2001 From: dkijania Date: Sat, 4 Apr 2026 21:56:30 +0200 Subject: [PATCH 2/2] Replace CircleCI with GitHub Actions - Remove old CircleCI config (tested Python 3.4-3.7, used JFrog) - Add GitHub Actions CI: test on Python 3.10-3.13, lint with ruff, build package - Tests run on all PRs and pushes to master/main Co-Authored-By: Claude Opus 4.6 (1M context) --- .circleci/config.yml | 134 --------------------------------------- .github/workflows/ci.yml | 54 ++++++++++++++++ 2 files changed, 54 insertions(+), 134 deletions(-) delete mode 100644 .circleci/config.yml create mode 100644 .github/workflows/ci.yml diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index 0f4ea92..0000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,134 +0,0 @@ -version: 2 -jobs: - test-3.7: - docker: - - image: circleci/python:3.7 - working_directory: ~/repo - steps: - - checkout - # Download and cache dependencies - - - run: - name: Install Dependencies - command: | - python3 -m venv venv - . venv/bin/activate - pip install -e .[test] - - - run: - name: Run Tests - command: | - . venv/bin/activate - python3 -m pytest - - test-3.6: - docker: - - image: circleci/python:3.6 - working_directory: ~/repo - steps: - - checkout - - - run: - name: Install Dependencies - command: | - python3 -m venv venv - . venv/bin/activate - pip install -e .[test] - - - run: - name: Run Tests - command: | - . venv/bin/activate - python3 -m pytest - - test-3.5: - docker: - - image: circleci/python:3.5 - working_directory: ~/repo - steps: - - checkout - - - run: - name: Install Dependencies - command: | - python3 -m venv venv - . venv/bin/activate - pip install -e .[test] - - - run: - name: Run Tests - command: | - . venv/bin/activate - python3 -m pytest - - test-3.4: - docker: - - image: circleci/python:3.4 - working_directory: ~/repo - steps: - - checkout - - - run: - name: Install Dependencies - command: | - python3 -m venv venv - . venv/bin/activate - pip install -e .[test] - - - run: - name: Run Tests - command: | - . venv/bin/activate - python3 -m pytest - - - - release: - docker: - - image: circleci/python:3.7 - working_directory: ~/repo - steps: - - checkout - - restore_cache: - keys: - - v1-dependencies-{{ checksum "setup.py" }} - # fallback to using the latest cache if no exact match is found - - v1-dependencies- - - - run: - name: Activate Virtual Environment - command: | - python3 -m venv venv - . venv/bin/activate - - - run: - name: Package Library - command: python3 setup.py sdist bdist_wheel - - - run: - name: Install JFrog CLI - command: bash -c 'curl -fL https://getcli.jfrog.io | sh' - - - run: - name: Configure JFrog CLI - command: ./jfrog rt config --url $ARTIFACTORY_URL --user $ARTIFACTORY_USER --apikey $ARTIFACTORY_API_KEY --interactive=false - - - run: - name: Release Build to Artifactory - command: ./jfrog rt u "dist/(CodaClient*)" /pypi-local/codaclient/{1} --recursive=false - -workflows: - version: 2 - build-and-deploy: - jobs: - - test-3.7 - - test-3.6 - - test-3.5 - - release: - requires: - - test-3.7 - - test-3.6 - - test-3.5 - filters: - branches: - only: master \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..afcd85c --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,54 @@ +name: CI + +on: + push: + branches: [master, main] + pull_request: + branches: [master, main] + +jobs: + test: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ["3.10", "3.11", "3.12", "3.13"] + steps: + - uses: actions/checkout@v4 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -e ".[dev]" + + - name: Lint + run: ruff check src/ tests/ + + - name: Run tests + run: pytest -v + + build: + runs-on: ubuntu-latest + needs: test + steps: + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.12" + + - name: Build package + run: | + pip install build + python -m build + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: dist + path: dist/