diff --git a/source/academy/tutorials/fractionalized-nft/burn.rst b/source/academy/tutorials/fractionalized-nft/burn.rst index e99415d847..c8c3836bf5 100644 --- a/source/academy/tutorials/fractionalized-nft/burn.rst +++ b/source/academy/tutorials/fractionalized-nft/burn.rst @@ -41,7 +41,7 @@ Run the command below after the necessary changes in the parameter JSON. .. code-block:: console - concordium-client contract update --entrypoint transfer --parameter-json cis2-fractionalizer/burn-20.json --schema dist/schema.bin --sender --energy 6000 --grpc-port 10000 --grpc-ip node.testnet.concordium.com + concordium-client contract update --entrypoint transfer --parameter-json cis2-fractionalizer/burn-20.json --schema dist/schema.bin --sender --energy 6000 --grpc-port 20000 --grpc-ip node.testnet.concordium.com As usual, after a change, check the state. @@ -78,7 +78,7 @@ Run the transfer command below. .. code-block:: console - concordium-client contract update --entrypoint transfer --parameter-json cis2-fractionalizer/transfer-account.json --schema dist/schema.bin --sender --energy 6000 --grpc-port 10000 --grpc-ip node.testnet.concordium.com + concordium-client contract update --entrypoint transfer --parameter-json cis2-fractionalizer/transfer-account.json --schema dist/schema.bin --sender --energy 6000 --grpc-port 20000 --grpc-ip node.testnet.concordium.com .. image:: ../../images/mid-fractnft-burn2.png diff --git a/source/academy/tutorials/fractionalized-nft/mint.rst b/source/academy/tutorials/fractionalized-nft/mint.rst index 9d2c8a3ef6..7c79694a81 100644 --- a/source/academy/tutorials/fractionalized-nft/mint.rst +++ b/source/academy/tutorials/fractionalized-nft/mint.rst @@ -25,7 +25,7 @@ Check the state by calling the ``view()`` function as shown below. .. code-block:: console - concordium-client contract invoke --entrypoint view --schema ../cis2-multi/dist/schema.bin --grpc-port 10000 --grpc-ip node.testnet.concordium.com + concordium-client contract invoke --entrypoint view --schema ../cis2-multi/dist/schema.bin --grpc-port 20000 --grpc-ip node.testnet.concordium.com .. image:: ../../images/mid-fractnft-mint2.png @@ -64,7 +64,7 @@ Run the command below to transfer the token to the fractionalizer. .. code-block:: console - concordium-client contract update --entrypoint transfer --parameter-json cis2-fractionalizer/cis2-multi-transfer.json --schema multi/dist/schema.bin --sender --energy 6000 --grpc-port 10000 --grpc-ip node.testnet.concordium.com + concordium-client contract update --entrypoint transfer --parameter-json cis2-fractionalizer/cis2-multi-transfer.json --schema multi/dist/schema.bin --sender --energy 6000 --grpc-port 20000 --grpc-ip node.testnet.concordium.com .. image:: ../../images/mid-fractnft-mint3.png @@ -111,7 +111,7 @@ Then run the following command to mint the fractions. .. code-block:: console - concordium-client contract update --entrypoint mint --parameter-json ../sample-artifacts/cis2-fractionalizer/mint.json --schema ../cis2-fractionalizer/schema.bin --sender $ACCOUNT --energy 6000 --grpc-port 10000 --grpc-ip node.testnet.concordium.com + concordium-client contract update --entrypoint mint --parameter-json ../sample-artifacts/cis2-fractionalizer/mint.json --schema ../cis2-fractionalizer/schema.bin --sender $ACCOUNT --energy 6000 --grpc-port 20000 --grpc-ip node.testnet.concordium.com .. image:: ../../images/mid-fractnft-mint6.png @@ -119,7 +119,7 @@ Now, check the fractionalizer’s state with the command below. .. code-block:: console - concordium-client contract invoke --entrypoint view --schema dist/schema.bin --grpc-port 10000 --grpc-ip node.testnet.concordium.com + concordium-client contract invoke --entrypoint view --schema dist/schema.bin --grpc-port 20000 --grpc-ip node.testnet.concordium.com .. image:: ../../images/mid-fractnft-mint7.png diff --git a/source/mainnet/conf.py b/source/mainnet/conf.py index fc652806dc..6e0f1b1493 100644 --- a/source/mainnet/conf.py +++ b/source/mainnet/conf.py @@ -406,6 +406,7 @@ "./net/installation/downloads-testnet": "net/installation/downloads.html", "./net/resources/legal": "net/resources/terms-and-conditions.html", "./en/mainnet/smart-contracts/onboarding-guide-solana-developers/index": "en/mainnet/smart-contracts/onboarding-guide-solana-developers/overview.html", + "./net/references/grpc": "net/references/grpc2.html", } # -- Tags that enables the .. only option ---------------- diff --git a/source/mainnet/net/guides/company-identities.rst b/source/mainnet/net/guides/company-identities.rst index 6754add017..286c67d00e 100644 --- a/source/mainnet/net/guides/company-identities.rst +++ b/source/mainnet/net/guides/company-identities.rst @@ -9,248 +9,141 @@ Company identity creation A company identity is for companies that need an identity and accounts on the Concordium blockchain, but don't want that identity to belong to a specific person. Company identities are therefore issued with documents that identify the company and not an individual. Company identities are only relevant for a few companies, such as crypto exchanges. -You can't use the Desktop Wallet, |bw|, |mw-gen2|, or |mw-gen1| to create a company identity. You need to use a set of command-line tools, and you need to communicate directly with the identity provider (currently Notabene). `This page `_ describes Notabene's process, including recovery of company identities. +You can't use the Desktop Wallet, |bw|, |mw-gen2|, or |mw-gen1| to create a company identity. You need to use the Concordium Company ID tool, and you need to communicate directly with the identity provider (currently Notabene). `This page `_ describes Notabene's process, including recovery of company identities. -The information below describes how to create a company identity, how to create accounts with a company identity, and how to recover a company identity. Note that the process differs for testnet and mainnet. +The information below describes how to create a company identity, how to create accounts with a company identity, and how to recover a company identity. If you experience issues with the Concordium Company ID tool, please contact Concordium’s technical support via support@concordium.software. -Create an identity request -========================== +Using the Concordium Company ID tool +==================================== -.. dropdown:: Mainnet +Once you have dowloaded the Concordium Company ID tool for your platform and installed it, you should choose your network, either Mainnet or Testnet. A default Concordium node URL is used, but you can enter your node URL, if desired. - #. Download the tools for your platform. +Request identity +---------------- - - `Tools for Linux `__ - - SHA256 checksum of the download: ``fd3620f3f3e2e9540b262ae68b8273c59816fbaa12d495629b07555c65bab4a2`` +#. Click **Request identity**. - - `Tools for Windows `__ - - SHA256 checksum of the download: ``38433e51efa95121ee4e25a15552dd02905193e3de5d3976e4b067bd9cb46096`` +#. Read the information and click **Proceed**. - - `Tools for MacOS `__ - - SHA256 checksum of the download: ``6f457a05dc2f3345b48fd7d9d387e80b46d37ceaa6ebeadd759b6de4e634a4ca`` +#. Write down or save your seedphrase by clicking the copy button to copy your seedphrase to the clipboard and remember to go to the clipboard and save the file. Keep your seedphrase secure as you will need it to create accounts or recover the identity. Click **Proceed**. - #. Extract the files in the bundle to the same location on your computer. The bundle contains the following files: + .. image:: ../images/company-id-request.png + :alt: company id tool screen showing identities related to seedphrase and option to select - - ``user_cli`` (tool) +#. Enter your seedphrase to verify that you have recorded it correctly. Click **Proceed**. - - ``cryptographic-parameters.json`` +#. Click **Generate request.json**. The command outputs the ``request.json`` file. The request should be sent to the identity provider through a trusted channel. Store the auxiliary output securely. - - ``ars.json`` + - For **Mainnet** requests: Send the file to ania@notabene.id together with any other required identity data as described in the `entity verification instructions `_. - - ``ip-info.json`` (public keys of the identity provider Notabene) + - For **Testnet** requests: Send the file to support@concordium.software with the subject line "Test company identity". - The ``user_cli`` tool supports three modes: the ``generate-request-v1`` mode, the ``create-credential-v1`` mode and ``recover-identity``. The ``generate-request-v1`` generates the request for the identity object that is to be sent to the identity provider. In the ``create-credential-v1`` mode the tool requires the identity object returned by the identity provider and generates a credential that can be sent to the chain to create an account. The ``recover-identity`` request generates an identity recovery request to be sent to the identity provider. +When the identity has been verified successfully, you will receive an email with an identity object file named ``id-object.json``. Store this file securely as you need it to create accounts and regenerate account keys. - #. Download ``concordium-client`` for your platform. See :ref:`Downloads` to get the file and checksum. +Create account +-------------- - #. To generate a request for an identity object, use the following command: +After obtaining the ``id-object.json`` identity object from the identity provider you can create accounts on the chain. The Concordium Company ID tool requires the identity object returned by the identity provider to create accounts on chain. - .. code-block:: console +**Create account** can also be used to regenerate the keys for an old account. In this case, you would need ``id-object.json`` file again. If you have lost that file, use :ref:`Identity Recovery` to retrieve it so you can recover your accounts and save the account keys. After selecting Identity Recovery, enter your seed phrase. If there are accounts on chain related to the seed phrase, you will be able to store the keys of those accounts. - user_cli generate-request-v1 --cryptographic-parameters cryptographic-parameters.json --ars ars.json --ip-info ip-info.json --request-out request.json +#. Click **Create Account**. - The above command will ask for some additional input. You have to choose anonymity revokers and revocation threshold. Use arrow keys to navigate through the lists and the space key to select and deselect list entries. Select whether the identity shall be used for Mainnet or Testnet. Afterwards, 24 BIP-39 will be generated and shown; write down the words and type them in again. This is your secret recovery phrase. +#. Enter your seedphrase in the Enter seedphrase field. In the Identity object file field click to navigate to the location of the stored ``id-object.json`` file. Click **Get Accounts**. - The command outputs the ``request.json`` file which contains the request that should be sent to ania@notabene.id. Store the auxiliary output securely. + .. image:: ../images/company-id-create-acct.png + :alt: company id tool screen showing seedphrase field and file selection box - #. To verify your identity towards Notabene, follow the `entity verification instructions `_. When the identity has been verified successfully, Notabene will notify you by email, and they will send you an identity object file named ``id-object.json``. If you experience any issues with this step, identity verification, please contact Notabene via ania@notabene.id. +#. On the next screen, click **Create Account** to create an account with this company identity. When prompted, save the ``account-keys.json`` in a secure location as you will need them to interact with the account on-chain. You can click **Create account** again to create another account. - If you experience issues with steps 1, 2, 3, or 4 please contact Concordium’s technical support via support@concordium.software. +.. note:: + If you are trying to recover the ``account-keys.json`` file(s), you can also use **Create Account**. After entering your seedphrase and selecting your ``id-object.json`` file you will see a list of account associated with this seedphrase and ID object. Click **Save** to save the ``account-keys.json`` for that account. -.. dropdown:: Testnet + .. image:: ../images/company-id-acct-keys.png + :alt: company id tool screen showing seedphrase field and file selection box - #. Download the tools for your platform. +.. dropdown:: Format of the key files - - `Tools for Linux `__ - - SHA256 checksum of the download: ``2847d59ff2a0806f081b04a503644f16d8f799e6975f1c32e9e6ce4871c25c49`` + Both initial account keys and subsequent account keys are stored in JSON files. The unencrypted data is a JSON record with a number of fields. This is the same format as exported by the other Concordium wallets (except Desktop Wallet). For sending transactions the fields that are relevant are: - - `Tools for Windows `__ - - SHA256 checksum of the download: ``208f2054b19fe8f90a2e2fbeb026e34a496e0353c596e2c422f082ca881e32dc`` + - ``accountKeys`` contains the account keys. It has the following format: - - `Tools for MacOS `__ - - SHA256 checksum of the download: ``d2d514e85b495fc4a25dbe349174e94a933f0447986cd502e8f17d7e7426e263`` + .. code-block:: json - #. Extract the files in the bundle to the same location on your computer. The bundle contains the following files: - - - ``user_cli`` (tool) - - - ``cryptographic-parameters-testnet.json`` - - - ``ars-testnet.json`` - - - ``ip-info-testnet.json`` (public keys of the identity provider) - - The ``user_cli`` tool supports three modes: the ``generate-request-v1`` mode, the ``create-credential-v1`` mode and ``recover-identity``. The ``generate-request-v1`` generates the request for the identity object that is to be sent to the identity provider. In the ``create-credential-v1`` mode the tool requires the identity object returned by the identity provider and generates a credential that can be sent to the chain to create an account. The ``recover-identity`` request generates an identity recovery request to be sent to the identity provider. - - #. Download ``concordium-client`` for your platform. See :ref:`Downloads` to get the file and checksum. - - #. To generate a request for an identity object, use the following command: - - .. code-block:: console - - user_cli generate-request-v1 --cryptographic-parameters cryptographic-parameters-testnet.json --ars ars-testnet.json --ip-info ip-info-testnet.json --request-out request.json - - The above command will ask for some additional input. You have to choose anonymity revokers and revocation threshold. Use arrow keys to navigate through the lists and the space key to select and deselect list entries. Select whether the identity shall be used for Mainnet or Testnet. Afterwards, 24 BIP-39 will be generated and shown; write down the words and type them in again. You need these when creating credentials. - - The command outputs the ``request.json`` file which contains the request that should be sent to the identity provider. - - #. Email the ``request.json`` output file to support@concordium.software with the subject line "Test company identity". The request should be sent to the identity provider through a trusted channel, together with any other required identity data. Store the auxiliary output securely. - - #. When the identity has been verified successfully, Concordium will notify you by email, and they will send you an identity object file named ``id-object.json``. Use this identity object file when creating accounts. - - If you experience issues, please contact Concordium’s technical support via support@concordium.software. - -Create accounts -=============== - -After obtaining the ``id-object.json`` identity object from the identity provider you can create additional accounts on the chain. Accounts are created by deploying credentials. The user_cli tool can only be used to create credentials. To deploy them to the chain, thus creating accounts, you need to use concordium-client and access to a node. - -.. dropdown:: Mainnet - - #. To create additional accounts from the identity object returned by Notabene, run the following command: - - .. code-block:: console - - user_cli create-credential-v1 --cryptographic-parameters cryptographic-parameters.json --ars ars.json --ip-info ip-info.json --id-object id-object.json --keys-out account-keys.json --credential-out credential.json - - You will have to select whether to reveal the LEI, which was optional when creating the identity object. Use the space key to select and deselect list entries. You will also be asked whether to create credential for Mainnet or Testnet. Afterwards you will be asked to type in the 24 BIP-39 words from earlier. - - The command outputs the following files: - - - ``account-keys.json`` which contains account keys of the account that will be created by the credential. - - ``credential.json`` which contains the payload of the account creation transaction. This must be sent to the chain, otherwise the account will not be created. By default this must be sent to the chain within 15 minutes. A larger or shorter message expiry may be set with --message-expiry flag to the command. Note that the credential number must be unique for each respective ``id-object.json``. Duplicate credential numbers for the same ``id-object.json`` will be rejected when submitting to chain. - - .. Note:: - - You must deploy the ``credential.json`` output file to the chain exactly as described below. If you don't, the account will not be created. You need access to a node to complete this step. Store the auxiliary output securely. - - 2. To create the account on the chain make sure you have access to a node, then run the following command with concordium-client: - - .. code-block:: console - - concordium-client transaction deploy-credential credential.json - - where ``credential.json`` is the file obtained in the previous step. If the node runs on a different machine or in a custom setup, the options ``--grpc-ip`` and ``--grpc-port`` can be used to set the `IP address`_ and `port number`_ where the node is accessible. - - If you experience issues, please contact Concordium’s technical support via support@concordium.software. - -.. dropdown:: Testnet - - #. To create additional accounts from the identity object returned by Concordium, run the following command: - - .. code-block:: console - - user_cli create-credential-v1 --cryptographic-parameters cryptographic-parameters-testnet.json --ars ars-testnet.json --ip-info ip-info-testnet.json --id-object id-object.json --keys-out account-keys.json --credential-out credential.json - - You will have to select whether to reveal the LEI, which was optional when creating the identity object. Use the space key to select and deselect list entries. You will also be asked whether to create credential for Mainnet or Testnet. Afterwards you will be asked to type in the 24 BIP-39 words from earlier. - - The command outputs the following files: - - - ``account-keys.json`` which contains account keys of the account that will be created by the credential. - - ``credential.json`` which contains the payload of the account creation transaction. This must be sent to the chain, otherwise the account will not be created. By default this must be sent to the chain within 15 minutes. A larger or shorter message expiry may be set with --message-expiry flag to the command. Note that the credential number must be unique for each respective ``id-object.json``. Duplicate credential numbers for the same ``id-object.json`` will be rejected when submitting to chain. - - .. Note:: - - You must deploy the ``credential.json`` output file to the chain exactly as described below. If you don't, the account will not be created. You need access to a node to complete this step. Store the auxiliary output securely. - - 2. To create the account on the chain make sure you have access to a node, then run the following command with ``concordium-client``: - - .. code-block:: console - - concordium-client transaction deploy-credential credential.json - - where ``credential.json`` is the file obtained in the previous step. If the node runs on a different machine or in a custom setup, the options ``--grpc-ip`` and ``--grpc-port`` can be used to set the `IP address`_ and `port number`_ where the node is accessible. - - Once you have created accounts, you can request CCDs for testing. To request CCDs for testing, run the following command: - - ``curl -X PUT https://wallet-proxy.testnet.concordium.com/v0/testnetGTUDrop/3GXM6cEuAwEA47EEtFpax9PLhMWchWmkaPmNZmW1kbDaWaKBxV`` where you replace 3GXM6cEuAwEA47EEtFpax9PLhMWchWmkaPmNZmW1kbDaWaKBxV with the account address that should receive the CCDs. - - If you experience issues, please contact Concordium’s technical support via support@concordium.software. - -Recovery -======== - -If the identity object used to create credentials is lost, it can be recovered from the identity provider by generating a recovery request using the 24 words used when the identity was originally created. Note that the process differs between mainnet and testnet. - -.. dropdown:: Mainnet - - #. To recover your identity object (e.g. if you lost it), run the following command: - - .. code-block:: console - - user_cli recover-identity --cryptographic-parameters cryptographic-parameters.json --ip-info ip-info.json --request-out recovery-request.json - - #. Email the ``recovery-request.json`` output file to ania@notabene.id. The request should be sent to the identity provider through a trusted channel, together with any other required identity data. When the recovery request has been validated successfully, Notabene will notify you by email, and they will return the identity object named ``id-object.json`` that you lost. With the recovered identity object, you can then recreate your account keys(account-keys.json) by running ``user_cli create-credential-v1``. - - If you experience issues, please contact Concordium’s technical support via support@concordium.software. - -.. dropdown:: Testnet - - #. To recover your identity object (e.g. if you lost it), run the following command: - - .. code-block:: console + { + "environment": "testnet", + "type": "concordium-browser-wallet-account", + "v": 0, + "value": { + "accountKeys": { + "keys": { + "0": { + "keys": { + "0": { + "signKey": "81e7d8e625a00b6f5b97dd8b0a97807212e6b0ceb4fd206e715b97536c83caea", + "verifyKey": "03164c9e6654c1544a0e7d33780df425c695f6222fda75c047aea5186680e491" + } + }, + "threshold": 1 + } + }, + "threshold": 1 + }, + "address": "3LfTBXYtc6TEjuJiKgLpFGEtGRMPhBsKRB76Q4x91LZPWSmQ9Z", + "credentials": { + "0": "843785aef9446c8e5b2c6922863e49231b93fb9950909c3166e7c287357a1a495ecfbdcb6ca36ea5998fef2c9dee91f8" + } + } + } - user_cli recover-identity --cryptographic-parameters cryptographic-parameters-testnet.json --ip-info ip-info-testnet.json --request-out recovery-request.json + In this example the account has a single credential with index 0, and that credential has a single key with index 0. The private key is 03164c9e6654c1544a0e7d33780df425c695f6222fda75c047aea5186680e491 and its public key is 81e7d8e625a00b6f5b97dd8b0a97807212e6b0ceb4fd206e715b97536c83caea. - Email the ``recovery-request.json`` output file to support@concordium.software with the subject line "Recover company identity". + - ``address`` is the address of the account, e.g., - #. When the recovery request has been validated successfully, Concordium will notify you by email, and they will return the identity object named ``id-object.json`` that you lost. With the recovered identity object, you can then recreate your account keys(account-keys.json) by running ``user_cli create-credential-v1``. + .. code-block:: json - If you experience issues, please contact Concordium’s technical support via support@concordium.software. + "address": "3LfTBXYtc6TEjuJiKgLpFGEtGRMPhBsKRB76Q4x91LZPWSmQ9Z" Import created accounts into ``concordium-client`` -================================================== +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +To use the accounts created in the Concordium Company ID tool, you must use Concordium Client. You can download it :ref:`here`. For information about how to use it, see :ref:`concordium-client`. The account keys are primarily meant for clients to integrate into their key management solution and their software, e.g., an exchange integrating their trading platform with the Concordium chain. -However if the ``account-keys.json`` file is not encrypted it can be imported into ``concordium-client`` with the command: +However, if the ``account-keys.json`` file is not encrypted it can be imported into ``concordium-client`` with the command: .. code-block:: console - concordium-client config account import account-keys.json --format=genesis --name my-account + concordium-client config account import account-keys.json --name my-account -where the ``--name`` option is optional, and if given, will name the account according to the given value ("my-account" in the example above). - -If the account-keys.json file is encrypted then it must first be decrypted. This can be done with the :ref:`utils tool`. +``--name`` is mandatory and will name the account according to the given value ("my-account" in the example above). The initial account keys cannot be directly imported into ``concordium-client``. -Format of the key files ------------------------ +Once you have created accounts, you can request CCDs for testing. To request CCDs for testing, run the following command: -Both initial account keys and subsequent account keys are stored in JSON files. The unencrypted data is a JSON record with a number of fields. For sending transactions the fields that are relevant are: +``curl -X PUT https://wallet-proxy.testnet.concordium.com/v0/testnetGTUDrop/3GXM6cEuAwEA47EEtFpax9PLhMWchWmkaPmNZmW1kbDaWaKBxV`` where you replace 3GXM6cEuAwEA47EEtFpax9PLhMWchWmkaPmNZmW1kbDaWaKBxV with the account address that should receive the CCDs. -- ``accountKeys`` contains the account keys. It has the following format: +.. _id-recovery: - .. code-block:: json +Identity recovery +----------------- - "accountKeys": { - "keys": { - "0": { - "keys": { - "0": { - "signKey": "1e16c2e2302023fc5235c60734981a2427004f95b6ace50a1d8a205ee9e5f9e7", - "verifyKey": "7e9983b292cf5e5822b48dbed1c2d498aca97c097f7116511f7dcf6187d218c4" - } - }, - "threshold": 1 - } - }, - "threshold": 1 - } +If the identity object used to create credentials is lost, it can be recovered from the identity provider by generating a recovery request using the 24 words used when the identity was originally created. Recover identity generates an identity recovery request to be sent to the identity provider. - which contains the account keys. In this example the account has a single credential with index 0, and that credential has a single key with index 0. The private key is 1e16c2e2302023fc5235c60734981a2427004f95b6ace50a1d8a205ee9e5f9e7 and its public key is 7e9983b292cf5e5822b48dbed1c2d498aca97c097f7116511f7dcf6187d218c4. +#. Click **Identity Recovery**. -- ``address`` is the address of the account, e.g., +#. Enter your seedphrase in the Enter seedphrase field. And click **Find identities**. - .. code-block:: json +#. You see a list of accounts associated with the seedphrase. It is possible to save the account keys that can be ussed to interact with the account on the chain. Indices that are to the left of the account address are pointing to the identity index, being the first value and the account index being the second value (0,0). In the Identities to recover drop-down, select the identity you want to recover. There will always be one additional index on the list for selection to be sure that request can be generated for more than one identity. This is mainly useful in cases where first identity object was lost or unused to create accounts. Click **Generate recovery request**. The command outputs the ``recovery-request.json`` file. The request should be sent to the identity provider through a trusted channel. When the request has been verified successfully, you will receive an email with an identity object. Store this file securely as you need it to create accounts on the chain. - "address": "2xe6cXEzBJZ8KXSYwb5uXJdHPZfAstbSZjfdAqsoF7VEq6q7AP" + .. image:: ../images/company-id-recover.png + :alt: company id tool screen showing identities related to seedphrase and option to select -- keys for encrypted transfers. These are only needed for sending and receiving encrypted transfers. +- For Mainnet requests: Send the file to ania@notabene.id together with any other required identity data as described in the `entity verification instructions `_. - .. code-block:: json +- For Testnet requests: Send the file to support@concordium.software with the subject line "Recover company identity". - "encryptionPublicKey": "b14cbfe44a02c6b1f78711176d5f437295367aa4f2a8c2551ee10d25a03adc69d61a332a058971919dad7312e1fc94c58a2f44906bda77f42bc3503b53b604a851737829899ffd4895abc0184e2da448e673f5e87367991d4a453a7f562df974", - "encryptionSecretKey": "b14cbfe44a02c6b1f78711176d5f437295367aa4f2a8c2551ee10d25a03adc69d61a332a058971919dad7312e1fc94c557da780304fba3b831439243201396e8c83daa83da1acc385a7a28519011e6da" +When the recovery request has been verified successfully, you will receive an email with the identity object file named ``id-object.json`` that you lost. Store this file securely as you need it to create accounts. diff --git a/source/mainnet/net/guides/developer-page.rst b/source/mainnet/net/guides/developer-page.rst index b27e6bfebd..7b103c8141 100644 --- a/source/mainnet/net/guides/developer-page.rst +++ b/source/mainnet/net/guides/developer-page.rst @@ -38,7 +38,7 @@ Official resources - See :ref:`dApp examples` for a list of dApp examples and their resources. -- For testing purposes, a node is available on testnet to use when testing smart contracts and dApps. You can use this node for API calls of chain methods only with GRPC v1, gRPC v2, and gRPC web. The address is node.testnet.concordium.com on port 10000 (GRPCv1) and port 20000 (gRPCv2 and gRPC-web). This node is maintained by Concordium, but Concordium does not guarantee availability. The status of this node is available on the `Testnet status page `__. +- For testing purposes, a node is available on testnet to use when testing smart contracts and dApps. You can use this node for API calls of chain methods only with gRPC v2 and gRPC web. The address is node.testnet.concordium.com on port 20000 (gRPCv2 and gRPC-web). You can use this node for API calls of *chain methods only*. This node is maintained by Concordium, but Concordium does not guarantee availability. The status of this node is available on the `Testnet status page `__. - The `VSCode extension `__ can help you develop Concordium smart contracts. The extension sets up the editor for development, installs the ``cargo-concordium`` smart contract development tool for all supported platforms, and provides commands in the editor for the essential workflows, such as building and testing smart contracts. @@ -121,4 +121,3 @@ Community resources ../resources/dashboards ../references/developer-tools ../references/grpc2 - ../references/grpc diff --git a/source/mainnet/net/guides/sdks-apis.rst b/source/mainnet/net/guides/sdks-apis.rst index 2d17e44010..683f2b11db 100644 --- a/source/mainnet/net/guides/sdks-apis.rst +++ b/source/mainnet/net/guides/sdks-apis.rst @@ -8,7 +8,6 @@ SDKs and APIs The following SDKs and APIs exist for developing on the Concordium network. - :ref:`Concordium gRPC V2 API` -- :ref:`Concordium gRPC API` - `Concordium Rust SDK `_ - `Concordium Javascript (Node / Web) SDK `_ - `Concordium Java SDK `_ diff --git a/source/mainnet/net/images/company-id-acct-keys.png b/source/mainnet/net/images/company-id-acct-keys.png new file mode 100644 index 0000000000..8ed81e738c Binary files /dev/null and b/source/mainnet/net/images/company-id-acct-keys.png differ diff --git a/source/mainnet/net/images/company-id-create-acct.png b/source/mainnet/net/images/company-id-create-acct.png new file mode 100644 index 0000000000..827ad6e635 Binary files /dev/null and b/source/mainnet/net/images/company-id-create-acct.png differ diff --git a/source/mainnet/net/images/company-id-recover.png b/source/mainnet/net/images/company-id-recover.png new file mode 100644 index 0000000000..564ecd5fd2 Binary files /dev/null and b/source/mainnet/net/images/company-id-recover.png differ diff --git a/source/mainnet/net/images/company-id-request.png b/source/mainnet/net/images/company-id-request.png new file mode 100644 index 0000000000..9441382c56 Binary files /dev/null and b/source/mainnet/net/images/company-id-request.png differ diff --git a/source/mainnet/net/installation/downloads.rst b/source/mainnet/net/installation/downloads.rst index 01c705554f..0e24897bb5 100644 --- a/source/mainnet/net/installation/downloads.rst +++ b/source/mainnet/net/installation/downloads.rst @@ -154,7 +154,7 @@ The |mw-gen1| is available for iOS and Android™. The |mw-gen1| supports iOS 13 Concordium Client |client-version| =================================== -- `Download the Mainnet Concordium Client for Linux `_ +- `Download the Mainnet Concordium Client for Linux `_ - SHA256 checksum of the download: :substitution-code:`|client-linux-checksum|` - :ref:`Verification instructions ` @@ -167,13 +167,13 @@ Concordium Client |client-version| where you replace `*` with |client-version|. -- `Download the Mainnet Concordium Client for macOS `_ +- `Download the Mainnet Concordium Client for macOS `_ - The macOS distribution is an installer that places an alias to the binary into the folder ``/usr/local/bin``. So after installing, you should have ``concordium-client`` on your path. -- `Download the Mainnet Concordium Client for Windows `_ +- `Download the Mainnet Concordium Client for Windows `_ .. _cargo-concordium-testnet: @@ -240,9 +240,9 @@ For the system requirements to run a node, see :ref:`System requirements to run .. dropdown:: Ubuntu |testnet-node-version| - To run a node on a server with Ubuntu, `download a Testnet Debian package `_. + To run a node on a server with Ubuntu, `download a Testnet Debian package `_. - - SHA256 checksum of the download: ``b1b1e1c5e2e9e8100094a2e1d9fced47dc98e9dfcf0897e89755011adc44781a`` + - SHA256 checksum of the download: ``5e97f77f3dedfd8921045a3ed4623600281b5331d37e527424a2f01068e6b2b1`` To learn how to run a node with Ubuntu, see :ref:`Run a node on a server with Ubuntu `. @@ -256,13 +256,13 @@ For the system requirements to run a node, see :ref:`System requirements to run .. dropdown:: Windows |testnet-node-version| - To run a node on Windows, `download a Testnet Windows Installer package `_. **Please be aware that you should backup your configuration, as the installer will overwrite the current configuration with a standard configuration.** + To run a node on Windows, `download a Testnet Windows Installer package `_. **Please be aware that you should backup your configuration, as the installer will overwrite the current configuration with a standard configuration.** To learn how to run a node on Windows, see :ref:`Run and manage a node on Windows `. .. dropdown:: Mac |testnet-node-version| - To run a node on macOS, `download a Testnet macOS installer package `_. + To run a node on macOS, `download a Testnet macOS installer package `_. To learn how to run a node on Mac, see :ref:`Run and manage a node on macOS `. @@ -299,7 +299,7 @@ Download the block separately to inspect it or to run a node in a custom configu Auxiliary tools =============== -Auxiliary tools are a collection of tools that can be used by developers to perform actions as needed. +Auxiliary tools are a collection of tools that can be used to perform actions as needed. Encrypt/decrypt tool v1.0.0 --------------------------- @@ -312,6 +312,37 @@ Encrypt/decrypt tool v1.0.0 For information about how to use the encrypt/decrypt tool, see :ref:`Auxiliary tools `. +Company identity management tool v1.0.2 +--------------------------------------- + +Use this tool to create a company identity, request accounts using a company identity, and recover a company identity. + +- `Download the Company identity management tool for Linux - Debian package `_ + + - Verification instructions + + In a terminal: + + #. Navigate to the download. + #. Paste the following into the terminal: $sha256sum concordium-company-id_1.0.2_amd64.deb + #. Verify that the output matches the SHA256 checksum ``c728dbe0b5ab950e4e705d7faceaee4b5ade615acd34b3bc6e75250acdedfaa9``. + +- `Download the Company identity management tool for Linux - App image `_ + + - Verification instructions + + In a terminal: + + #. Navigate to the download. + #. Paste the following into the terminal: $sha256sum concordium-company-id_1.0.2_amd64.AppImage + #. Verify that the output matches the SHA256 checksum ``8b6964d827808d3a8a9244d202e3aa8cdffeb2462edf44b3e32e7b41549b710f``. + +- `Download the Company identity management tool for Windows `_ + +- `Download the Company identity management tool for MacOS `_ + +For information about how to use the company identity management tool, see :ref:`company-identities`. + .. toctree:: :hidden: :maxdepth: 1 diff --git a/source/mainnet/net/installation/previous-node-downloads.rst b/source/mainnet/net/installation/previous-node-downloads.rst index 0f853ef025..1f1d40651e 100644 --- a/source/mainnet/net/installation/previous-node-downloads.rst +++ b/source/mainnet/net/installation/previous-node-downloads.rst @@ -14,6 +14,8 @@ Windows - Mainnet and Testnet **Please be aware that you should backup your configuration, as the installer will overwrite the current configuration with a standard configuration.** +`Windows 6.1.7 `_ + `Windows 6.1.6 `_ (Testnet only) `Windows 6.0.4 `_ @@ -49,6 +51,8 @@ Windows - Mainnet and Testnet macOS - Mainnet and Testnet =========================== +`macOS 6.1.7 `_ + `macOS 6.1.6 `_ (Testnet only) `macOS 6.0.4 `_ @@ -208,6 +212,16 @@ Ubuntu - Testnet Default GRPC port is set to 10001 Default listen port is set to 8889 +`6.1.7 `__ + + - Verification instructions + + In a terminal: + + #. Navigate to the download. + #. Paste the following into the terminal: $sha256sum concordium-testnet-node_6.1.7-0_amd64.deb + #. Verify that the output matches the SHA256 checksum ``b1b1e1c5e2e9e8100094a2e1d9fced47dc98e9dfcf0897e89755011adc44781a`` + `6.1.6 `__ - Verification instructions diff --git a/source/mainnet/net/nodes/baker-ubuntu.rst b/source/mainnet/net/nodes/baker-ubuntu.rst index f7273fe9f6..625d10fe7e 100644 --- a/source/mainnet/net/nodes/baker-ubuntu.rst +++ b/source/mainnet/net/nodes/baker-ubuntu.rst @@ -70,7 +70,7 @@ Prerequisites [Service] - Environment=CONCORDIUM_NODE_BAKER_CREDENTIALS_FILE=%S/concordium-b6078154d6717e909ce0da4a45a25151b592824f31624b755900a74429e3073d/validator-credentials.json + Environment=CONCORDIUM_NODE_VALIDATOR_CREDENTIALS_FILE=%S/concordium-b6078154d6717e909ce0da4a45a25151b592824f31624b755900a74429e3073d/validator-credentials.json BindReadOnlyPaths=/home/user/concordium/validator-credentials.json:%S/concordium-b6078154d6717e909ce0da4a45a25151b592824f31624b755900a74429e3073d/validator-credentials.json Where you replace the path `/home/user/concordium/validator-credentials.json` with the actual location of the file. diff --git a/source/mainnet/net/nodes/troubleshoot-docker.rst b/source/mainnet/net/nodes/troubleshoot-docker.rst index 3c6feb3236..f48a150bd3 100644 --- a/source/mainnet/net/nodes/troubleshoot-docker.rst +++ b/source/mainnet/net/nodes/troubleshoot-docker.rst @@ -15,6 +15,7 @@ Your node state directory should look something like this: .. code-block:: console + accountmap blockstate-0.dat blockstate-1.dat blockstate-2.dat @@ -26,6 +27,7 @@ But because of the error it might look like this: .. code-block:: console + accountmap blockstate-0.dat blockstate-1.dat blockstate-2.dat @@ -55,6 +57,7 @@ The database directory should contain matching pairs of ``blockstate-$i.dat`` an .. code-block:: console + accountmap blockstate-0.dat blockstate-1.dat blockstate-2.dat diff --git a/source/mainnet/net/nodes/troubleshoot-macos.rst b/source/mainnet/net/nodes/troubleshoot-macos.rst index 6f92b45f0d..33c5d8a763 100644 --- a/source/mainnet/net/nodes/troubleshoot-macos.rst +++ b/source/mainnet/net/nodes/troubleshoot-macos.rst @@ -21,6 +21,7 @@ The database directory should contain matching pairs of ``blockstate-$i.dat`` an .. code-block:: console + accountmap blockstate-0.dat blockstate-1.dat blockstate-2.dat diff --git a/source/mainnet/net/nodes/troubleshoot-ubuntu.rst b/source/mainnet/net/nodes/troubleshoot-ubuntu.rst index 9c75365ce4..c25df721fa 100644 --- a/source/mainnet/net/nodes/troubleshoot-ubuntu.rst +++ b/source/mainnet/net/nodes/troubleshoot-ubuntu.rst @@ -15,6 +15,7 @@ Your node state directory should look something like this: .. code-block:: console + accountmap blockstate-0.dat blockstate-1.dat blockstate-2.dat @@ -26,6 +27,7 @@ But because of the error it might look like this: .. code-block:: console + accountmap blockstate-0.dat blockstate-1.dat blockstate-2.dat @@ -55,6 +57,7 @@ The database directory should contain matching pairs of ``blockstate-$i.dat`` an .. code-block:: console + accountmap blockstate-0.dat blockstate-1.dat blockstate-2.dat diff --git a/source/mainnet/net/nodes/troubleshoot-windows.rst b/source/mainnet/net/nodes/troubleshoot-windows.rst index a9364c868f..aef60d0e9e 100644 --- a/source/mainnet/net/nodes/troubleshoot-windows.rst +++ b/source/mainnet/net/nodes/troubleshoot-windows.rst @@ -26,10 +26,9 @@ The solution is to delete the relevant portion of the database. The database directory should contain matching pairs of ``blockstate-$i.dat`` and ``treestate-$i`` files for some number of consecutive i's starting at 0. The number of the files differs depending on which protocol version is current. -.. image:: ../images/run-node/windows-node-db-files.png - .. code-block:: console + accountmap blockstate-0.dat blockstate-1.dat blockstate-2.dat diff --git a/source/mainnet/net/references/grpc-json-schemas/ContractContext.json b/source/mainnet/net/references/grpc-json-schemas/ContractContext.json deleted file mode 100644 index ff50e7db05..0000000000 --- a/source/mainnet/net/references/grpc-json-schemas/ContractContext.json +++ /dev/null @@ -1,141 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ContractContext", - "description": "Data needed to invoke the contract.", - "type": "object", - "required": [ - "contract", - "method" - ], - "properties": { - "amount": { - "description": "Amount to invoke the contract with.", - "default": "0", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "contract": { - "description": "Contract to invoke.", - "allOf": [ - { - "$ref": "#/definitions/ContractAddress" - } - ] - }, - "energy": { - "description": "The amount of energy to allow for execution. This should be small enough so that it can be converted to interpreter energy.", - "default": 10000000, - "type": "integer", - "format": "uint64", - "maximum": 100000000000.0, - "minimum": 0.0 - }, - "invoker": { - "description": "Invoker of the contract. If this is not supplied then the contract will be invoked by an account with address 0, no credentials and sufficient amount of CCD to cover the transfer amount. If given, the relevant address must exist in the blockstate.", - "anyOf": [ - { - "$ref": "#/definitions/Address" - }, - { - "type": "null" - } - ] - }, - "method": { - "description": "Which entrypoint to invoke.", - "type": "string" - }, - "parameter": { - "description": "Parameter to invoke with.", - "default": "", - "allOf": [ - { - "$ref": "#/definitions/Parameter" - } - ] - } - }, - "definitions": { - "AccountAddress": { - "type": "string", - "maxLength": 50, - "minLength": 50, - "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]*" - }, - "Address": { - "description": "Either an account or contract address. Some operations are allowed on both types of items, hence the need for this type.", - "oneOf": [ - { - "type": "object", - "required": [ - "address", - "type" - ], - "properties": { - "address": { - "$ref": "#/definitions/AccountAddress" - }, - "type": { - "type": "string", - "enum": [ - "AddressAccount" - ] - } - } - }, - { - "type": "object", - "required": [ - "address", - "type" - ], - "properties": { - "address": { - "$ref": "#/definitions/ContractAddress" - }, - "type": { - "type": "string", - "enum": [ - "AddressContract" - ] - } - } - } - ] - }, - "CCDAmount": { - "type": "string", - "maxLength": 20, - "minLength": 1, - "pattern": "^([0-9])*" - }, - "ContractAddress": { - "type": "object", - "required": [ - "index", - "subindex" - ], - "properties": { - "index": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "subindex": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - } - }, - "Parameter": { - "type": "string", - "maxLength": 2048, - "minLength": 0, - "pattern": "^(([0-9]?[a-f]?){2})*$" - } - } -} \ No newline at end of file diff --git a/source/mainnet/net/references/grpc-json-schemas/GetAccountInfo.json b/source/mainnet/net/references/grpc-json-schemas/GetAccountInfo.json deleted file mode 100644 index 7ec5f1de34..0000000000 --- a/source/mainnet/net/references/grpc-json-schemas/GetAccountInfo.json +++ /dev/null @@ -1,826 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Nullable_AccountInfo", - "anyOf": [ - { - "$ref": "#/definitions/AccountInfo" - }, - { - "type": "null" - } - ], - "definitions": { - "AccountAddress": { - "type": "string", - "maxLength": 50, - "minLength": 50, - "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]*" - }, - "AccountCredentialWithoutProofs_for_HexString_and_AttributeKind": { - "description": "Account credential with values and commitments, but without proofs. Serialization must match the serializaiton of `AccountCredential` in Haskell.", - "oneOf": [ - { - "type": "object", - "required": [ - "contents", - "type" - ], - "properties": { - "contents": { - "description": "Values in initial credential deployment.", - "type": "object", - "required": [ - "credentialPublicKeys", - "ipIdentity", - "policy", - "regId" - ], - "properties": { - "credentialPublicKeys": { - "description": "Account this credential belongs to.", - "allOf": [ - { - "$ref": "#/definitions/CredentialPublicKeys" - } - ] - }, - "ipIdentity": { - "description": "Identity of the identity provider who signed the identity object from which this credential is derived.", - "type": "integer", - "format": "uint32", - "minimum": 0.0 - }, - "policy": { - "description": "Policy of this credential object.", - "allOf": [ - { - "$ref": "#/definitions/Policy_for_HexString_and_AttributeKind" - } - ] - }, - "regId": { - "description": "Credential registration id of the credential.", - "allOf": [ - { - "$ref": "#/definitions/HexString" - } - ] - } - } - }, - "type": { - "type": "string", - "enum": [ - "initial" - ] - } - } - }, - { - "type": "object", - "required": [ - "contents", - "type" - ], - "properties": { - "contents": { - "description": "Values (as opposed to proofs) in credential deployment.", - "type": "object", - "required": [ - "arData", - "commitments", - "credId", - "credentialPublicKeys", - "ipIdentity", - "policy", - "revocationThreshold" - ], - "properties": { - "arData": { - "description": "Anonymity revocation data. List of anonymity revokers which can revoke identity. NB: The order is important since it is the same order as that signed by the identity provider, and permuting the list will invalidate the signature from the identity provider.", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/ChainArData_for_HexString" - } - }, - "commitments": { - "$ref": "#/definitions/CredentialDeploymentCommitments_for_HexString" - }, - "credId": { - "description": "Credential registration id of the credential.", - "allOf": [ - { - "$ref": "#/definitions/HexString" - } - ] - }, - "credentialPublicKeys": { - "description": "Credential keys (i.e. account holder keys).", - "allOf": [ - { - "$ref": "#/definitions/CredentialPublicKeys" - } - ] - }, - "ipIdentity": { - "description": "Identity of the identity provider who signed the identity object from which this credential is derived.", - "type": "integer", - "format": "uint32", - "minimum": 0.0 - }, - "policy": { - "description": "Policy of this credential object.", - "allOf": [ - { - "$ref": "#/definitions/Policy_for_HexString_and_AttributeKind" - } - ] - }, - "revocationThreshold": { - "description": "Anonymity revocation threshold. Must be <= length of ar_data.", - "type": "integer", - "format": "uint8", - "minimum": 0.0 - } - } - }, - "type": { - "type": "string", - "enum": [ - "normal" - ] - } - } - } - ] - }, - "AccountEncryptedAmount": { - "description": "The state of the encrypted balance of an account.", - "type": "object", - "required": [ - "incomingAmounts", - "selfAmount", - "startIndex" - ], - "properties": { - "aggregatedAmount": { - "description": "If ['Some'], the amount that has resulted from aggregating other amounts and the number of aggregated amounts (must be at least 2 if present).", - "default": null, - "type": [ - "array", - "null" - ], - "items": [ - { - "$ref": "#/definitions/EncryptedAmount" - }, - { - "type": "integer", - "format": "uint32", - "minimum": 0.0 - } - ], - "maxItems": 2, - "minItems": 2 - }, - "incomingAmounts": { - "description": "Amounts starting at `start_index` (or at `start_index + 1` if there is an aggregated amount present). They are assumed to be numbered sequentially. The length of this list is bounded by the maximum number of incoming amounts on the accounts, which is currently 32. After that aggregation kicks in.", - "type": "array", - "items": { - "$ref": "#/definitions/EncryptedAmount" - } - }, - "selfAmount": { - "description": "Encrypted amount that is a result of this accounts' actions. In particular this list includes the aggregate of\n\n- remaining amounts that result when transfering to public balance - remaining amounts when transfering to another account - encrypted amounts that are transferred from public balance\n\nWhen a transfer is made all of these must always be used.", - "allOf": [ - { - "$ref": "#/definitions/EncryptedAmount" - } - ] - }, - "startIndex": { - "description": "Starting index for incoming encrypted amounts. If an aggregated amount is present then this index is associated with such an amount and the list of incoming encrypted amounts starts at the index `start_index + 1`.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - } - }, - "AccountInfo": { - "description": "Account information exposed via the node's API. This is always the state of an account in a specific block.", - "type": "object", - "required": [ - "accountAddress", - "accountAmount", - "accountCredentials", - "accountEncryptedAmount", - "accountEncryptionKey", - "accountIndex", - "accountNonce", - "accountReleaseSchedule", - "accountThreshold" - ], - "properties": { - "accountAddress": { - "description": "Canonical address of the account.", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "accountAmount": { - "description": "Current (unencrypted) balance of the account.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "accountBaker": { - "description": "`Some` (non-null) if and only if the account is a baker or delegator. In that case it is the information about the baker or delegator.", - "default": null, - "anyOf": [ - { - "$ref": "#/definitions/AccountStakingInfo" - }, - { - "type": "null" - } - ] - }, - "accountCredentials": { - "description": "Map of all currently active credentials on the account. This includes public keys that can sign for the given credentials, as well as any revealed attributes. This map always contains a credential with index 0.", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/Versioned_for_AccountCredentialWithoutProofs_for_HexString_and_AttributeKind" - } - }, - "accountEncryptedAmount": { - "description": "The encrypted balance of the account.", - "allOf": [ - { - "$ref": "#/definitions/AccountEncryptedAmount" - } - ] - }, - "accountEncryptionKey": { - "description": "The public key for sending encrypted balances to the account.", - "allOf": [ - { - "$ref": "#/definitions/PublicKey" - } - ] - }, - "accountIndex": { - "description": "Internal index of the account. Accounts on the chain get sequential indices. These should generally not be used outside of the chain, the account address is meant to be used to refer to accounts, however the account index serves the role of the baker id, if the account is a baker. Hence it is exposed here as well.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "accountNonce": { - "description": "Next nonce to be used for transactions signed from this account.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "accountReleaseSchedule": { - "description": "Release schedule for any locked up amount. This could be an empty release schedule.", - "allOf": [ - { - "$ref": "#/definitions/AccountReleaseSchedule" - } - ] - }, - "accountThreshold": { - "description": "Lower bound on how many credentials must sign any given transaction from this account.", - "type": "integer", - "format": "uint8", - "minimum": 1.0 - } - } - }, - "AccountReleaseSchedule": { - "description": "State of the account's release schedule. This is the balance of the account that is owned by the account, but cannot be used until the release point.", - "type": "object", - "required": [ - "schedule", - "total" - ], - "properties": { - "schedule": { - "description": "List of timestamped releases. In increasing order of timestamps.", - "type": "array", - "items": { - "$ref": "#/definitions/Release" - } - }, - "total": { - "description": "Total amount that is locked up in releases.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - } - } - }, - "AccountStakingInfo": { - "anyOf": [ - { - "description": "The account is a baker.", - "type": "object", - "required": [ - "bakerAggregationVerifyKey", - "bakerElectionVerifyKey", - "bakerId", - "bakerSignatureVerifyKey", - "restakeEarnings", - "stakedAmount" - ], - "properties": { - "bakerAggregationVerifyKey": { - "description": "Baker's public key used to check signatures on finalization records. This is only used if the baker has sufficient stake to participate in finalization.", - "allOf": [ - { - "$ref": "#/definitions/BakerAggregationVerifyKey" - } - ] - }, - "bakerElectionVerifyKey": { - "description": "Baker's public key used to check whether they won the lottery or not.", - "allOf": [ - { - "$ref": "#/definitions/BakerElectionVerifyKey" - } - ] - }, - "bakerId": { - "description": "Identity of the baker. This is actually the account index of the account controlling the baker.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "bakerSignatureVerifyKey": { - "description": "Baker's public key used to check that they are indeed the ones who produced the block.", - "allOf": [ - { - "$ref": "#/definitions/BakerSignatureVerifyKey" - } - ] - }, - "pendingChange": { - "anyOf": [ - { - "$ref": "#/definitions/StakePendingChange" - }, - { - "type": "null" - } - ] - }, - "poolInfo": { - "anyOf": [ - { - "$ref": "#/definitions/BakerPoolInfo" - }, - { - "type": "null" - } - ] - }, - "restakeEarnings": { - "type": "boolean" - }, - "stakedAmount": { - "$ref": "#/definitions/CCDAmount" - } - } - }, - { - "description": "The account is delegating stake to a baker.", - "type": "object", - "required": [ - "delegationTarget", - "restakeEarnings", - "stakedAmount" - ], - "properties": { - "delegationTarget": { - "$ref": "#/definitions/DelegationTarget" - }, - "pendingChange": { - "anyOf": [ - { - "$ref": "#/definitions/StakePendingChange" - }, - { - "type": "null" - } - ] - }, - "restakeEarnings": { - "type": "boolean" - }, - "stakedAmount": { - "$ref": "#/definitions/CCDAmount" - } - } - } - ] - }, - "AttributeKind": { - "description": "Concrete attribute values. All currently supported attributes are string values.", - "type": "string" - }, - "BakerAggregationVerifyKey": { - "type": "string", - "maxLength": 192, - "minLength": 192, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "BakerElectionVerifyKey": { - "type": "string", - "maxLength": 64, - "minLength": 64, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "BakerPoolInfo": { - "description": "Additional information about a baking pool. This information is added with the introduction of delegation.", - "type": "object", - "required": [ - "commissionRates", - "metadataUrl", - "openStatus" - ], - "properties": { - "commissionRates": { - "description": "The commission rates charged by the pool owner.", - "allOf": [ - { - "$ref": "#/definitions/CommissionRates" - } - ] - }, - "metadataUrl": { - "description": "The URL that links to the metadata about the pool.", - "type": "string" - }, - "openStatus": { - "description": "Whether the pool allows delegators.", - "allOf": [ - { - "$ref": "#/definitions/OpenStatus" - } - ] - } - } - }, - "BakerSignatureVerifyKey": { - "type": "string", - "maxLength": 64, - "minLength": 64, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "CCDAmount": { - "type": "string", - "maxLength": 20, - "minLength": 1, - "pattern": "^([0-9])*" - }, - "ChainArData_for_HexString": { - "description": "Data relating to a single anonymity revoker sent by the account holder to the chain. Typically a vector of these will be sent to the chain.", - "type": "object", - "required": [ - "encIdCredPubShare" - ], - "properties": { - "encIdCredPubShare": { - "description": "encrypted share of id cred pub", - "allOf": [ - { - "$ref": "#/definitions/Cipher" - } - ] - } - } - }, - "Cipher": { - "type": "string", - "minLength": 64, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "CommissionRates": { - "type": "object", - "required": [ - "bakingCommission", - "finalizationCommission", - "transactionCommission" - ], - "properties": { - "bakingCommission": { - "description": "Fraction of baking rewards charged by the pool owner.", - "type": "number" - }, - "finalizationCommission": { - "description": "Fraction of finalization rewards charged by the pool owner.", - "type": "number" - }, - "transactionCommission": { - "description": "Fraction of transaction rewards charged by the pool owner.", - "type": "number" - } - } - }, - "Commitment_for_HexString": { - "description": "A Commitment is a group element.", - "allOf": [ - { - "$ref": "#/definitions/HexString" - } - ] - }, - "CredentialDeploymentCommitments_for_HexString": { - "description": "The commitments sent by the account holder to the chain in order to deploy credentials", - "type": "object", - "required": [ - "cmmAttributes", - "cmmCredCounter", - "cmmIdCredSecSharingCoeff", - "cmmMaxAccounts", - "cmmPrf" - ], - "properties": { - "cmmAttributes": { - "description": "List of commitments to the attributes that are not revealed. For the purposes of checking signatures, the commitments to those that are revealed as part of the policy are going to be computed by the verifier.", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/Commitment_for_HexString" - } - }, - "cmmCredCounter": { - "description": "commitment to credential counter", - "allOf": [ - { - "$ref": "#/definitions/Commitment_for_HexString" - } - ] - }, - "cmmIdCredSecSharingCoeff": { - "description": "commitments to the coefficients of the polynomial used to share id_cred_sec S + b1 X + b2 X^2... where S is id_cred_sec", - "type": "array", - "items": { - "$ref": "#/definitions/Commitment_for_HexString" - } - }, - "cmmMaxAccounts": { - "description": "commitment to the max account number.", - "allOf": [ - { - "$ref": "#/definitions/Commitment_for_HexString" - } - ] - }, - "cmmPrf": { - "description": "commitment to the prf key", - "allOf": [ - { - "$ref": "#/definitions/Commitment_for_HexString" - } - ] - } - } - }, - "CredentialPublicKeys": { - "description": "Public credential keys currently on the account, together with the threshold needed for a valid signature on a transaction.", - "type": "object", - "required": [ - "keys", - "threshold" - ], - "properties": { - "keys": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/VerifyKey" - } - }, - "threshold": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 - } - } - }, - "DelegationTarget": { - "oneOf": [ - { - "description": "Delegate passively, i.e., to no specific baker.", - "type": "object", - "required": [ - "delegateType" - ], - "properties": { - "delegateType": { - "type": "string", - "enum": [ - "Passive" - ] - } - } - }, - { - "description": "Delegate to a specific baker.", - "type": "object", - "required": [ - "bakerId", - "delegateType" - ], - "properties": { - "bakerId": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "delegateType": { - "type": "string", - "enum": [ - "Baker" - ] - } - } - } - ] - }, - "EncryptedAmount": { - "type": "string", - "maxLength": 384, - "minLength": 384, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "HexString": { - "type": "string", - "minLength": 0, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "OpenStatus": { - "description": "The status of whether a baking pool allows delegators to join.", - "type": "string", - "enum": [ - "openForAll", - "closedForNew", - "closedForAll" - ] - }, - "Policy_for_HexString_and_AttributeKind": { - "description": "A policy is (currently) revealed values of attributes that are part of the identity object. Policies are part of credentials.", - "type": "object", - "required": [ - "createdAt", - "revealedAttributes", - "validTo" - ], - "properties": { - "createdAt": { - "$ref": "#/definitions/YearMonth" - }, - "revealedAttributes": { - "description": "Revealed attributes for now. In the future we might have additional items with (Tag, Property, Proof).", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/AttributeKind" - } - }, - "validTo": { - "$ref": "#/definitions/YearMonth" - } - } - }, - "PublicKey": { - "type": "string", - "minLength": 64, - "pattern": "^([0-9]?[a-f]?)*$" - }, - "Release": { - "description": "An individual release of a locked balance.", - "type": "object", - "required": [ - "amount", - "timestamp", - "transactions" - ], - "properties": { - "amount": { - "description": "Amount to be released.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "timestamp": { - "description": "Effective time of release.", - "type": "integer", - "format": "int64" - }, - "transactions": { - "description": "List of transaction hashes that contribute a balance to this release.", - "type": "array", - "items": { - "$ref": "#/definitions/SHA256Hash" - } - } - } - }, - "SHA256Hash": { - "type": "string", - "maxLength": 64, - "minLength": 64, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "StakePendingChange": { - "description": "Pending change in the baker's stake.", - "oneOf": [ - { - "description": "The stake is being reduced. The new stake will take affect in the given epoch.", - "type": "object", - "required": [ - "change", - "effectiveTime", - "newStake" - ], - "properties": { - "change": { - "type": "string", - "enum": [ - "ReduceStake" - ] - }, - "effectiveTime": { - "type": "string", - "format": "date-time" - }, - "newStake": { - "$ref": "#/definitions/CCDAmount" - } - } - }, - { - "description": "The baker will be removed at the end of the given epoch.", - "type": "object", - "required": [ - "change", - "effectiveTime" - ], - "properties": { - "change": { - "type": "string", - "enum": [ - "RemoveStake" - ] - }, - "effectiveTime": { - "type": "string", - "format": "date-time" - } - } - } - ] - }, - "VerifyKey": { - "type": "object", - "properties": { - "schemeId": { - "type": "string" - }, - "verifyKey": { - "type": "string", - "maxLength": 64, - "minLength": 64, - "pattern": "^(([0-9]?[a-f]?){2})*$" - } - } - }, - "Versioned_for_AccountCredentialWithoutProofs_for_HexString_and_AttributeKind": { - "description": "Versioned represents T as a versioned data-structure. The version is a integer number up to the implementation, which is serialized using variable integer encoding. The caller is responsible for ensuring the data structure `T` is compatible with the version number.", - "type": "object", - "required": [ - "v", - "value" - ], - "properties": { - "v": { - "type": "integer", - "format": "uint32", - "minimum": 0.0 - }, - "value": { - "$ref": "#/definitions/AccountCredentialWithoutProofs_for_HexString_and_AttributeKind" - } - } - }, - "YearMonth": { - "type": "string" - } - } -} \ No newline at end of file diff --git a/source/mainnet/net/references/grpc-json-schemas/GetAccountList.json b/source/mainnet/net/references/grpc-json-schemas/GetAccountList.json deleted file mode 100644 index bba83cf3ac..0000000000 --- a/source/mainnet/net/references/grpc-json-schemas/GetAccountList.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Nullable_Array_of_AccountAddress", - "type": [ - "array", - "null" - ], - "items": { - "$ref": "#/definitions/AccountAddress" - }, - "definitions": { - "AccountAddress": { - "type": "string", - "maxLength": 50, - "minLength": 50, - "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]*" - } - } -} \ No newline at end of file diff --git a/source/mainnet/net/references/grpc-json-schemas/GetAccountNonFinalized.json b/source/mainnet/net/references/grpc-json-schemas/GetAccountNonFinalized.json deleted file mode 100644 index c60499d7be..0000000000 --- a/source/mainnet/net/references/grpc-json-schemas/GetAccountNonFinalized.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Nullable_Array_of_SHA256Hash", - "type": [ - "array", - "null" - ], - "items": { - "$ref": "#/definitions/SHA256Hash" - }, - "definitions": { - "SHA256Hash": { - "type": "string", - "maxLength": 64, - "minLength": 64, - "pattern": "^(([0-9]?[a-f]?){2})*$" - } - } -} \ No newline at end of file diff --git a/source/mainnet/net/references/grpc-json-schemas/GetAncestors.json b/source/mainnet/net/references/grpc-json-schemas/GetAncestors.json deleted file mode 100644 index c60499d7be..0000000000 --- a/source/mainnet/net/references/grpc-json-schemas/GetAncestors.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Nullable_Array_of_SHA256Hash", - "type": [ - "array", - "null" - ], - "items": { - "$ref": "#/definitions/SHA256Hash" - }, - "definitions": { - "SHA256Hash": { - "type": "string", - "maxLength": 64, - "minLength": 64, - "pattern": "^(([0-9]?[a-f]?){2})*$" - } - } -} \ No newline at end of file diff --git a/source/mainnet/net/references/grpc-json-schemas/GetAnonymityRevokers.json b/source/mainnet/net/references/grpc-json-schemas/GetAnonymityRevokers.json deleted file mode 100644 index e2208d69bb..0000000000 --- a/source/mainnet/net/references/grpc-json-schemas/GetAnonymityRevokers.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Nullable_Array_of_ArInfo_for_HexString", - "type": [ - "array", - "null" - ], - "items": { - "$ref": "#/definitions/ArInfo_for_HexString" - }, - "definitions": { - "ArInfo_for_HexString": { - "description": "Information on a single anonymity revoker held by the IP. Typically an IP will hold a more than one.", - "type": "object", - "required": [ - "arDescription", - "arIdentity", - "arPublicKey" - ], - "properties": { - "arDescription": { - "description": "description of the anonymity revoker (e.g. name, contact number)", - "allOf": [ - { - "$ref": "#/definitions/Description" - } - ] - }, - "arIdentity": { - "description": "unique identifier of the anonymity revoker", - "type": "integer", - "format": "uint32", - "minimum": 0.0 - }, - "arPublicKey": { - "description": "elgamal encryption key of the anonymity revoker", - "allOf": [ - { - "$ref": "#/definitions/PublicKey" - } - ] - } - } - }, - "Description": { - "description": "Description either of an anonymity revoker or identity provider. Metadata that should be visible on the chain.", - "type": "object", - "required": [ - "description", - "name", - "url" - ], - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "PublicKey": { - "type": "string", - "minLength": 64, - "pattern": "^([0-9]?[a-f]?)*$" - } - } -} \ No newline at end of file diff --git a/source/mainnet/net/references/grpc-json-schemas/GetBakerList.json b/source/mainnet/net/references/grpc-json-schemas/GetBakerList.json deleted file mode 100644 index 6d24d06ad2..0000000000 --- a/source/mainnet/net/references/grpc-json-schemas/GetBakerList.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Nullable_Array_of_uint64", - "type": [ - "array", - "null" - ], - "items": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } -} \ No newline at end of file diff --git a/source/mainnet/net/references/grpc-json-schemas/GetBirkParameters.json b/source/mainnet/net/references/grpc-json-schemas/GetBirkParameters.json deleted file mode 100644 index ceb7ebb752..0000000000 --- a/source/mainnet/net/references/grpc-json-schemas/GetBirkParameters.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Nullable_BirkParameters", - "anyOf": [ - { - "$ref": "#/definitions/BirkParameters" - }, - { - "type": "null" - } - ], - "definitions": { - "AccountAddress": { - "type": "string", - "maxLength": 50, - "minLength": 50, - "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]*" - }, - "BirkBaker": { - "description": "State of an individual baker.", - "type": "object", - "required": [ - "bakerAccount", - "bakerId", - "bakerLotteryPower" - ], - "properties": { - "bakerAccount": { - "description": "Address of the account this baker is associated with.", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "bakerId": { - "description": "ID of the baker. Matches their account index.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "bakerLotteryPower": { - "description": "The lottery power of the baker. This is the baker's stake relative to the total staked amount.", - "type": "number", - "format": "double" - } - } - }, - "BirkParameters": { - "description": "The state of consensus parameters, and allowed participants (i.e., bakers).", - "type": "object", - "required": [ - "bakers", - "electionDifficulty", - "electionNonce" - ], - "properties": { - "bakers": { - "description": "The list of active bakers.", - "type": "array", - "items": { - "$ref": "#/definitions/BirkBaker" - } - }, - "electionDifficulty": { - "description": "Current election difficulty.", - "type": "number" - }, - "electionNonce": { - "description": "Leadership election nonce for the current epoch.", - "allOf": [ - { - "$ref": "#/definitions/SHA256Hash" - } - ] - } - } - }, - "SHA256Hash": { - "type": "string", - "maxLength": 64, - "minLength": 64, - "pattern": "^(([0-9]?[a-f]?){2})*$" - } - } -} \ No newline at end of file diff --git a/source/mainnet/net/references/grpc-json-schemas/GetBlockInfo.json b/source/mainnet/net/references/grpc-json-schemas/GetBlockInfo.json deleted file mode 100644 index f8f5ef567d..0000000000 --- a/source/mainnet/net/references/grpc-json-schemas/GetBlockInfo.json +++ /dev/null @@ -1,145 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Nullable_BlockInfo", - "anyOf": [ - { - "$ref": "#/definitions/BlockInfo" - }, - { - "type": "null" - } - ], - "definitions": { - "BlockInfo": { - "description": "Metadata about a given block.", - "type": "object", - "required": [ - "blockArriveTime", - "blockHash", - "blockHeight", - "blockLastFinalized", - "blockParent", - "blockReceiveTime", - "blockSlot", - "blockSlotTime", - "blockStateHash", - "eraBlockHeight", - "finalized", - "genesisIndex", - "transactionCount", - "transactionEnergyCost", - "transactionsSize" - ], - "properties": { - "blockArriveTime": { - "description": "Time when the block was added to the node's tree. This is a subjective (i.e., node specific) value.", - "type": "string", - "format": "date-time" - }, - "blockBaker": { - "description": "Identity of the baker of the block. For non-genesis blocks the value is going to always be `Some`.", - "type": [ - "integer", - "null" - ], - "format": "uint64", - "minimum": 0.0 - }, - "blockHash": { - "description": "Hash of the block.", - "allOf": [ - { - "$ref": "#/definitions/SHA256Hash" - } - ] - }, - "blockHeight": { - "description": "Height of the block from genesis.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "blockLastFinalized": { - "description": "Pointer to the last finalized block. Each block has a pointer to a specific finalized block that existed at the time the block was produced.", - "allOf": [ - { - "$ref": "#/definitions/SHA256Hash" - } - ] - }, - "blockParent": { - "description": "Parent block pointer.", - "allOf": [ - { - "$ref": "#/definitions/SHA256Hash" - } - ] - }, - "blockReceiveTime": { - "description": "Time when the block was first received by the node. This can be in principle quite different from the arrive time if, e.g., block execution takes a long time, or the block must wait for the arrival of its parent.", - "type": "string", - "format": "date-time" - }, - "blockSlot": { - "description": "Slot number of the slot the block is in.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "blockSlotTime": { - "description": "Slot time of the slot the block is in. In contrast to [BlockInfo::block_arrive_time] this is an objective value, all nodes agree on it.", - "type": "string", - "format": "date-time" - }, - "blockStateHash": { - "description": "Hash of the block state at the end of the given block.", - "allOf": [ - { - "$ref": "#/definitions/SHA256Hash" - } - ] - }, - "eraBlockHeight": { - "description": "The height of this block relative to the (re)genesis block of its era.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "finalized": { - "description": "Whether the block is finalized or not.", - "type": "boolean" - }, - "genesisIndex": { - "description": "The genesis index for this block. This counts the number of protocol updates that have preceded this block, and defines the era of the block.", - "type": "integer", - "format": "uint32", - "minimum": 0.0 - }, - "transactionCount": { - "description": "The number of transactions in the block.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "transactionEnergyCost": { - "description": "The total energy consumption of transactions in the block.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "transactionsSize": { - "description": "Size of all the transactions in the block in bytes.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - } - }, - "SHA256Hash": { - "type": "string", - "maxLength": 64, - "minLength": 64, - "pattern": "^(([0-9]?[a-f]?){2})*$" - } - } -} \ No newline at end of file diff --git a/source/mainnet/net/references/grpc-json-schemas/GetBlockSummary.json b/source/mainnet/net/references/grpc-json-schemas/GetBlockSummary.json deleted file mode 100644 index f9e4e42a5e..0000000000 --- a/source/mainnet/net/references/grpc-json-schemas/GetBlockSummary.json +++ /dev/null @@ -1,5715 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Nullable_BlockSummary", - "anyOf": [ - { - "$ref": "#/definitions/BlockSummary" - }, - { - "type": "null" - } - ], - "definitions": { - "AccessStructure": { - "description": "And access structure for performing chain updates. The access structure is only meaningful in the context of a list of update keys to which the indices refer to.", - "type": "object", - "required": [ - "authorizedKeys", - "threshold" - ], - "properties": { - "authorizedKeys": { - "type": "array", - "items": { - "type": "integer", - "format": "uint16", - "minimum": 0.0 - }, - "uniqueItems": true - }, - "threshold": { - "type": "integer", - "format": "uint16", - "minimum": 0.0 - } - } - }, - "AccountAddress": { - "type": "string", - "maxLength": 50, - "minLength": 50, - "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]*" - }, - "AccountAmount": { - "type": "object", - "required": [ - "address", - "amount" - ], - "properties": { - "address": { - "$ref": "#/definitions/AccountAddress" - }, - "amount": { - "$ref": "#/definitions/CCDAmount" - } - } - }, - "Address": { - "description": "Either an account or contract address. Some operations are allowed on both types of items, hence the need for this type.", - "oneOf": [ - { - "type": "object", - "required": [ - "address", - "type" - ], - "properties": { - "address": { - "$ref": "#/definitions/AccountAddress" - }, - "type": { - "type": "string", - "enum": [ - "AddressAccount" - ] - } - } - }, - { - "type": "object", - "required": [ - "address", - "type" - ], - "properties": { - "address": { - "$ref": "#/definitions/ContractAddress" - }, - "type": { - "type": "string", - "enum": [ - "AddressContract" - ] - } - } - } - ] - }, - "ArInfo_for_HexString": { - "description": "Information on a single anonymity revoker held by the IP. Typically an IP will hold a more than one.", - "type": "object", - "required": [ - "arDescription", - "arIdentity", - "arPublicKey" - ], - "properties": { - "arDescription": { - "description": "description of the anonymity revoker (e.g. name, contact number)", - "allOf": [ - { - "$ref": "#/definitions/Description" - } - ] - }, - "arIdentity": { - "description": "unique identifier of the anonymity revoker", - "type": "integer", - "format": "uint32", - "minimum": 0.0 - }, - "arPublicKey": { - "description": "elgamal encryption key of the anonymity revoker", - "allOf": [ - { - "$ref": "#/definitions/PublicKey" - } - ] - } - } - }, - "AuthorizationsV0": { - "description": "Access structures for each of the different possible chain updates, togehter with the context giving all the possible keys.", - "type": "object", - "required": [ - "addAnonymityRevoker", - "addIdentityProvider", - "electionDifficulty", - "emergency", - "euroPerEnergy", - "foundationAccount", - "keys", - "microGTUPerEuro", - "mintDistribution", - "paramGASRewards", - "poolParameters", - "protocol", - "transactionFeeDistribution" - ], - "properties": { - "addAnonymityRevoker": { - "description": "Access structure for adding new anonymity revokers.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "addIdentityProvider": { - "description": "Access structure for adding new identity providers.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "electionDifficulty": { - "description": "Access structure for updating the election difficulty.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "emergency": { - "description": "Access structure for emergency updates.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "euroPerEnergy": { - "description": "Access structure for updating the euro to energy exchange rate.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "foundationAccount": { - "description": "Access structure for updating the foundation account address.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "keys": { - "description": "The list of all keys that are currently authorized to perform updates.", - "type": "array", - "items": { - "$ref": "#/definitions/VerifyKey" - } - }, - "microGTUPerEuro": { - "description": "Access structure for updating the microccd per euro exchange rate.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "mintDistribution": { - "description": "Access structure for updating the mint distribution parameters.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "paramGASRewards": { - "description": "Access structure for updating the gas reward distribution parameters.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "poolParameters": { - "description": "Access structure for updating the pool parameters. For V0 this is only the baker stake threshold, for V1 there are more.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "protocol": { - "description": "Access structure for protocol updates.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "transactionFeeDistribution": { - "description": "Access structure for updating the transaction fee distribution.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - } - } - }, - "AuthorizationsV1": { - "description": "Access structures for each of the different possible chain updates, togehter with the context giving all the possible keys.", - "type": "object", - "required": [ - "addAnonymityRevoker", - "addIdentityProvider", - "cooldownParameters", - "electionDifficulty", - "emergency", - "euroPerEnergy", - "foundationAccount", - "keys", - "microGTUPerEuro", - "mintDistribution", - "paramGASRewards", - "poolParameters", - "protocol", - "timeParameters", - "transactionFeeDistribution" - ], - "properties": { - "addAnonymityRevoker": { - "description": "Access structure for adding new anonymity revokers.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "addIdentityProvider": { - "description": "Access structure for adding new identity providers.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "cooldownParameters": { - "description": "Keys for changing cooldown periods related to baking and delegating.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "electionDifficulty": { - "description": "Access structure for updating the election difficulty.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "emergency": { - "description": "Access structure for emergency updates.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "euroPerEnergy": { - "description": "Access structure for updating the euro to energy exchange rate.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "foundationAccount": { - "description": "Access structure for updating the foundation account address.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "keys": { - "description": "The list of all keys that are currently authorized to perform updates.", - "type": "array", - "items": { - "$ref": "#/definitions/VerifyKey" - } - }, - "microGTUPerEuro": { - "description": "Access structure for updating the microccd per euro exchange rate.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "mintDistribution": { - "description": "Access structure for updating the mint distribution parameters.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "paramGASRewards": { - "description": "Access structure for updating the gas reward distribution parameters.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "poolParameters": { - "description": "Access structure for updating the pool parameters. For V0 this is only the baker stake threshold, for V1 there are more.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "protocol": { - "description": "Access structure for protocol updates.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "timeParameters": { - "description": "Keys for changing the lenghts of the reward period.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "transactionFeeDistribution": { - "description": "Access structure for updating the transaction fee distribution.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - } - } - }, - "BakerAggregationVerifyKey": { - "type": "string", - "maxLength": 192, - "minLength": 192, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "BakerElectionVerifyKey": { - "type": "string", - "maxLength": 64, - "minLength": 64, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "BakerParameters": { - "type": "object", - "required": [ - "minimumThresholdForBaking" - ], - "properties": { - "minimumThresholdForBaking": { - "$ref": "#/definitions/CCDAmount" - } - } - }, - "BakerSignatureVerifyKey": { - "type": "string", - "maxLength": 64, - "minLength": 64, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "BlockItemResult": { - "description": "Outcome of a block item execution.", - "oneOf": [ - { - "description": "The intended action was completed. The sender was charged, if applicable. Some events were generated describing the changes that happened on the chain.", - "type": "object", - "required": [ - "events", - "outcome" - ], - "properties": { - "events": { - "type": "array", - "items": { - "$ref": "#/definitions/Event" - } - }, - "outcome": { - "type": "string", - "enum": [ - "success" - ] - } - } - }, - { - "description": "The intended action was not completed due to an error. The sender was charged, but no other effect is seen on the chain.", - "type": "object", - "required": [ - "outcome", - "rejectReason" - ], - "properties": { - "outcome": { - "type": "string", - "enum": [ - "reject" - ] - }, - "rejectReason": { - "$ref": "#/definitions/RejectReason" - } - } - } - ] - }, - "BlockItemSummary": { - "description": "Summary of the outcome of a block item.", - "type": "object", - "required": [ - "cost", - "energyCost", - "hash", - "index", - "result", - "type" - ], - "properties": { - "cost": { - "description": "The amount of CCD the transaction was charged to the sender.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "energyCost": { - "description": "The amount of NRG the transaction cost.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "hash": { - "description": "Hash of the transaction.", - "allOf": [ - { - "$ref": "#/definitions/SHA256Hash" - } - ] - }, - "index": { - "description": "Index of the transaction in the block where it is included.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "result": { - "description": "What is the outcome of this particular block item.", - "allOf": [ - { - "$ref": "#/definitions/BlockItemResult" - } - ] - }, - "sender": { - "description": "Sender, if available. The sender is always available for account transactions.", - "default": null, - "anyOf": [ - { - "$ref": "#/definitions/AccountAddress" - }, - { - "type": "null" - } - ] - }, - "type": { - "description": "Which type of block item this is.", - "allOf": [ - { - "$ref": "#/definitions/BlockItemType" - } - ] - } - } - }, - "BlockItemType": { - "description": "The type of the block item.", - "oneOf": [ - { - "description": "Account transactions are transactions that are signed by an account. Most transactions are account transactions.", - "type": "object", - "required": [ - "contents", - "type" - ], - "properties": { - "contents": { - "anyOf": [ - { - "$ref": "#/definitions/TransactionType" - }, - { - "type": "null" - } - ] - }, - "type": { - "type": "string", - "enum": [ - "accountTransaction" - ] - } - } - }, - { - "description": "Credential deployments that create accounts are special kinds of transactions. They are not signed by the account in the usual way, and they are not paid for directly by the sender.", - "type": "object", - "required": [ - "contents", - "type" - ], - "properties": { - "contents": { - "$ref": "#/definitions/CredentialType" - }, - "type": { - "type": "string", - "enum": [ - "credentialDeploymentTransaction" - ] - } - } - }, - { - "description": "Chain updates are signed by the governance keys. They affect the core parameters of the chain.", - "type": "object", - "required": [ - "contents", - "type" - ], - "properties": { - "contents": { - "$ref": "#/definitions/UpdateType" - }, - "type": { - "type": "string", - "enum": [ - "updateTransaction" - ] - } - } - } - ] - }, - "BlockSummary": { - "description": "Summary of transactions, protocol generated transfers, and chain parameters in a given block.", - "anyOf": [ - { - "type": "object", - "required": [ - "protocolVersion", - "specialEvents", - "transactionSummaries", - "updates" - ], - "properties": { - "finalizationData": { - "description": "If the block contains a finalization record this contains its summary. Otherwise [None].", - "anyOf": [ - { - "$ref": "#/definitions/FinalizationSummary" - }, - { - "type": "null" - } - ] - }, - "protocolVersion": { - "description": "Protocol version at which this block was baked. This is no more than [ProtocolVersion::P3]", - "allOf": [ - { - "$ref": "#/definitions/ProtocolVersion" - } - ] - }, - "specialEvents": { - "description": "Any special events generated as part of this block. Special events are protocol defined transfers, e.g., rewards, minting.", - "type": "array", - "items": { - "$ref": "#/definitions/SpecialTransactionOutcome" - } - }, - "transactionSummaries": { - "description": "Outcomes of transactions in this block, ordered as in the block.", - "type": "array", - "items": { - "$ref": "#/definitions/BlockItemSummary" - } - }, - "updates": { - "description": "Chain parameters, and any scheduled updates to chain parameters or the protocol.", - "allOf": [ - { - "$ref": "#/definitions/UpdatesSkeleton_for_UpdateKeysCollectionSkeleton_for_AuthorizationsV0_and_ChainParametersV0_and_PendingUpdatesV0" - } - ] - } - } - }, - { - "type": "object", - "required": [ - "protocolVersion", - "specialEvents", - "transactionSummaries", - "updates" - ], - "properties": { - "finalizationData": { - "description": "If the block contains a finalization record this contains its summary. Otherwise [None].", - "anyOf": [ - { - "$ref": "#/definitions/FinalizationSummary" - }, - { - "type": "null" - } - ] - }, - "protocolVersion": { - "description": "Protocol version at which this block was baked. This is at least [ProtocolVersion::P4]", - "allOf": [ - { - "$ref": "#/definitions/ProtocolVersion" - } - ] - }, - "specialEvents": { - "description": "Any special events generated as part of this block. Special events are protocol defined transfers, e.g., rewards, minting.", - "type": "array", - "items": { - "$ref": "#/definitions/SpecialTransactionOutcome" - } - }, - "transactionSummaries": { - "description": "Outcomes of transactions in this block, ordered as in the block.", - "type": "array", - "items": { - "$ref": "#/definitions/BlockItemSummary" - } - }, - "updates": { - "description": "Chain parameters, and any scheduled updates to chain parameters or the protocol.", - "allOf": [ - { - "$ref": "#/definitions/UpdatesSkeleton_for_UpdateKeysCollectionSkeleton_for_AuthorizationsV1_and_ChainParametersV1_and_PendingUpdatesV1" - } - ] - } - } - } - ] - }, - "CCDAmount": { - "type": "string", - "maxLength": 20, - "minLength": 1, - "pattern": "^([0-9])*" - }, - "ChainParametersV0": { - "description": "Values of chain parameters that can be updated via chain updates.", - "type": "object", - "required": [ - "accountCreationLimit", - "bakerCooldownEpochs", - "electionDifficulty", - "euroPerEnergy", - "foundationAccountIndex", - "microGTUPerEuro", - "minimumThresholdForBaking", - "rewardParameters" - ], - "properties": { - "accountCreationLimit": { - "description": "The limit for the number of account creations in a block.", - "type": "integer", - "format": "uint16", - "minimum": 0.0 - }, - "bakerCooldownEpochs": { - "description": "Extra number of epochs before reduction in stake, or baker deregistration is completed.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "electionDifficulty": { - "description": "Election difficulty for consensus lottery.", - "type": "number" - }, - "euroPerEnergy": { - "description": "Euro per energy exchange rate.", - "allOf": [ - { - "$ref": "#/definitions/ExchangeRate" - } - ] - }, - "foundationAccountIndex": { - "description": "Index of the foundation account.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "microGTUPerEuro": { - "description": "Micro ccd per euro exchange rate.", - "allOf": [ - { - "$ref": "#/definitions/ExchangeRate" - } - ] - }, - "minimumThresholdForBaking": { - "description": "Minimum threshold for becoming a baker.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "rewardParameters": { - "description": "Current reward parameters.", - "allOf": [ - { - "$ref": "#/definitions/RewardParametersSkeleton_for_MintDistributionV0" - } - ] - } - } - }, - "ChainParametersV1": { - "description": "Values of chain parameters that can be updated via chain updates.", - "type": "object", - "required": [ - "accountCreationLimit", - "bakingCommissionRange", - "capitalBound", - "delegatorCooldown", - "electionDifficulty", - "euroPerEnergy", - "finalizationCommissionRange", - "foundationAccountIndex", - "leverageBound", - "microGTUPerEuro", - "minimumEquityCapital", - "mintPerPayday", - "passiveBakingCommission", - "passiveFinalizationCommission", - "passiveTransactionCommission", - "poolOwnerCooldown", - "rewardParameters", - "rewardPeriodLength", - "transactionCommissionRange" - ], - "properties": { - "accountCreationLimit": { - "description": "The limit for the number of account creations in a block.", - "type": "integer", - "format": "uint16", - "minimum": 0.0 - }, - "bakingCommissionRange": { - "description": "The range of allowed baker commissions.", - "allOf": [ - { - "$ref": "#/definitions/InclusiveRange_for_Number" - } - ] - }, - "capitalBound": { - "description": "Maximum fraction of the total staked capital of that a new baker can have.", - "type": "number" - }, - "delegatorCooldown": { - "description": "Number of seconds that a delegator must cooldown when reducing their delegated stake.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "electionDifficulty": { - "description": "Election difficulty for consensus lottery.", - "type": "number" - }, - "euroPerEnergy": { - "description": "Euro per energy exchange rate.", - "allOf": [ - { - "$ref": "#/definitions/ExchangeRate" - } - ] - }, - "finalizationCommissionRange": { - "description": "The range of allowed finalization commissions.", - "allOf": [ - { - "$ref": "#/definitions/InclusiveRange_for_Number" - } - ] - }, - "foundationAccountIndex": { - "description": "Index of the foundation account.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "leverageBound": { - "description": "The maximum leverage that a baker can have as a ratio of total stake to equity capital.", - "allOf": [ - { - "$ref": "#/definitions/LeverageFactor" - } - ] - }, - "microGTUPerEuro": { - "description": "Micro ccd per euro exchange rate.", - "allOf": [ - { - "$ref": "#/definitions/ExchangeRate" - } - ] - }, - "minimumEquityCapital": { - "description": "Minimum equity capital required for a new baker.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "mintPerPayday": { - "$ref": "#/definitions/MintRate" - }, - "passiveBakingCommission": { - "description": "Fraction of baking rewards charged by the passive delegation.", - "type": "number" - }, - "passiveFinalizationCommission": { - "description": "Fraction of finalization rewards charged by the passive delegation.", - "type": "number" - }, - "passiveTransactionCommission": { - "description": "Fraction of transaction rewards charged by the L-pool.", - "type": "number" - }, - "poolOwnerCooldown": { - "description": "Number of seconds that pool owners must cooldown when reducing their equity capital or closing the pool.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "rewardParameters": { - "description": "Current reward parameters.", - "allOf": [ - { - "$ref": "#/definitions/RewardParametersSkeleton_for_MintDistributionV1" - } - ] - }, - "rewardPeriodLength": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "transactionCommissionRange": { - "description": "The range of allowed transaction commissions.", - "allOf": [ - { - "$ref": "#/definitions/InclusiveRange_for_Number" - } - ] - } - } - }, - "ContractAddress": { - "type": "object", - "required": [ - "index", - "subindex" - ], - "properties": { - "index": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "subindex": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - } - }, - "ContractEvent": { - "type": "string", - "maxLength": 1024, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "CooldownParameters": { - "type": "object", - "required": [ - "delegatorCooldown", - "poolOwnerCooldown" - ], - "properties": { - "delegatorCooldown": { - "description": "Number of seconds that a delegator must cooldown when reducing their delegated stake.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "poolOwnerCooldown": { - "description": "Number of seconds that pool owners must cooldown when reducing their equity capital or closing the pool.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - } - }, - "CredentialRegistrationID": { - "type": "string", - "maxLength": 96, - "minLength": 96, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "CredentialType": { - "description": "Enumeration of the types of credentials.", - "type": "string", - "enum": [ - "initial", - "normal" - ] - }, - "DelegationTarget": { - "oneOf": [ - { - "description": "Delegate passively, i.e., to no specific baker.", - "type": "object", - "required": [ - "delegateType" - ], - "properties": { - "delegateType": { - "type": "string", - "enum": [ - "Passive" - ] - } - } - }, - { - "description": "Delegate to a specific baker.", - "type": "object", - "required": [ - "bakerId", - "delegateType" - ], - "properties": { - "bakerId": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "delegateType": { - "type": "string", - "enum": [ - "Baker" - ] - } - } - } - ] - }, - "Description": { - "description": "Description either of an anonymity revoker or identity provider. Metadata that should be visible on the chain.", - "type": "object", - "required": [ - "description", - "name", - "url" - ], - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "EncryptedAmount": { - "type": "string", - "maxLength": 384, - "minLength": 384, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "Event": { - "description": "An event describing the changes that occurred to the state of the chain.", - "oneOf": [ - { - "description": "A smart contract module was successfully deployed.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/SHA256Hash" - }, - "tag": { - "type": "string", - "enum": [ - "ModuleDeployed" - ] - } - } - }, - { - "description": "A new smart contract instance was created.", - "type": "object", - "required": [ - "address", - "amount", - "events", - "initName", - "ref", - "tag" - ], - "properties": { - "address": { - "description": "The newly assigned address of the contract.", - "allOf": [ - { - "$ref": "#/definitions/ContractAddress" - } - ] - }, - "amount": { - "description": "The amount the instance was initialized with.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "contractVersion": { - "default": 0, - "allOf": [ - { - "$ref": "#/definitions/WasmVersion" - } - ] - }, - "events": { - "description": "Any contract events that might have been generated by the contract initialization.", - "type": "array", - "items": { - "$ref": "#/definitions/ContractEvent" - } - }, - "initName": { - "description": "The name of the contract.", - "type": "string" - }, - "ref": { - "description": "Module with the source code of the contract.", - "allOf": [ - { - "$ref": "#/definitions/SHA256Hash" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "ContractInitialized" - ] - } - } - }, - { - "description": "A smart contract instance was updated.", - "type": "object", - "required": [ - "address", - "amount", - "events", - "instigator", - "message", - "receiveName", - "tag" - ], - "properties": { - "address": { - "description": "Address of the affected instance.", - "allOf": [ - { - "$ref": "#/definitions/ContractAddress" - } - ] - }, - "amount": { - "description": "The amount the method was invoked with.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "contractVersion": { - "default": 0, - "allOf": [ - { - "$ref": "#/definitions/WasmVersion" - } - ] - }, - "events": { - "description": "Any contract events that might have been generated by the contract execution.", - "type": "array", - "items": { - "$ref": "#/definitions/ContractEvent" - } - }, - "instigator": { - "description": "The origin of the message to the smart contract. This can be either an account or a smart contract.", - "allOf": [ - { - "$ref": "#/definitions/Address" - } - ] - }, - "message": { - "description": "The message passed to method.", - "allOf": [ - { - "$ref": "#/definitions/Parameter" - } - ] - }, - "receiveName": { - "description": "The name of the method that was executed.", - "type": "string" - }, - "tag": { - "type": "string", - "enum": [ - "Updated" - ] - } - } - }, - { - "description": "An amount of CCD was transferred.", - "type": "object", - "required": [ - "amount", - "from", - "tag", - "to" - ], - "properties": { - "amount": { - "description": "Amount that was transferred.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "from": { - "description": "Sender, either smart contract instance or account.", - "allOf": [ - { - "$ref": "#/definitions/Address" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "Transferred" - ] - }, - "to": { - "description": "Receiver. This will currently always be an account. Transferring to a smart contract is always an update.", - "allOf": [ - { - "$ref": "#/definitions/Address" - } - ] - } - } - }, - { - "description": "An account with the given address was created.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/AccountAddress" - }, - "tag": { - "type": "string", - "enum": [ - "AccountCreated" - ] - } - } - }, - { - "description": "A new credential with the given ID was deployed onto an account. This is used only when a new account is created. See [Event::CredentialsUpdated] for when an existing account's credentials are updated.", - "type": "object", - "required": [ - "account", - "regId", - "tag" - ], - "properties": { - "account": { - "$ref": "#/definitions/AccountAddress" - }, - "regId": { - "$ref": "#/definitions/CredentialRegistrationID" - }, - "tag": { - "type": "string", - "enum": [ - "CredentialDeployed" - ] - } - } - }, - { - "description": "A new baker was registered, with the given ID and keys.", - "type": "object", - "required": [ - "account", - "aggregationKey", - "bakerId", - "electionKey", - "restakeEarnings", - "signKey", - "stake", - "tag" - ], - "properties": { - "account": { - "description": "Account address of the baker.", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "aggregationKey": { - "description": "The new public key for verifying finalization records.", - "allOf": [ - { - "$ref": "#/definitions/BakerAggregationVerifyKey" - } - ] - }, - "bakerId": { - "description": "ID of the baker whose keys were changed.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "electionKey": { - "description": "The new public key for verifying whether the baker won the block lottery.", - "allOf": [ - { - "$ref": "#/definitions/BakerElectionVerifyKey" - } - ] - }, - "restakeEarnings": { - "description": "Whether the baker will automatically add earnings to their stake or not.", - "type": "boolean" - }, - "signKey": { - "description": "The new public key for verifying block signatures.", - "allOf": [ - { - "$ref": "#/definitions/BakerSignatureVerifyKey" - } - ] - }, - "stake": { - "description": "The amount the account staked to become a baker. This amount is locked.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "BakerAdded" - ] - } - } - }, - { - "description": "A baker was scheduled to be removed.", - "type": "object", - "required": [ - "account", - "bakerId", - "tag" - ], - "properties": { - "account": { - "$ref": "#/definitions/AccountAddress" - }, - "bakerId": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "tag": { - "type": "string", - "enum": [ - "BakerRemoved" - ] - } - } - }, - { - "description": "A baker's stake was increased. This has effect immediately.", - "type": "object", - "required": [ - "account", - "bakerId", - "newStake", - "tag" - ], - "properties": { - "account": { - "$ref": "#/definitions/AccountAddress" - }, - "bakerId": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "newStake": { - "$ref": "#/definitions/CCDAmount" - }, - "tag": { - "type": "string", - "enum": [ - "BakerStakeIncreased" - ] - } - } - }, - { - "description": "A baker's stake was scheduled to be decreased. This will have an effect on the stake after a number of epochs, controlled by the baker cooldown period.", - "type": "object", - "required": [ - "account", - "bakerId", - "newStake", - "tag" - ], - "properties": { - "account": { - "$ref": "#/definitions/AccountAddress" - }, - "bakerId": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "newStake": { - "$ref": "#/definitions/CCDAmount" - }, - "tag": { - "type": "string", - "enum": [ - "BakerStakeDecreased" - ] - } - } - }, - { - "description": "The setting for whether rewards are added to stake immediately or not was changed to the given value.", - "type": "object", - "required": [ - "account", - "bakerId", - "restakeEarnings", - "tag" - ], - "properties": { - "account": { - "$ref": "#/definitions/AccountAddress" - }, - "bakerId": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "restakeEarnings": { - "description": "The new value of the flag.", - "type": "boolean" - }, - "tag": { - "type": "string", - "enum": [ - "BakerSetRestakeEarnings" - ] - } - } - }, - { - "description": "The baker keys were updated. The new keys are listed.", - "type": "object", - "required": [ - "account", - "aggregationKey", - "bakerId", - "electionKey", - "signKey", - "tag" - ], - "properties": { - "account": { - "description": "Account address of the baker.", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "aggregationKey": { - "description": "The new public key for verifying finalization records.", - "allOf": [ - { - "$ref": "#/definitions/BakerAggregationVerifyKey" - } - ] - }, - "bakerId": { - "description": "ID of the baker whose keys were changed.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "electionKey": { - "description": "The new public key for verifying whether the baker won the block lottery.", - "allOf": [ - { - "$ref": "#/definitions/BakerElectionVerifyKey" - } - ] - }, - "signKey": { - "description": "The new public key for verifying block signatures.", - "allOf": [ - { - "$ref": "#/definitions/BakerSignatureVerifyKey" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "BakerKeysUpdated" - ] - } - } - }, - { - "description": "Keys of the given credential were updated.", - "type": "object", - "required": [ - "credId", - "tag" - ], - "properties": { - "credId": { - "$ref": "#/definitions/CredentialRegistrationID" - }, - "tag": { - "type": "string", - "enum": [ - "CredentialKeysUpdated" - ] - } - } - }, - { - "description": "A new encrypted amount was added to the account.", - "type": "object", - "required": [ - "account", - "encryptedAmount", - "newIndex", - "tag" - ], - "properties": { - "account": { - "description": "The account onto which the amount was added.", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "encryptedAmount": { - "description": "The encrypted amount that was added.", - "allOf": [ - { - "$ref": "#/definitions/EncryptedAmount" - } - ] - }, - "newIndex": { - "description": "The index the amount was assigned.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "tag": { - "type": "string", - "enum": [ - "NewEncryptedAmount" - ] - } - } - }, - { - "description": "One or more encrypted amounts were removed from an account as part of a transfer or decryption.", - "type": "object", - "required": [ - "account", - "inputAmount", - "newAmount", - "tag", - "upToIndex" - ], - "properties": { - "account": { - "description": "The affected account.", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "inputAmount": { - "description": "The input encrypted amount that was removed.", - "allOf": [ - { - "$ref": "#/definitions/EncryptedAmount" - } - ] - }, - "newAmount": { - "description": "The new self encrypted amount on the affected account.", - "allOf": [ - { - "$ref": "#/definitions/EncryptedAmount" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "EncryptedAmountsRemoved" - ] - }, - "upToIndex": { - "description": "The index indicating which amounts were used.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - } - }, - { - "description": "The public balance of the account was increased via a transfer from encrypted to public balance.", - "type": "object", - "required": [ - "account", - "amount", - "tag" - ], - "properties": { - "account": { - "$ref": "#/definitions/AccountAddress" - }, - "amount": { - "$ref": "#/definitions/CCDAmount" - }, - "tag": { - "type": "string", - "enum": [ - "AmountAddedByDecryption" - ] - } - } - }, - { - "description": "The encrypted balance of the account was updated due to transfer from public to encrypted balance of the account.", - "type": "object", - "required": [ - "account", - "amount", - "newAmount", - "tag" - ], - "properties": { - "account": { - "description": "The affected account.", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "amount": { - "description": "The amount that was transferred from public to encrypted balance.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "newAmount": { - "description": "The new self encrypted amount of the account.", - "allOf": [ - { - "$ref": "#/definitions/EncryptedAmount" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "EncryptedSelfAmountAdded" - ] - } - } - }, - { - "description": "An update was enqueued for the given time.", - "type": "object", - "required": [ - "effectiveTime", - "payload", - "tag" - ], - "properties": { - "effectiveTime": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "payload": { - "$ref": "#/definitions/UpdatePayload" - }, - "tag": { - "type": "string", - "enum": [ - "UpdateEnqueued" - ] - } - } - }, - { - "description": "A transfer with schedule was enqueued.", - "type": "object", - "required": [ - "amount", - "from", - "tag", - "to" - ], - "properties": { - "amount": { - "description": "The list of releases. Ordered by increasing timestamp.", - "type": "array", - "items": { - "type": "array", - "items": [ - { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - { - "$ref": "#/definitions/CCDAmount" - } - ], - "maxItems": 2, - "minItems": 2 - } - }, - "from": { - "description": "Sender account.", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "TransferredWithSchedule" - ] - }, - "to": { - "description": "Receiver account.", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - } - } - }, - { - "description": "The credentials of the account were updated. Either added, removed, or both.", - "type": "object", - "required": [ - "account", - "newCredIds", - "newThreshold", - "removedCredIds", - "tag" - ], - "properties": { - "account": { - "description": "The affected account.", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "newCredIds": { - "description": "The credential ids that were added.", - "type": "array", - "items": { - "$ref": "#/definitions/CredentialRegistrationID" - } - }, - "newThreshold": { - "description": "The (possibly) updated account threshold.", - "type": "integer", - "format": "uint8", - "minimum": 1.0 - }, - "removedCredIds": { - "description": "The credentials that were removed.", - "type": "array", - "items": { - "$ref": "#/definitions/CredentialRegistrationID" - } - }, - "tag": { - "type": "string", - "enum": [ - "CredentialsUpdated" - ] - } - } - }, - { - "description": "Data was registered.", - "type": "object", - "required": [ - "data", - "tag" - ], - "properties": { - "data": { - "$ref": "#/definitions/RegisteredData" - }, - "tag": { - "type": "string", - "enum": [ - "DataRegistered" - ] - } - } - }, - { - "description": "Memo", - "type": "object", - "required": [ - "memo", - "tag" - ], - "properties": { - "memo": { - "$ref": "#/definitions/Memo" - }, - "tag": { - "type": "string", - "enum": [ - "TransferMemo" - ] - } - } - }, - { - "description": "A V1 contract was interrupted.", - "type": "object", - "required": [ - "address", - "events", - "tag" - ], - "properties": { - "address": { - "description": "Address of the contract that was interrupted.", - "allOf": [ - { - "$ref": "#/definitions/ContractAddress" - } - ] - }, - "events": { - "description": "Events generated up to the interrupt.", - "type": "array", - "items": { - "$ref": "#/definitions/ContractEvent" - } - }, - "tag": { - "type": "string", - "enum": [ - "Interrupted" - ] - } - } - }, - { - "description": "A V1 contract resumed execution.", - "type": "object", - "required": [ - "address", - "success", - "tag" - ], - "properties": { - "address": { - "description": "Address of the contract that is resuming.", - "allOf": [ - { - "$ref": "#/definitions/ContractAddress" - } - ] - }, - "success": { - "description": "Whether the interrupt succeeded or not.", - "type": "boolean" - }, - "tag": { - "type": "string", - "enum": [ - "Resumed" - ] - } - } - }, - { - "description": "Updated open status for a baker pool", - "type": "object", - "required": [ - "account", - "bakerId", - "openStatus", - "tag" - ], - "properties": { - "account": { - "description": "Baker account", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "bakerId": { - "description": "Baker's id", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "openStatus": { - "description": "The open status.", - "allOf": [ - { - "$ref": "#/definitions/OpenStatus" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "BakerSetOpenStatus" - ] - } - } - }, - { - "description": "Updated metadata url for baker pool", - "type": "object", - "required": [ - "account", - "bakerId", - "metadataURL", - "tag" - ], - "properties": { - "account": { - "description": "Baker account", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "bakerId": { - "description": "Baker's id", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "metadataURL": { - "description": "The URL.", - "type": "string" - }, - "tag": { - "type": "string", - "enum": [ - "BakerSetMetadataURL" - ] - } - } - }, - { - "description": "Updated transaction fee commission for baker pool", - "type": "object", - "required": [ - "account", - "bakerId", - "tag", - "transactionFeeCommission" - ], - "properties": { - "account": { - "description": "Baker account", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "bakerId": { - "description": "Baker's id", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "tag": { - "type": "string", - "enum": [ - "BakerSetTransactionFeeCommission" - ] - }, - "transactionFeeCommission": { - "description": "The transaction fee commission.", - "type": "number" - } - } - }, - { - "description": "Updated baking reward commission for baker pool", - "type": "object", - "required": [ - "account", - "bakerId", - "bakingRewardCommission", - "tag" - ], - "properties": { - "account": { - "description": "Baker account", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "bakerId": { - "description": "Baker's id", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "bakingRewardCommission": { - "description": "The baking reward commission", - "type": "number" - }, - "tag": { - "type": "string", - "enum": [ - "BakerSetBakingRewardCommission" - ] - } - } - }, - { - "description": "Updated finalization reward commission for baker pool", - "type": "object", - "required": [ - "account", - "bakerId", - "finalizationRewardCommission", - "tag" - ], - "properties": { - "account": { - "description": "Baker account", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "bakerId": { - "description": "Baker's id", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "finalizationRewardCommission": { - "description": "The finalization reward commission", - "type": "number" - }, - "tag": { - "type": "string", - "enum": [ - "BakerSetFinalizationRewardCommission" - ] - } - } - }, - { - "type": "object", - "required": [ - "account", - "delegatorId", - "newStake", - "tag" - ], - "properties": { - "account": { - "description": "Delegator account", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "delegatorId": { - "description": "Delegator's id", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "newStake": { - "description": "New stake", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "DelegationStakeIncreased" - ] - } - } - }, - { - "type": "object", - "required": [ - "account", - "delegatorId", - "newStake", - "tag" - ], - "properties": { - "account": { - "description": "Delegator account", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "delegatorId": { - "description": "Delegator's id", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "newStake": { - "description": "New stake", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "DelegationStakeDecreased" - ] - } - } - }, - { - "type": "object", - "required": [ - "account", - "delegatorId", - "restakeEarnings", - "tag" - ], - "properties": { - "account": { - "description": "Delegator account", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "delegatorId": { - "description": "Delegator's id", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "restakeEarnings": { - "description": "Whether earnings will be restaked", - "type": "boolean" - }, - "tag": { - "type": "string", - "enum": [ - "DelegationSetRestakeEarnings" - ] - } - } - }, - { - "type": "object", - "required": [ - "account", - "delegationTarget", - "delegatorId", - "tag" - ], - "properties": { - "account": { - "description": "Delegator account", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "delegationTarget": { - "description": "New delegation target", - "allOf": [ - { - "$ref": "#/definitions/DelegationTarget" - } - ] - }, - "delegatorId": { - "description": "Delegator's id", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "tag": { - "type": "string", - "enum": [ - "DelegationSetDelegationTarget" - ] - } - } - }, - { - "type": "object", - "required": [ - "account", - "delegatorId", - "tag" - ], - "properties": { - "account": { - "description": "Delegator account", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "delegatorId": { - "description": "Delegator's id", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "tag": { - "type": "string", - "enum": [ - "DelegationAdded" - ] - } - } - }, - { - "type": "object", - "required": [ - "account", - "delegatorId", - "tag" - ], - "properties": { - "account": { - "description": "Delegator account", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "delegatorId": { - "description": "Delegator's id", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "tag": { - "type": "string", - "enum": [ - "DelegationRemoved" - ] - } - } - } - ] - }, - "ExchangeRate": { - "type": "object", - "required": [ - "denominator", - "numerator" - ], - "properties": { - "denominator": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "numerator": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - } - }, - "FinalizationSummary": { - "description": "Summary of the finalization record in a block, if any.", - "type": "object", - "required": [ - "finalizationBlockPointer", - "finalizationDelay", - "finalizationIndex", - "finalizers" - ], - "properties": { - "finalizationBlockPointer": { - "$ref": "#/definitions/SHA256Hash" - }, - "finalizationDelay": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "finalizationIndex": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "finalizers": { - "type": "array", - "items": { - "$ref": "#/definitions/FinalizationSummaryParty" - } - } - } - }, - "FinalizationSummaryParty": { - "description": "Details of a party in a finalization.", - "type": "object", - "required": [ - "bakerId", - "signed", - "weight" - ], - "properties": { - "bakerId": { - "description": "The identity of the baker.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "signed": { - "description": "Whether the party's signature is present", - "type": "boolean" - }, - "weight": { - "description": "The party's relative weight in the committee", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - } - }, - "GASRewards": { - "description": "The reward fractions related to the gas account and inclusion of special transactions.", - "type": "object", - "required": [ - "accountCreation", - "baker", - "chainUpdate", - "finalizationProof" - ], - "properties": { - "accountCreation": { - "description": "`FeeAccountCreation`: fraction paid for including each account creation transaction in a block.", - "type": "number" - }, - "baker": { - "description": "`BakerPrevTransFrac`: fraction of the previous gas account paid to the baker.", - "type": "number" - }, - "chainUpdate": { - "description": "`FeeUpdate`: fraction paid for including an update transaction in a block.", - "type": "number" - }, - "finalizationProof": { - "description": "`FeeAddFinalisationProof`: fraction paid for including a finalization proof in a block.", - "type": "number" - } - } - }, - "HexString": { - "type": "string", - "minLength": 0, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "HigherLevelAccessStructure_for_Level1KeysKind": { - "description": "Either root, level1, or level 2 access structure. They all have the same structure, keys and a threshold. The phantom type parameter is used for added type safety to distinguish different access structures in different contexts.", - "type": "object", - "required": [ - "keys", - "threshold" - ], - "properties": { - "keys": { - "type": "array", - "items": { - "$ref": "#/definitions/VerifyKey" - } - }, - "threshold": { - "type": "integer", - "format": "uint16", - "minimum": 0.0 - } - } - }, - "HigherLevelAccessStructure_for_RootKeysKind": { - "description": "Either root, level1, or level 2 access structure. They all have the same structure, keys and a threshold. The phantom type parameter is used for added type safety to distinguish different access structures in different contexts.", - "type": "object", - "required": [ - "keys", - "threshold" - ], - "properties": { - "keys": { - "type": "array", - "items": { - "$ref": "#/definitions/VerifyKey" - } - }, - "threshold": { - "type": "integer", - "format": "uint16", - "minimum": 0.0 - } - } - }, - "InclusiveRange_for_Number": { - "type": "object", - "required": [ - "max", - "min" - ], - "properties": { - "max": { - "type": "number" - }, - "min": { - "type": "number" - } - } - }, - "IpInfo_for_HexString": { - "description": "Public information about an identity provider.", - "type": "object", - "required": [ - "ipCdiVerifyKey", - "ipDescription", - "ipIdentity", - "ipVerifyKey" - ], - "properties": { - "ipCdiVerifyKey": { - "description": "Ed public key of the IP", - "allOf": [ - { - "$ref": "#/definitions/PublicKey" - } - ] - }, - "ipDescription": { - "description": "Free form description, e.g., how to contact them off-chain", - "allOf": [ - { - "$ref": "#/definitions/Description" - } - ] - }, - "ipIdentity": { - "description": "Unique identifier of the identity provider.", - "type": "integer", - "format": "uint32", - "minimum": 0.0 - }, - "ipVerifyKey": { - "description": "PS public key of the IP", - "allOf": [ - { - "$ref": "#/definitions/PublicKey" - } - ] - } - } - }, - "Level1Update": { - "description": "An update with level 1 keys of either level 1 or level 2 keys. Each of the updates must be a separate transaction.", - "oneOf": [ - { - "type": "object", - "required": [ - "typeOfUpdate", - "updatePayload" - ], - "properties": { - "typeOfUpdate": { - "type": "string", - "enum": [ - "level1KeysUpdate" - ] - }, - "updatePayload": { - "$ref": "#/definitions/HigherLevelAccessStructure_for_Level1KeysKind" - } - } - }, - { - "type": "object", - "required": [ - "typeOfUpdate", - "updatePayload" - ], - "properties": { - "typeOfUpdate": { - "type": "string", - "enum": [ - "level2KeysUpdate" - ] - }, - "updatePayload": { - "$ref": "#/definitions/AuthorizationsV0" - } - } - }, - { - "type": "object", - "required": [ - "typeOfUpdate", - "updatePayload" - ], - "properties": { - "typeOfUpdate": { - "type": "string", - "enum": [ - "level2KeysUpdateV1" - ] - }, - "updatePayload": { - "$ref": "#/definitions/AuthorizationsV1" - } - } - } - ] - }, - "LeverageFactor": { - "type": "object", - "required": [ - "denominator", - "numerator" - ], - "properties": { - "denominator": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "numerator": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - } - }, - "Memo": { - "type": "string", - "maxLength": 512, - "minLength": 0, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "MintDistributionV0": { - "type": "object", - "required": [ - "bakingReward", - "finalizationReward", - "mintPerSlot" - ], - "properties": { - "bakingReward": { - "type": "number" - }, - "finalizationReward": { - "type": "number" - }, - "mintPerSlot": { - "$ref": "#/definitions/MintRate" - } - } - }, - "MintDistributionV1": { - "type": "object", - "required": [ - "bakingReward", - "finalizationReward" - ], - "properties": { - "bakingReward": { - "type": "number" - }, - "finalizationReward": { - "type": "number" - } - } - }, - "MintRate": { - "type": "number" - }, - "OpenStatus": { - "description": "The status of whether a baking pool allows delegators to join.", - "type": "string", - "enum": [ - "openForAll", - "closedForNew", - "closedForAll" - ] - }, - "Parameter": { - "type": "string", - "maxLength": 2048, - "minLength": 0, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "PendingUpdatesV0": { - "type": "object", - "required": [ - "addAnonymityRevoker", - "addIdentityProvider", - "bakerStakeThreshold", - "electionDifficulty", - "euroPerEnergy", - "foundationAccount", - "gasRewards", - "level1Keys", - "level2Keys", - "microGTUPerEuro", - "mintDistribution", - "protocol", - "rootKeys", - "transactionFeeDistribution" - ], - "properties": { - "addAnonymityRevoker": { - "$ref": "#/definitions/UpdateQueue_for_ArInfo_for_HexString" - }, - "addIdentityProvider": { - "$ref": "#/definitions/UpdateQueue_for_IpInfo_for_HexString" - }, - "bakerStakeThreshold": { - "$ref": "#/definitions/UpdateQueue_for_BakerParameters" - }, - "electionDifficulty": { - "$ref": "#/definitions/UpdateQueue_for_Number" - }, - "euroPerEnergy": { - "$ref": "#/definitions/UpdateQueue_for_ExchangeRate" - }, - "foundationAccount": { - "$ref": "#/definitions/UpdateQueue_for_uint64" - }, - "gasRewards": { - "$ref": "#/definitions/UpdateQueue_for_GASRewards" - }, - "level1Keys": { - "$ref": "#/definitions/UpdateQueue_for_HigherLevelAccessStructure_for_Level1KeysKind" - }, - "level2Keys": { - "$ref": "#/definitions/UpdateQueue_for_AuthorizationsV0" - }, - "microGTUPerEuro": { - "$ref": "#/definitions/UpdateQueue_for_ExchangeRate" - }, - "mintDistribution": { - "$ref": "#/definitions/UpdateQueue_for_MintDistributionV0" - }, - "protocol": { - "$ref": "#/definitions/UpdateQueue_for_ProtocolUpdate" - }, - "rootKeys": { - "$ref": "#/definitions/UpdateQueue_for_HigherLevelAccessStructure_for_RootKeysKind" - }, - "transactionFeeDistribution": { - "$ref": "#/definitions/UpdateQueue_for_TransactionFeeDistribution" - } - } - }, - "PendingUpdatesV1": { - "type": "object", - "required": [ - "addAnonymityRevoker", - "addIdentityProvider", - "cooldownParameters", - "electionDifficulty", - "euroPerEnergy", - "foundationAccount", - "gasRewards", - "level1Keys", - "level2Keys", - "microGTUPerEuro", - "mintDistribution", - "poolParameters", - "protocol", - "rootKeys", - "timeParameters", - "transactionFeeDistribution" - ], - "properties": { - "addAnonymityRevoker": { - "$ref": "#/definitions/UpdateQueue_for_ArInfo_for_HexString" - }, - "addIdentityProvider": { - "$ref": "#/definitions/UpdateQueue_for_IpInfo_for_HexString" - }, - "cooldownParameters": { - "$ref": "#/definitions/UpdateQueue_for_CooldownParameters" - }, - "electionDifficulty": { - "$ref": "#/definitions/UpdateQueue_for_Number" - }, - "euroPerEnergy": { - "$ref": "#/definitions/UpdateQueue_for_ExchangeRate" - }, - "foundationAccount": { - "$ref": "#/definitions/UpdateQueue_for_uint64" - }, - "gasRewards": { - "$ref": "#/definitions/UpdateQueue_for_GASRewards" - }, - "level1Keys": { - "$ref": "#/definitions/UpdateQueue_for_HigherLevelAccessStructure_for_Level1KeysKind" - }, - "level2Keys": { - "$ref": "#/definitions/UpdateQueue_for_AuthorizationsV1" - }, - "microGTUPerEuro": { - "$ref": "#/definitions/UpdateQueue_for_ExchangeRate" - }, - "mintDistribution": { - "$ref": "#/definitions/UpdateQueue_for_MintDistributionV1" - }, - "poolParameters": { - "$ref": "#/definitions/UpdateQueue_for_PoolParameters" - }, - "protocol": { - "$ref": "#/definitions/UpdateQueue_for_ProtocolUpdate" - }, - "rootKeys": { - "$ref": "#/definitions/UpdateQueue_for_HigherLevelAccessStructure_for_RootKeysKind" - }, - "timeParameters": { - "$ref": "#/definitions/UpdateQueue_for_TimeParameters" - }, - "transactionFeeDistribution": { - "$ref": "#/definitions/UpdateQueue_for_TransactionFeeDistribution" - } - } - }, - "PoolParameters": { - "description": "Parameters related to staking pools.", - "type": "object", - "required": [ - "bakingCommissionRange", - "capitalBound", - "finalizationCommissionRange", - "leverageBound", - "minimumEquityCapital", - "passiveBakingCommission", - "passiveFinalizationCommission", - "passiveTransactionCommission", - "transactionCommissionRange" - ], - "properties": { - "bakingCommissionRange": { - "description": "The range of allowed baker commissions.", - "allOf": [ - { - "$ref": "#/definitions/InclusiveRange_for_Number" - } - ] - }, - "capitalBound": { - "description": "Maximum fraction of the total staked capital of that a new baker can have.", - "type": "number" - }, - "finalizationCommissionRange": { - "description": "The range of allowed finalization commissions.", - "allOf": [ - { - "$ref": "#/definitions/InclusiveRange_for_Number" - } - ] - }, - "leverageBound": { - "description": "The maximum leverage that a baker can have as a ratio of total stake to equity capital.", - "allOf": [ - { - "$ref": "#/definitions/LeverageFactor" - } - ] - }, - "minimumEquityCapital": { - "description": "Minimum equity capital required for a new baker.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "passiveBakingCommission": { - "description": "Fraction of baking rewards charged by the passive delegation.", - "type": "number" - }, - "passiveFinalizationCommission": { - "description": "Fraction of finalization rewards charged by the passive delegation.", - "type": "number" - }, - "passiveTransactionCommission": { - "description": "Fraction of transaction rewards charged by the L-pool.", - "type": "number" - }, - "transactionCommissionRange": { - "description": "The range of allowed transaction commissions.", - "allOf": [ - { - "$ref": "#/definitions/InclusiveRange_for_Number" - } - ] - } - } - }, - "ProtocolUpdate": { - "description": "A generic protocol update. This is essentially an announcement of the update. The details of the update will be communicated in some off-chain way, and bakers will need to update their node software to support the update.", - "type": "object", - "required": [ - "message", - "specificationAuxiliaryData", - "specificationHash", - "specificationURL" - ], - "properties": { - "message": { - "type": "string" - }, - "specificationAuxiliaryData": { - "$ref": "#/definitions/HexString" - }, - "specificationHash": { - "$ref": "#/definitions/SHA256Hash" - }, - "specificationURL": { - "type": "string" - } - } - }, - "ProtocolVersion": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "PublicKey": { - "type": "string", - "minLength": 64, - "pattern": "^([0-9]?[a-f]?)*$" - }, - "RegisteredData": { - "type": "string", - "maxLength": 512, - "minLength": 0, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "RejectReason": { - "description": "A reason for why a transaction was rejected. Rejected means included in a block, but the desired action was not achieved. The only effect of a rejected transaction is payment.\n\nNOTE: Some of the variant definitions can look peculiar, but they are made to be compatible with the serialization of the Haskell datatype.", - "oneOf": [ - { - "description": "Error raised when validating the Wasm module.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "ModuleNotWF" - ] - } - } - }, - { - "description": "As the name says.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/SHA256Hash" - }, - "tag": { - "type": "string", - "enum": [ - "ModuleHashAlreadyExists" - ] - } - } - }, - { - "description": "Account does not exist.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/AccountAddress" - }, - "tag": { - "type": "string", - "enum": [ - "InvalidAccountReference" - ] - } - } - }, - { - "description": "Reference to a non-existing contract init method.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "type": "array", - "items": [ - { - "$ref": "#/definitions/SHA256Hash" - }, - { - "type": "string" - } - ], - "maxItems": 2, - "minItems": 2 - }, - "tag": { - "type": "string", - "enum": [ - "InvalidInitMethod" - ] - } - } - }, - { - "description": "Reference to a non-existing contract receive method.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "type": "array", - "items": [ - { - "$ref": "#/definitions/SHA256Hash" - }, - { - "type": "string" - } - ], - "maxItems": 2, - "minItems": 2 - }, - "tag": { - "type": "string", - "enum": [ - "InvalidReceiveMethod" - ] - } - } - }, - { - "description": "Reference to a non-existing module.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/SHA256Hash" - }, - "tag": { - "type": "string", - "enum": [ - "InvalidModuleReference" - ] - } - } - }, - { - "description": "Contract instance does not exist.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/ContractAddress" - }, - "tag": { - "type": "string", - "enum": [ - "InvalidContractAddress" - ] - } - } - }, - { - "description": "Runtime exception occurred when running either the init or receive method.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "RuntimeFailure" - ] - } - } - }, - { - "description": "When one wishes to transfer an amount from A to B but there are not enough funds on account/contract A to make this possible. The data are the from address and the amount to transfer.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "type": "array", - "items": [ - { - "$ref": "#/definitions/Address" - }, - { - "$ref": "#/definitions/CCDAmount" - } - ], - "maxItems": 2, - "minItems": 2 - }, - "tag": { - "type": "string", - "enum": [ - "AmountTooLarge" - ] - } - } - }, - { - "description": "Serialization of the body failed.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "SerializationFailure" - ] - } - } - }, - { - "description": "We ran of out energy to process this transaction.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "OutOfEnergy" - ] - } - } - }, - { - "description": "Rejected due to contract logic in init function of a contract.", - "type": "object", - "required": [ - "rejectReason", - "tag" - ], - "properties": { - "rejectReason": { - "type": "integer", - "format": "int32" - }, - "tag": { - "type": "string", - "enum": [ - "RejectedInit" - ] - } - } - }, - { - "type": "object", - "required": [ - "contractAddress", - "parameter", - "receiveName", - "rejectReason", - "tag" - ], - "properties": { - "contractAddress": { - "$ref": "#/definitions/ContractAddress" - }, - "parameter": { - "$ref": "#/definitions/Parameter" - }, - "receiveName": { - "type": "string" - }, - "rejectReason": { - "type": "integer", - "format": "int32" - }, - "tag": { - "type": "string", - "enum": [ - "RejectedReceive" - ] - } - } - }, - { - "description": "Reward account desired by the baker does not exist.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/AccountAddress" - }, - "tag": { - "type": "string", - "enum": [ - "NonExistentRewardAccount" - ] - } - } - }, - { - "description": "Proof that the baker owns relevant private keys is not valid.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InvalidProof" - ] - } - } - }, - { - "description": "Tried to add baker for an account that already has a baker", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "tag": { - "type": "string", - "enum": [ - "AlreadyABaker" - ] - } - } - }, - { - "description": "Tried to remove a baker for an account that has no baker", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/AccountAddress" - }, - "tag": { - "type": "string", - "enum": [ - "NotABaker" - ] - } - } - }, - { - "description": "The amount on the account was insufficient to cover the proposed stake", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InsufficientBalanceForBakerStake" - ] - } - } - }, - { - "description": "The amount provided is under the threshold required for becoming a baker", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "StakeUnderMinimumThresholdForBaking" - ] - } - } - }, - { - "description": "The change could not be made because the baker is in cooldown for another change", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "BakerInCooldown" - ] - } - } - }, - { - "description": "A baker with the given aggregation key already exists", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/BakerAggregationVerifyKey" - }, - "tag": { - "type": "string", - "enum": [ - "DuplicateAggregationKey" - ] - } - } - }, - { - "description": "Encountered credential ID that does not exist", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "NonExistentCredentialID" - ] - } - } - }, - { - "description": "Attempted to add an account key to a key index already in use", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "KeyIndexAlreadyInUse" - ] - } - } - }, - { - "description": "When the account threshold is updated, it must not exceed the amount of existing keys", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InvalidAccountThreshold" - ] - } - } - }, - { - "description": "When the credential key threshold is updated, it must not exceed the amount of existing keys", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InvalidCredentialKeySignThreshold" - ] - } - } - }, - { - "description": "Proof for an encrypted amount transfer did not validate.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InvalidEncryptedAmountTransferProof" - ] - } - } - }, - { - "description": "Proof for a secret to public transfer did not validate.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InvalidTransferToPublicProof" - ] - } - } - }, - { - "description": "Account tried to transfer an encrypted amount to itself, that's not allowed.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/AccountAddress" - }, - "tag": { - "type": "string", - "enum": [ - "EncryptedAmountSelfTransfer" - ] - } - } - }, - { - "description": "The provided index is below the start index or above `startIndex + length incomingAmounts`", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InvalidIndexOnEncryptedTransfer" - ] - } - } - }, - { - "description": "The transfer with schedule is going to send 0 tokens", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "ZeroScheduledAmount" - ] - } - } - }, - { - "description": "The transfer with schedule has a non strictly increasing schedule", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "NonIncreasingSchedule" - ] - } - } - }, - { - "description": "The first scheduled release in a transfer with schedule has already expired", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "FirstScheduledReleaseExpired" - ] - } - } - }, - { - "description": "Account tried to transfer with schedule to itself, that's not allowed.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/AccountAddress" - }, - "tag": { - "type": "string", - "enum": [ - "ScheduledSelfTransfer" - ] - } - } - }, - { - "description": "At least one of the credentials was either malformed or its proof was incorrect.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InvalidCredentials" - ] - } - } - }, - { - "description": "Some of the credential IDs already exist or are duplicated in the transaction.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "type": "array", - "items": { - "$ref": "#/definitions/CredentialRegistrationID" - } - }, - "tag": { - "type": "string", - "enum": [ - "DuplicateCredIDs" - ] - } - } - }, - { - "description": "A credential id that was to be removed is not part of the account.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "type": "array", - "items": { - "$ref": "#/definitions/CredentialRegistrationID" - } - }, - "tag": { - "type": "string", - "enum": [ - "NonExistentCredIDs" - ] - } - } - }, - { - "description": "Attemp to remove the first credential", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "RemoveFirstCredential" - ] - } - } - }, - { - "description": "The credential holder of the keys to be updated did not sign the transaction", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "CredentialHolderDidNotSign" - ] - } - } - }, - { - "description": "Account is not allowed to have multiple credentials because it contains a non-zero encrypted transfer.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "NotAllowedMultipleCredentials" - ] - } - } - }, - { - "description": "The account is not allowed to receive encrypted transfers because it has multiple credentials.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "NotAllowedToReceiveEncrypted" - ] - } - } - }, - { - "description": "The account is not allowed to send encrypted transfers (or transfer from/to public to/from encrypted)", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "NotAllowedToHandleEncrypted" - ] - } - } - }, - { - "description": "A configure baker transaction is missing one or more arguments in order to add a baker.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "MissingBakerAddParameters" - ] - } - } - }, - { - "description": "Finalization reward commission is not in the valid range for a baker", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "FinalizationRewardCommissionNotInRange" - ] - } - } - }, - { - "description": "Baking reward commission is not in the valid range for a baker", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "BakingRewardCommissionNotInRange" - ] - } - } - }, - { - "description": "Transaction fee commission is not in the valid range for a baker", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "TransactionFeeCommissionNotInRange" - ] - } - } - }, - { - "description": "Tried to add baker for an account that already has a delegator.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "AlreadyADelegator" - ] - } - } - }, - { - "description": "The amount on the account was insufficient to cover the proposed stake.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InsufficientBalanceForDelegationStake" - ] - } - } - }, - { - "description": "A configure delegation transaction is missing one or more arguments in order to add a delegator.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "MissingDelegationAddParameters" - ] - } - } - }, - { - "description": "Delegation stake when adding a delegator was 0.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InsufficientDelegationStake" - ] - } - } - }, - { - "description": "Account is not a delegation account.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "DelegatorInCooldown" - ] - } - } - }, - { - "description": "Account is not a delegation account.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/AccountAddress" - }, - "tag": { - "type": "string", - "enum": [ - "NotADelegator" - ] - } - } - }, - { - "description": "Delegation target is not a baker", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "tag": { - "type": "string", - "enum": [ - "DelegationTargetNotABaker" - ] - } - } - }, - { - "description": "The amount would result in pool capital higher than the maximum threshold.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "StakeOverMaximumThresholdForPool" - ] - } - } - }, - { - "description": "The amount would result in pool with a too high fraction of delegated capital.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "PoolWouldBecomeOverDelegated" - ] - } - } - }, - { - "description": "The pool is not open to delegators.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "PoolClosed" - ] - } - } - } - ] - }, - "RewardParametersSkeleton_for_MintDistributionV0": { - "description": "Values of reward parameters.", - "type": "object", - "required": [ - "gASRewards", - "mintDistribution", - "transactionFeeDistribution" - ], - "properties": { - "gASRewards": { - "$ref": "#/definitions/GASRewards" - }, - "mintDistribution": { - "$ref": "#/definitions/MintDistributionV0" - }, - "transactionFeeDistribution": { - "$ref": "#/definitions/TransactionFeeDistribution" - } - } - }, - "RewardParametersSkeleton_for_MintDistributionV1": { - "description": "Values of reward parameters.", - "type": "object", - "required": [ - "gASRewards", - "mintDistribution", - "transactionFeeDistribution" - ], - "properties": { - "gASRewards": { - "$ref": "#/definitions/GASRewards" - }, - "mintDistribution": { - "$ref": "#/definitions/MintDistributionV1" - }, - "transactionFeeDistribution": { - "$ref": "#/definitions/TransactionFeeDistribution" - } - } - }, - "RootUpdate": { - "description": "An update with root keys of some other set of governance keys, or the root keys themselves. Each update is a separate transaction.", - "oneOf": [ - { - "type": "object", - "required": [ - "typeOfUpdate", - "updatePayload" - ], - "properties": { - "typeOfUpdate": { - "type": "string", - "enum": [ - "rootKeysUpdate" - ] - }, - "updatePayload": { - "$ref": "#/definitions/HigherLevelAccessStructure_for_RootKeysKind" - } - } - }, - { - "type": "object", - "required": [ - "typeOfUpdate", - "updatePayload" - ], - "properties": { - "typeOfUpdate": { - "type": "string", - "enum": [ - "level1KeysUpdate" - ] - }, - "updatePayload": { - "$ref": "#/definitions/HigherLevelAccessStructure_for_Level1KeysKind" - } - } - }, - { - "type": "object", - "required": [ - "typeOfUpdate", - "updatePayload" - ], - "properties": { - "typeOfUpdate": { - "type": "string", - "enum": [ - "level2KeysUpdate" - ] - }, - "updatePayload": { - "$ref": "#/definitions/AuthorizationsV0" - } - } - }, - { - "type": "object", - "required": [ - "typeOfUpdate", - "updatePayload" - ], - "properties": { - "typeOfUpdate": { - "type": "string", - "enum": [ - "level2KeysUpdateV1" - ] - }, - "updatePayload": { - "$ref": "#/definitions/AuthorizationsV1" - } - } - } - ] - }, - "SHA256Hash": { - "type": "string", - "maxLength": 64, - "minLength": 64, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "ScheduledUpdate_for_ArInfo_for_HexString": { - "description": "A scheduled update of a given type.", - "type": "object", - "required": [ - "effectiveTime", - "update" - ], - "properties": { - "effectiveTime": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "update": { - "$ref": "#/definitions/ArInfo_for_HexString" - } - } - }, - "ScheduledUpdate_for_AuthorizationsV0": { - "description": "A scheduled update of a given type.", - "type": "object", - "required": [ - "effectiveTime", - "update" - ], - "properties": { - "effectiveTime": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "update": { - "$ref": "#/definitions/AuthorizationsV0" - } - } - }, - "ScheduledUpdate_for_AuthorizationsV1": { - "description": "A scheduled update of a given type.", - "type": "object", - "required": [ - "effectiveTime", - "update" - ], - "properties": { - "effectiveTime": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "update": { - "$ref": "#/definitions/AuthorizationsV1" - } - } - }, - "ScheduledUpdate_for_BakerParameters": { - "description": "A scheduled update of a given type.", - "type": "object", - "required": [ - "effectiveTime", - "update" - ], - "properties": { - "effectiveTime": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "update": { - "$ref": "#/definitions/BakerParameters" - } - } - }, - "ScheduledUpdate_for_CooldownParameters": { - "description": "A scheduled update of a given type.", - "type": "object", - "required": [ - "effectiveTime", - "update" - ], - "properties": { - "effectiveTime": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "update": { - "$ref": "#/definitions/CooldownParameters" - } - } - }, - "ScheduledUpdate_for_ExchangeRate": { - "description": "A scheduled update of a given type.", - "type": "object", - "required": [ - "effectiveTime", - "update" - ], - "properties": { - "effectiveTime": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "update": { - "$ref": "#/definitions/ExchangeRate" - } - } - }, - "ScheduledUpdate_for_GASRewards": { - "description": "A scheduled update of a given type.", - "type": "object", - "required": [ - "effectiveTime", - "update" - ], - "properties": { - "effectiveTime": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "update": { - "$ref": "#/definitions/GASRewards" - } - } - }, - "ScheduledUpdate_for_HigherLevelAccessStructure_for_Level1KeysKind": { - "description": "A scheduled update of a given type.", - "type": "object", - "required": [ - "effectiveTime", - "update" - ], - "properties": { - "effectiveTime": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "update": { - "$ref": "#/definitions/HigherLevelAccessStructure_for_Level1KeysKind" - } - } - }, - "ScheduledUpdate_for_HigherLevelAccessStructure_for_RootKeysKind": { - "description": "A scheduled update of a given type.", - "type": "object", - "required": [ - "effectiveTime", - "update" - ], - "properties": { - "effectiveTime": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "update": { - "$ref": "#/definitions/HigherLevelAccessStructure_for_RootKeysKind" - } - } - }, - "ScheduledUpdate_for_IpInfo_for_HexString": { - "description": "A scheduled update of a given type.", - "type": "object", - "required": [ - "effectiveTime", - "update" - ], - "properties": { - "effectiveTime": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "update": { - "$ref": "#/definitions/IpInfo_for_HexString" - } - } - }, - "ScheduledUpdate_for_MintDistributionV0": { - "description": "A scheduled update of a given type.", - "type": "object", - "required": [ - "effectiveTime", - "update" - ], - "properties": { - "effectiveTime": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "update": { - "$ref": "#/definitions/MintDistributionV0" - } - } - }, - "ScheduledUpdate_for_MintDistributionV1": { - "description": "A scheduled update of a given type.", - "type": "object", - "required": [ - "effectiveTime", - "update" - ], - "properties": { - "effectiveTime": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "update": { - "$ref": "#/definitions/MintDistributionV1" - } - } - }, - "ScheduledUpdate_for_Number": { - "description": "A scheduled update of a given type.", - "type": "object", - "required": [ - "effectiveTime", - "update" - ], - "properties": { - "effectiveTime": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "update": { - "type": "number" - } - } - }, - "ScheduledUpdate_for_PoolParameters": { - "description": "A scheduled update of a given type.", - "type": "object", - "required": [ - "effectiveTime", - "update" - ], - "properties": { - "effectiveTime": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "update": { - "$ref": "#/definitions/PoolParameters" - } - } - }, - "ScheduledUpdate_for_ProtocolUpdate": { - "description": "A scheduled update of a given type.", - "type": "object", - "required": [ - "effectiveTime", - "update" - ], - "properties": { - "effectiveTime": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "update": { - "$ref": "#/definitions/ProtocolUpdate" - } - } - }, - "ScheduledUpdate_for_TimeParameters": { - "description": "A scheduled update of a given type.", - "type": "object", - "required": [ - "effectiveTime", - "update" - ], - "properties": { - "effectiveTime": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "update": { - "$ref": "#/definitions/TimeParameters" - } - } - }, - "ScheduledUpdate_for_TransactionFeeDistribution": { - "description": "A scheduled update of a given type.", - "type": "object", - "required": [ - "effectiveTime", - "update" - ], - "properties": { - "effectiveTime": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "update": { - "$ref": "#/definitions/TransactionFeeDistribution" - } - } - }, - "ScheduledUpdate_for_uint64": { - "description": "A scheduled update of a given type.", - "type": "object", - "required": [ - "effectiveTime", - "update" - ], - "properties": { - "effectiveTime": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "update": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - } - }, - "SpecialTransactionOutcome": { - "description": "In addition to the user initiated transactions the protocol generates some events which are deemed \"Special outcomes\". These are rewards for running the consensus and finalization protocols.", - "oneOf": [ - { - "description": "Reward issued to all the bakers at the end of an epoch for baking blocks in the epoch.", - "type": "object", - "required": [ - "bakerRewards", - "remainder", - "tag" - ], - "properties": { - "bakerRewards": { - "type": "array", - "items": { - "$ref": "#/definitions/AccountAmount" - } - }, - "remainder": { - "description": "Remaining balance of the baking account. This will be transfered to the next epoch's reward account. It exists since it is not possible to perfectly distribute the accumulated rewards. The reason this is not possible is that amounts are integers.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "BakingRewards" - ] - } - } - }, - { - "description": "Distribution of newly minted CCD.", - "type": "object", - "required": [ - "foundationAccount", - "mintBakingReward", - "mintFinalizationReward", - "mintPlatformDevelopmentCharge", - "tag" - ], - "properties": { - "foundationAccount": { - "description": "The address of the foundation account that the newly minted CCD goes to.", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "mintBakingReward": { - "description": "The portion of the newly minted CCD that goes to the baking reward account.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "mintFinalizationReward": { - "description": "The portion that goes to the finalization reward account.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "mintPlatformDevelopmentCharge": { - "description": "The portion that goes to the foundation, as foundation tax.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "Mint" - ] - } - } - }, - { - "description": "Distribution of finalization rewards.", - "type": "object", - "required": [ - "finalizationRewards", - "remainder", - "tag" - ], - "properties": { - "finalizationRewards": { - "type": "array", - "items": { - "$ref": "#/definitions/AccountAmount" - } - }, - "remainder": { - "description": "Remaining balance of the finalization reward account. It exists since it is not possible to perfectly distribute the accumulated rewards. The reason this is not possible is that amounts are integers.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "FinalizationRewards" - ] - } - } - }, - { - "description": "Reward for including transactions in a block.", - "type": "object", - "required": [ - "baker", - "bakerReward", - "foundationAccount", - "foundationCharge", - "newGASAccount", - "oldGASAccount", - "tag", - "transactionFees" - ], - "properties": { - "baker": { - "description": "The account address where the baker receives the reward.", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "bakerReward": { - "description": "The amount of CCD that goes to the baker.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "foundationAccount": { - "description": "The account address where the foundation receives the tax.", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "foundationCharge": { - "description": "The amount of CCD that goes to the foundation.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "newGASAccount": { - "description": "New balance of the GAS account.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "oldGASAccount": { - "description": "Previous balance of the GAS account.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "BlockReward" - ] - }, - "transactionFees": { - "description": "Total amount of transaction fees in the block.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - } - } - }, - { - "description": "Payment for the foundation.", - "type": "object", - "required": [ - "developmentCharge", - "foundationAccount", - "tag" - ], - "properties": { - "developmentCharge": { - "description": "Amount rewarded.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "foundationAccount": { - "description": "Address of the foundation account.", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "PaydayFoundationReward" - ] - } - } - }, - { - "description": "Payment for a particular account. When listed in a block summary, the delegated pool of the account is given by the last PaydayPoolReward outcome included before this outcome.", - "type": "object", - "required": [ - "account", - "bakerReward", - "finalizationReward", - "tag", - "transactionFees" - ], - "properties": { - "account": { - "description": "The account that got rewarded.", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "bakerReward": { - "description": "The baking reward at payday to the account.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "finalizationReward": { - "description": "The finalization reward at payday to the account.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "PaydayAccountReward" - ] - }, - "transactionFees": { - "description": "The transaction fee reward at payday to the account.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - } - } - }, - { - "description": "Amounts accrued to accounts for each baked block.", - "type": "object", - "required": [ - "bakerId", - "bakerReward", - "foundationCharge", - "newGASAccount", - "oldGASAccount", - "passiveReward", - "tag", - "transactionFees" - ], - "properties": { - "bakerId": { - "description": "The baker of the block, who will receive the award.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "bakerReward": { - "description": "The amount awarded to the baker.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "foundationCharge": { - "description": "The amount awarded to the foundation.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "newGASAccount": { - "description": "The new balance of the GAS account.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "oldGASAccount": { - "description": "The old balance of the GAS account.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "passiveReward": { - "description": "The amount awarded to the passive delegators.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "BlockAccrueReward" - ] - }, - "transactionFees": { - "description": "The total fees paid for transactions in the block.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - } - } - }, - { - "description": "Payment distributed to a pool or passive delegators.", - "type": "object", - "required": [ - "bakerReward", - "finalizationReward", - "tag", - "transactionFees" - ], - "properties": { - "bakerReward": { - "description": "Accrued baking rewards for pool.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "finalizationReward": { - "description": "Accrued finalization rewards for pool.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "poolOwner": { - "description": "The pool owner (passive delegators when 'None').", - "type": [ - "integer", - "null" - ], - "format": "uint64", - "minimum": 0.0 - }, - "tag": { - "type": "string", - "enum": [ - "PaydayPoolReward" - ] - }, - "transactionFees": { - "description": "Accrued transaction fees for pool.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - } - } - } - ] - }, - "TimeParameters": { - "description": "The time parameters are introduced as of protocol version 4, and consist of the reward period length and the mint rate per payday. These are coupled as a change to either affects the overall rate of minting.", - "type": "object", - "required": [ - "mintPerPayday", - "rewardPeriodLength" - ], - "properties": { - "mintPerPayday": { - "$ref": "#/definitions/MintRate" - }, - "rewardPeriodLength": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - } - }, - "TransactionFeeDistribution": { - "description": "Update the transaction fee distribution to the specified value.", - "type": "object", - "required": [ - "baker", - "gasAccount" - ], - "properties": { - "baker": { - "description": "The fraction that goes to the baker of the block.", - "type": "number" - }, - "gasAccount": { - "description": "The fraction that goes to the gas account. The remaining fraction will go to the foundation.", - "type": "number" - } - } - }, - "TransactionType": { - "description": "Types of account transactions.", - "type": "string", - "enum": [ - "deployModule", - "initContract", - "update", - "transfer", - "addBaker", - "removeBaker", - "updateBakerStake", - "updateBakerRestakeEarnings", - "updateBakerKeys", - "updateCredentialKeys", - "encryptedAmountTransfer", - "transferToEncrypted", - "transferToPublic", - "transferWithSchedule", - "updateCredentials", - "registerData", - "transferWithMemo", - "encryptedAmountTransferWithMemo", - "transferWithScheduleAndMemo", - "configureBaker", - "configureDelegation" - ] - }, - "UpdateKeysCollectionSkeleton_for_AuthorizationsV0": { - "description": "The current collection of keys allowed to do updates. Parametrized by the chain parameter version.", - "type": "object", - "required": [ - "level1Keys", - "level2Keys", - "rootKeys" - ], - "properties": { - "level1Keys": { - "$ref": "#/definitions/HigherLevelAccessStructure_for_Level1KeysKind" - }, - "level2Keys": { - "$ref": "#/definitions/AuthorizationsV0" - }, - "rootKeys": { - "$ref": "#/definitions/HigherLevelAccessStructure_for_RootKeysKind" - } - } - }, - "UpdateKeysCollectionSkeleton_for_AuthorizationsV1": { - "description": "The current collection of keys allowed to do updates. Parametrized by the chain parameter version.", - "type": "object", - "required": [ - "level1Keys", - "level2Keys", - "rootKeys" - ], - "properties": { - "level1Keys": { - "$ref": "#/definitions/HigherLevelAccessStructure_for_Level1KeysKind" - }, - "level2Keys": { - "$ref": "#/definitions/AuthorizationsV1" - }, - "rootKeys": { - "$ref": "#/definitions/HigherLevelAccessStructure_for_RootKeysKind" - } - } - }, - "UpdatePayload": { - "description": "The type of an update payload.", - "oneOf": [ - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/ProtocolUpdate" - }, - "updateType": { - "type": "string", - "enum": [ - "protocol" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "type": "number" - }, - "updateType": { - "type": "string", - "enum": [ - "electionDifficulty" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/ExchangeRate" - }, - "updateType": { - "type": "string", - "enum": [ - "euroPerEnergy" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/ExchangeRate" - }, - "updateType": { - "type": "string", - "enum": [ - "microGTUPerEuro" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/AccountAddress" - }, - "updateType": { - "type": "string", - "enum": [ - "foundationAccount" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/MintDistributionV0" - }, - "updateType": { - "type": "string", - "enum": [ - "mintDistribution" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/TransactionFeeDistribution" - }, - "updateType": { - "type": "string", - "enum": [ - "transactionFeeDistribution" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/GASRewards" - }, - "updateType": { - "type": "string", - "enum": [ - "gASRewards" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/BakerParameters" - }, - "updateType": { - "type": "string", - "enum": [ - "bakerStakeThreshold" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/RootUpdate" - }, - "updateType": { - "type": "string", - "enum": [ - "root" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/Level1Update" - }, - "updateType": { - "type": "string", - "enum": [ - "level1" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/ArInfo_for_HexString" - }, - "updateType": { - "type": "string", - "enum": [ - "addAnonymityRevoker" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/IpInfo_for_HexString" - }, - "updateType": { - "type": "string", - "enum": [ - "addIdentityProvider" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/CooldownParameters" - }, - "updateType": { - "type": "string", - "enum": [ - "cooldownParametersCPV1" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/PoolParameters" - }, - "updateType": { - "type": "string", - "enum": [ - "poolParametersCPV1" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/TimeParameters" - }, - "updateType": { - "type": "string", - "enum": [ - "timeParametersCPV1" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/MintDistributionV1" - }, - "updateType": { - "type": "string", - "enum": [ - "mintDistributionCPV1" - ] - } - } - } - ] - }, - "UpdateQueue_for_ArInfo_for_HexString": { - "description": "A queue of updates of a given type.", - "type": "object", - "required": [ - "nextSequenceNumber", - "queue" - ], - "properties": { - "nextSequenceNumber": { - "description": "Next available sequence number for the update type.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "queue": { - "description": "Queue of updates, ordered by effective time.", - "type": "array", - "items": { - "$ref": "#/definitions/ScheduledUpdate_for_ArInfo_for_HexString" - } - } - } - }, - "UpdateQueue_for_AuthorizationsV0": { - "description": "A queue of updates of a given type.", - "type": "object", - "required": [ - "nextSequenceNumber", - "queue" - ], - "properties": { - "nextSequenceNumber": { - "description": "Next available sequence number for the update type.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "queue": { - "description": "Queue of updates, ordered by effective time.", - "type": "array", - "items": { - "$ref": "#/definitions/ScheduledUpdate_for_AuthorizationsV0" - } - } - } - }, - "UpdateQueue_for_AuthorizationsV1": { - "description": "A queue of updates of a given type.", - "type": "object", - "required": [ - "nextSequenceNumber", - "queue" - ], - "properties": { - "nextSequenceNumber": { - "description": "Next available sequence number for the update type.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "queue": { - "description": "Queue of updates, ordered by effective time.", - "type": "array", - "items": { - "$ref": "#/definitions/ScheduledUpdate_for_AuthorizationsV1" - } - } - } - }, - "UpdateQueue_for_BakerParameters": { - "description": "A queue of updates of a given type.", - "type": "object", - "required": [ - "nextSequenceNumber", - "queue" - ], - "properties": { - "nextSequenceNumber": { - "description": "Next available sequence number for the update type.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "queue": { - "description": "Queue of updates, ordered by effective time.", - "type": "array", - "items": { - "$ref": "#/definitions/ScheduledUpdate_for_BakerParameters" - } - } - } - }, - "UpdateQueue_for_CooldownParameters": { - "description": "A queue of updates of a given type.", - "type": "object", - "required": [ - "nextSequenceNumber", - "queue" - ], - "properties": { - "nextSequenceNumber": { - "description": "Next available sequence number for the update type.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "queue": { - "description": "Queue of updates, ordered by effective time.", - "type": "array", - "items": { - "$ref": "#/definitions/ScheduledUpdate_for_CooldownParameters" - } - } - } - }, - "UpdateQueue_for_ExchangeRate": { - "description": "A queue of updates of a given type.", - "type": "object", - "required": [ - "nextSequenceNumber", - "queue" - ], - "properties": { - "nextSequenceNumber": { - "description": "Next available sequence number for the update type.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "queue": { - "description": "Queue of updates, ordered by effective time.", - "type": "array", - "items": { - "$ref": "#/definitions/ScheduledUpdate_for_ExchangeRate" - } - } - } - }, - "UpdateQueue_for_GASRewards": { - "description": "A queue of updates of a given type.", - "type": "object", - "required": [ - "nextSequenceNumber", - "queue" - ], - "properties": { - "nextSequenceNumber": { - "description": "Next available sequence number for the update type.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "queue": { - "description": "Queue of updates, ordered by effective time.", - "type": "array", - "items": { - "$ref": "#/definitions/ScheduledUpdate_for_GASRewards" - } - } - } - }, - "UpdateQueue_for_HigherLevelAccessStructure_for_Level1KeysKind": { - "description": "A queue of updates of a given type.", - "type": "object", - "required": [ - "nextSequenceNumber", - "queue" - ], - "properties": { - "nextSequenceNumber": { - "description": "Next available sequence number for the update type.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "queue": { - "description": "Queue of updates, ordered by effective time.", - "type": "array", - "items": { - "$ref": "#/definitions/ScheduledUpdate_for_HigherLevelAccessStructure_for_Level1KeysKind" - } - } - } - }, - "UpdateQueue_for_HigherLevelAccessStructure_for_RootKeysKind": { - "description": "A queue of updates of a given type.", - "type": "object", - "required": [ - "nextSequenceNumber", - "queue" - ], - "properties": { - "nextSequenceNumber": { - "description": "Next available sequence number for the update type.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "queue": { - "description": "Queue of updates, ordered by effective time.", - "type": "array", - "items": { - "$ref": "#/definitions/ScheduledUpdate_for_HigherLevelAccessStructure_for_RootKeysKind" - } - } - } - }, - "UpdateQueue_for_IpInfo_for_HexString": { - "description": "A queue of updates of a given type.", - "type": "object", - "required": [ - "nextSequenceNumber", - "queue" - ], - "properties": { - "nextSequenceNumber": { - "description": "Next available sequence number for the update type.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "queue": { - "description": "Queue of updates, ordered by effective time.", - "type": "array", - "items": { - "$ref": "#/definitions/ScheduledUpdate_for_IpInfo_for_HexString" - } - } - } - }, - "UpdateQueue_for_MintDistributionV0": { - "description": "A queue of updates of a given type.", - "type": "object", - "required": [ - "nextSequenceNumber", - "queue" - ], - "properties": { - "nextSequenceNumber": { - "description": "Next available sequence number for the update type.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "queue": { - "description": "Queue of updates, ordered by effective time.", - "type": "array", - "items": { - "$ref": "#/definitions/ScheduledUpdate_for_MintDistributionV0" - } - } - } - }, - "UpdateQueue_for_MintDistributionV1": { - "description": "A queue of updates of a given type.", - "type": "object", - "required": [ - "nextSequenceNumber", - "queue" - ], - "properties": { - "nextSequenceNumber": { - "description": "Next available sequence number for the update type.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "queue": { - "description": "Queue of updates, ordered by effective time.", - "type": "array", - "items": { - "$ref": "#/definitions/ScheduledUpdate_for_MintDistributionV1" - } - } - } - }, - "UpdateQueue_for_Number": { - "description": "A queue of updates of a given type.", - "type": "object", - "required": [ - "nextSequenceNumber", - "queue" - ], - "properties": { - "nextSequenceNumber": { - "description": "Next available sequence number for the update type.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "queue": { - "description": "Queue of updates, ordered by effective time.", - "type": "array", - "items": { - "$ref": "#/definitions/ScheduledUpdate_for_Number" - } - } - } - }, - "UpdateQueue_for_PoolParameters": { - "description": "A queue of updates of a given type.", - "type": "object", - "required": [ - "nextSequenceNumber", - "queue" - ], - "properties": { - "nextSequenceNumber": { - "description": "Next available sequence number for the update type.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "queue": { - "description": "Queue of updates, ordered by effective time.", - "type": "array", - "items": { - "$ref": "#/definitions/ScheduledUpdate_for_PoolParameters" - } - } - } - }, - "UpdateQueue_for_ProtocolUpdate": { - "description": "A queue of updates of a given type.", - "type": "object", - "required": [ - "nextSequenceNumber", - "queue" - ], - "properties": { - "nextSequenceNumber": { - "description": "Next available sequence number for the update type.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "queue": { - "description": "Queue of updates, ordered by effective time.", - "type": "array", - "items": { - "$ref": "#/definitions/ScheduledUpdate_for_ProtocolUpdate" - } - } - } - }, - "UpdateQueue_for_TimeParameters": { - "description": "A queue of updates of a given type.", - "type": "object", - "required": [ - "nextSequenceNumber", - "queue" - ], - "properties": { - "nextSequenceNumber": { - "description": "Next available sequence number for the update type.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "queue": { - "description": "Queue of updates, ordered by effective time.", - "type": "array", - "items": { - "$ref": "#/definitions/ScheduledUpdate_for_TimeParameters" - } - } - } - }, - "UpdateQueue_for_TransactionFeeDistribution": { - "description": "A queue of updates of a given type.", - "type": "object", - "required": [ - "nextSequenceNumber", - "queue" - ], - "properties": { - "nextSequenceNumber": { - "description": "Next available sequence number for the update type.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "queue": { - "description": "Queue of updates, ordered by effective time.", - "type": "array", - "items": { - "$ref": "#/definitions/ScheduledUpdate_for_TransactionFeeDistribution" - } - } - } - }, - "UpdateQueue_for_uint64": { - "description": "A queue of updates of a given type.", - "type": "object", - "required": [ - "nextSequenceNumber", - "queue" - ], - "properties": { - "nextSequenceNumber": { - "description": "Next available sequence number for the update type.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "queue": { - "description": "Queue of updates, ordered by effective time.", - "type": "array", - "items": { - "$ref": "#/definitions/ScheduledUpdate_for_uint64" - } - } - } - }, - "UpdateType": { - "description": "Enumeration of the types of updates that are possible.", - "type": "string", - "enum": [ - "updateProtocol", - "updateElectionDifficulty", - "updateEuroPerEnergy", - "updateMicroGTUPerEuro", - "updateFoundationAccount", - "updateMintDistribution", - "updateTransactionFeeDistribution", - "updateGASRewards", - "updateAddAnonymityRevoker", - "updateAddIdentityProvider", - "updateRootKeys", - "updateLevel1Keys", - "updateLevel2Keys", - "updatePoolParameters", - "updateCooldownParameters", - "updateTimeParameters" - ] - }, - "UpdatesSkeleton_for_UpdateKeysCollectionSkeleton_for_AuthorizationsV0_and_ChainParametersV0_and_PendingUpdatesV0": { - "description": "State of updates. This includes current values of parameters as well as any scheduled updates.", - "type": "object", - "required": [ - "chainParameters", - "keys", - "updateQueues" - ], - "properties": { - "chainParameters": { - "description": "Values of chain parameters.", - "allOf": [ - { - "$ref": "#/definitions/ChainParametersV0" - } - ] - }, - "keys": { - "description": "Keys allowed to perform updates.", - "allOf": [ - { - "$ref": "#/definitions/UpdateKeysCollectionSkeleton_for_AuthorizationsV0" - } - ] - }, - "protocolUpdate": { - "description": "Possibly pending protocol update.", - "default": null, - "anyOf": [ - { - "$ref": "#/definitions/ProtocolUpdate" - }, - { - "type": "null" - } - ] - }, - "updateQueues": { - "description": "Any scheduled updates.", - "allOf": [ - { - "$ref": "#/definitions/PendingUpdatesV0" - } - ] - } - } - }, - "UpdatesSkeleton_for_UpdateKeysCollectionSkeleton_for_AuthorizationsV1_and_ChainParametersV1_and_PendingUpdatesV1": { - "description": "State of updates. This includes current values of parameters as well as any scheduled updates.", - "type": "object", - "required": [ - "chainParameters", - "keys", - "updateQueues" - ], - "properties": { - "chainParameters": { - "description": "Values of chain parameters.", - "allOf": [ - { - "$ref": "#/definitions/ChainParametersV1" - } - ] - }, - "keys": { - "description": "Keys allowed to perform updates.", - "allOf": [ - { - "$ref": "#/definitions/UpdateKeysCollectionSkeleton_for_AuthorizationsV1" - } - ] - }, - "protocolUpdate": { - "description": "Possibly pending protocol update.", - "default": null, - "anyOf": [ - { - "$ref": "#/definitions/ProtocolUpdate" - }, - { - "type": "null" - } - ] - }, - "updateQueues": { - "description": "Any scheduled updates.", - "allOf": [ - { - "$ref": "#/definitions/PendingUpdatesV1" - } - ] - } - } - }, - "VerifyKey": { - "type": "object", - "properties": { - "schemeId": { - "type": "string" - }, - "verifyKey": { - "type": "string", - "maxLength": 64, - "minLength": 64, - "pattern": "^(([0-9]?[a-f]?){2})*$" - } - } - }, - "WasmVersion": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 - } - } -} \ No newline at end of file diff --git a/source/mainnet/net/references/grpc-json-schemas/GetBlocksAtHeight.json b/source/mainnet/net/references/grpc-json-schemas/GetBlocksAtHeight.json deleted file mode 100644 index 810c0b3403..0000000000 --- a/source/mainnet/net/references/grpc-json-schemas/GetBlocksAtHeight.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Array_of_SHA256Hash", - "type": "array", - "items": { - "$ref": "#/definitions/SHA256Hash" - }, - "definitions": { - "SHA256Hash": { - "type": "string", - "maxLength": 64, - "minLength": 64, - "pattern": "^(([0-9]?[a-f]?){2})*$" - } - } -} \ No newline at end of file diff --git a/source/mainnet/net/references/grpc-json-schemas/GetBranches.json b/source/mainnet/net/references/grpc-json-schemas/GetBranches.json deleted file mode 100644 index d0cc55ac94..0000000000 --- a/source/mainnet/net/references/grpc-json-schemas/GetBranches.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Branch", - "description": "Branches of the tree. This is the part of the tree above the last finalized block.", - "type": "object", - "required": [ - "blockHash", - "children" - ], - "properties": { - "blockHash": { - "description": "Root of the tree.", - "allOf": [ - { - "$ref": "#/definitions/SHA256Hash" - } - ] - }, - "children": { - "description": "And children.", - "type": "array", - "items": { - "$ref": "#/definitions/Branch" - } - } - }, - "definitions": { - "Branch": { - "description": "Branches of the tree. This is the part of the tree above the last finalized block.", - "type": "object", - "required": [ - "blockHash", - "children" - ], - "properties": { - "blockHash": { - "description": "Root of the tree.", - "allOf": [ - { - "$ref": "#/definitions/SHA256Hash" - } - ] - }, - "children": { - "description": "And children.", - "type": "array", - "items": { - "$ref": "#/definitions/Branch" - } - } - } - }, - "SHA256Hash": { - "type": "string", - "maxLength": 64, - "minLength": 64, - "pattern": "^(([0-9]?[a-f]?){2})*$" - } - } -} \ No newline at end of file diff --git a/source/mainnet/net/references/grpc-json-schemas/GetConsensusInfo.json b/source/mainnet/net/references/grpc-json-schemas/GetConsensusInfo.json deleted file mode 100644 index babc7207c7..0000000000 --- a/source/mainnet/net/references/grpc-json-schemas/GetConsensusInfo.json +++ /dev/null @@ -1,243 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ConsensusInfo", - "description": "Summary of the current state of consensus.", - "type": "object", - "required": [ - "bestBlock", - "bestBlockHeight", - "blockArriveLatencyEMA", - "blockArriveLatencyEMSD", - "blockReceiveLatencyEMA", - "blockReceiveLatencyEMSD", - "blocksReceivedCount", - "blocksVerifiedCount", - "currentEraGenesisBlock", - "currentEraGenesisTime", - "epochDuration", - "finalizationCount", - "genesisBlock", - "genesisIndex", - "genesisTime", - "lastFinalizedBlock", - "lastFinalizedBlockHeight", - "protocolVersion", - "slotDuration", - "transactionsPerBlockEMA", - "transactionsPerBlockEMSD" - ], - "properties": { - "bestBlock": { - "description": "Hash of the current best block. The best block is a protocol defined block that the node must use a parent block to build the chain on. Note that this is subjective, in the sense that it is only the best block among the blocks the node knows about.", - "allOf": [ - { - "$ref": "#/definitions/SHA256Hash" - } - ] - }, - "bestBlockHeight": { - "description": "Height of the best block. See [ConsensusInfo::best_block].", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "blockArriveLatencyEMA": { - "description": "The exponential moving average of the time between a block's nominal slot time, and the time at which it is verified.", - "type": "number", - "format": "double" - }, - "blockArriveLatencyEMSD": { - "description": "The exponential moving average standard deviation of the time between a block's nominal slot time, and the time at which it is verified.", - "type": "number", - "format": "double" - }, - "blockArrivePeriodEMA": { - "description": "Exponential moving average of the time between receiving blocks (in seconds).", - "type": [ - "number", - "null" - ], - "format": "double" - }, - "blockArrivePeriodEMSD": { - "description": "Exponential moving average standard deviation of the time between blocks being verified.", - "type": [ - "number", - "null" - ], - "format": "double" - }, - "blockLastArrivedTime": { - "description": "The time (local time of the node) that a block last arrived, i.e., was verified and added to the node's tree.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "blockLastReceivedTime": { - "description": "The time (local time of the node) that a block was last received.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "blockReceiveLatencyEMA": { - "description": "Exponential moving average of block receive latency (in seconds), i.e. the time between a block's nominal slot time, and the time at which is received.", - "type": "number", - "format": "double" - }, - "blockReceiveLatencyEMSD": { - "description": "Exponential moving average standard deviation of block receive latency (in seconds), i.e. the time between a block's nominal slot time, and the time at which is received.", - "type": "number", - "format": "double" - }, - "blockReceivePeriodEMA": { - "description": "Exponential moving average of the time between receiving blocks (in seconds).", - "type": [ - "number", - "null" - ], - "format": "double" - }, - "blockReceivePeriodEMSD": { - "description": "Exponential moving average standard deviation of the time between receiving blocks (in seconds).", - "type": [ - "number", - "null" - ], - "format": "double" - }, - "blocksReceivedCount": { - "description": "The number of blocks that have been received.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "blocksVerifiedCount": { - "description": "Number of blocks that arrived, i.e., were added to the tree. Note that in some cases this can be more than [ConsensusInfo::blocks_received_count] since blocks that the node itself produces count towards this, but are not received.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "currentEraGenesisBlock": { - "description": "Block hash of the genesis block of current era, i.e., since the last protocol update. Initially this is equal to [`genesis_block`](Self::genesis_block)'.", - "allOf": [ - { - "$ref": "#/definitions/SHA256Hash" - } - ] - }, - "currentEraGenesisTime": { - "description": "Time when the current era started.", - "type": "string", - "format": "date-time" - }, - "epochDuration": { - "description": "Duration of an epoch.", - "type": "integer", - "format": "int64" - }, - "finalizationCount": { - "description": "The number of completed finalizations.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "finalizationPeriodEMA": { - "description": "Exponential moving average of the time between finalizations. Will be `None` if there are no finalizations yet since the node start.", - "type": [ - "number", - "null" - ], - "format": "double" - }, - "finalizationPeriodEMSD": { - "description": "Exponential moving average standard deviation of the time between finalizations. Will be `None` if there are no finalizations yet since the node start.", - "type": [ - "number", - "null" - ], - "format": "double" - }, - "genesisBlock": { - "description": "Hash of the genesis block.", - "allOf": [ - { - "$ref": "#/definitions/SHA256Hash" - } - ] - }, - "genesisIndex": { - "description": "The number of chain restarts via a protocol update. An effected protocol update instruction might not change the protocol version specified in the previous field, but it always increments the genesis index.", - "type": "integer", - "format": "uint32", - "minimum": 0.0 - }, - "genesisTime": { - "description": "Slot time of the genesis block.", - "type": "string", - "format": "date-time" - }, - "lastFinalizedBlock": { - "description": "Hash of the last, i.e., most recent, finalized block.", - "allOf": [ - { - "$ref": "#/definitions/SHA256Hash" - } - ] - }, - "lastFinalizedBlockHeight": { - "description": "Height of the last finalized block. Genesis block has height 0.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "lastFinalizedTime": { - "description": "Time at which a block last became finalized. Note that this is the local time of the node at the time the block was finalized.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "protocolVersion": { - "description": "Currently active protocol version.", - "allOf": [ - { - "$ref": "#/definitions/ProtocolVersion" - } - ] - }, - "slotDuration": { - "description": "Duration of a slot.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "transactionsPerBlockEMA": { - "description": "Exponential moving average of the number of transactions per block.", - "type": "number", - "format": "double" - }, - "transactionsPerBlockEMSD": { - "description": "Exponential moving average standard deviation of the number of transactions per block.", - "type": "number", - "format": "double" - } - }, - "definitions": { - "ProtocolVersion": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "SHA256Hash": { - "type": "string", - "maxLength": 64, - "minLength": 64, - "pattern": "^(([0-9]?[a-f]?){2})*$" - } - } -} \ No newline at end of file diff --git a/source/mainnet/net/references/grpc-json-schemas/GetCryptographicParameters.json b/source/mainnet/net/references/grpc-json-schemas/GetCryptographicParameters.json deleted file mode 100644 index 3d116d86ad..0000000000 --- a/source/mainnet/net/references/grpc-json-schemas/GetCryptographicParameters.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Nullable_Versioned_for_GlobalContext_for_HexString", - "anyOf": [ - { - "$ref": "#/definitions/Versioned_for_GlobalContext_for_HexString" - }, - { - "type": "null" - } - ], - "definitions": { - "GlobalContext_for_HexString": { - "description": "A set of cryptographic parameters that are particular to the chain and shared by everybody that interacts with the chain.", - "type": "object", - "required": [ - "bulletproofGenerators", - "genesisString", - "onChainCommitmentKey" - ], - "properties": { - "bulletproofGenerators": { - "description": "Generators for the bulletproofs. It is unclear what length we will require here, or whether we'll allow dynamic generation.", - "allOf": [ - { - "$ref": "#/definitions/PublicKey" - } - ] - }, - "genesisString": { - "description": "A free-form string used to distinguish between different chains even if they share other parameters.", - "type": "string" - }, - "onChainCommitmentKey": { - "description": "A shared commitment key known to the chain and the account holder (and therefore it is public). The account holder uses this commitment key to generate commitments to values in the attribute list.", - "allOf": [ - { - "$ref": "#/definitions/PublicKey" - } - ] - } - } - }, - "PublicKey": { - "type": "string", - "minLength": 64, - "pattern": "^([0-9]?[a-f]?)*$" - }, - "Versioned_for_GlobalContext_for_HexString": { - "description": "Versioned represents T as a versioned data-structure. The version is a integer number up to the implementation, which is serialized using variable integer encoding. The caller is responsible for ensuring the data structure `T` is compatible with the version number.", - "type": "object", - "required": [ - "v", - "value" - ], - "properties": { - "v": { - "type": "integer", - "format": "uint32", - "minimum": 0.0 - }, - "value": { - "$ref": "#/definitions/GlobalContext_for_HexString" - } - } - } - } -} \ No newline at end of file diff --git a/source/mainnet/net/references/grpc-json-schemas/GetIdentityProviders.json b/source/mainnet/net/references/grpc-json-schemas/GetIdentityProviders.json deleted file mode 100644 index 83c7b28333..0000000000 --- a/source/mainnet/net/references/grpc-json-schemas/GetIdentityProviders.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Nullable_Array_of_IpInfo_for_HexString", - "type": [ - "array", - "null" - ], - "items": { - "$ref": "#/definitions/IpInfo_for_HexString" - }, - "definitions": { - "Description": { - "description": "Description either of an anonymity revoker or identity provider. Metadata that should be visible on the chain.", - "type": "object", - "required": [ - "description", - "name", - "url" - ], - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "IpInfo_for_HexString": { - "description": "Public information about an identity provider.", - "type": "object", - "required": [ - "ipCdiVerifyKey", - "ipDescription", - "ipIdentity", - "ipVerifyKey" - ], - "properties": { - "ipCdiVerifyKey": { - "description": "Ed public key of the IP", - "allOf": [ - { - "$ref": "#/definitions/PublicKey" - } - ] - }, - "ipDescription": { - "description": "Free form description, e.g., how to contact them off-chain", - "allOf": [ - { - "$ref": "#/definitions/Description" - } - ] - }, - "ipIdentity": { - "description": "Unique identifier of the identity provider.", - "type": "integer", - "format": "uint32", - "minimum": 0.0 - }, - "ipVerifyKey": { - "description": "PS public key of the IP", - "allOf": [ - { - "$ref": "#/definitions/PublicKey" - } - ] - } - } - }, - "PublicKey": { - "type": "string", - "minLength": 64, - "pattern": "^([0-9]?[a-f]?)*$" - } - } -} \ No newline at end of file diff --git a/source/mainnet/net/references/grpc-json-schemas/GetInstanceInfo.json b/source/mainnet/net/references/grpc-json-schemas/GetInstanceInfo.json deleted file mode 100644 index e80754304a..0000000000 --- a/source/mainnet/net/references/grpc-json-schemas/GetInstanceInfo.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Nullable_InstanceInfo", - "anyOf": [ - { - "$ref": "#/definitions/InstanceInfo" - }, - { - "type": "null" - } - ], - "definitions": { - "AccountAddress": { - "type": "string", - "maxLength": 50, - "minLength": 50, - "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]*" - }, - "CCDAmount": { - "type": "string", - "maxLength": 20, - "minLength": 1, - "pattern": "^([0-9])*" - }, - "InstanceInfo": { - "description": "Helper struct to derive JSON instances for super::InstanceInfo.", - "type": "object", - "required": [ - "amount", - "methods", - "name", - "owner", - "sourceModule" - ], - "properties": { - "amount": { - "$ref": "#/definitions/CCDAmount" - }, - "methods": { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true - }, - "model": { - "type": [ - "string", - "null" - ] - }, - "name": { - "type": "string" - }, - "owner": { - "$ref": "#/definitions/AccountAddress" - }, - "sourceModule": { - "$ref": "#/definitions/SHA256Hash" - }, - "version": { - "default": 0, - "allOf": [ - { - "$ref": "#/definitions/WasmVersion" - } - ] - } - } - }, - "SHA256Hash": { - "type": "string", - "maxLength": 64, - "minLength": 64, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "WasmVersion": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 - } - } -} \ No newline at end of file diff --git a/source/mainnet/net/references/grpc-json-schemas/GetInstances.json b/source/mainnet/net/references/grpc-json-schemas/GetInstances.json deleted file mode 100644 index ec270d252e..0000000000 --- a/source/mainnet/net/references/grpc-json-schemas/GetInstances.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Nullable_Array_of_ContractAddress", - "type": [ - "array", - "null" - ], - "items": { - "$ref": "#/definitions/ContractAddress" - }, - "definitions": { - "ContractAddress": { - "type": "object", - "required": [ - "index", - "subindex" - ], - "properties": { - "index": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "subindex": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - } - } - } -} \ No newline at end of file diff --git a/source/mainnet/net/references/grpc-json-schemas/GetModuleList.json b/source/mainnet/net/references/grpc-json-schemas/GetModuleList.json deleted file mode 100644 index c60499d7be..0000000000 --- a/source/mainnet/net/references/grpc-json-schemas/GetModuleList.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Nullable_Array_of_SHA256Hash", - "type": [ - "array", - "null" - ], - "items": { - "$ref": "#/definitions/SHA256Hash" - }, - "definitions": { - "SHA256Hash": { - "type": "string", - "maxLength": 64, - "minLength": 64, - "pattern": "^(([0-9]?[a-f]?){2})*$" - } - } -} \ No newline at end of file diff --git a/source/mainnet/net/references/grpc-json-schemas/GetNextAccountNonce.json b/source/mainnet/net/references/grpc-json-schemas/GetNextAccountNonce.json deleted file mode 100644 index da99b6cb91..0000000000 --- a/source/mainnet/net/references/grpc-json-schemas/GetNextAccountNonce.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Nullable_AccountNonceResponse", - "anyOf": [ - { - "$ref": "#/definitions/AccountNonceResponse" - }, - { - "type": "null" - } - ], - "definitions": { - "AccountNonceResponse": { - "description": "Best guess about the current account nonce, with information about reliability.", - "type": "object", - "required": [ - "allFinal", - "nonce" - ], - "properties": { - "allFinal": { - "description": "A flag indicating whether all known transactions are finalized. This can be used as an indicator of how reliable the `nonce` value is.", - "type": "boolean" - }, - "nonce": { - "description": "The nonce that should be used.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - } - } - } -} \ No newline at end of file diff --git a/source/mainnet/net/references/grpc-json-schemas/GetPoolStatus.json b/source/mainnet/net/references/grpc-json-schemas/GetPoolStatus.json deleted file mode 100644 index 7b71e62c82..0000000000 --- a/source/mainnet/net/references/grpc-json-schemas/GetPoolStatus.json +++ /dev/null @@ -1,374 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Nullable_PoolStatus", - "anyOf": [ - { - "$ref": "#/definitions/PoolStatus" - }, - { - "type": "null" - } - ], - "definitions": { - "AccountAddress": { - "type": "string", - "maxLength": 50, - "minLength": 50, - "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]*" - }, - "BakerPoolInfo": { - "description": "Additional information about a baking pool. This information is added with the introduction of delegation.", - "type": "object", - "required": [ - "commissionRates", - "metadataUrl", - "openStatus" - ], - "properties": { - "commissionRates": { - "description": "The commission rates charged by the pool owner.", - "allOf": [ - { - "$ref": "#/definitions/CommissionRates" - } - ] - }, - "metadataUrl": { - "description": "The URL that links to the metadata about the pool.", - "type": "string" - }, - "openStatus": { - "description": "Whether the pool allows delegators.", - "allOf": [ - { - "$ref": "#/definitions/OpenStatus" - } - ] - } - } - }, - "CCDAmount": { - "type": "string", - "maxLength": 20, - "minLength": 1, - "pattern": "^([0-9])*" - }, - "CommissionRates": { - "type": "object", - "required": [ - "bakingCommission", - "finalizationCommission", - "transactionCommission" - ], - "properties": { - "bakingCommission": { - "description": "Fraction of baking rewards charged by the pool owner.", - "type": "number" - }, - "finalizationCommission": { - "description": "Fraction of finalization rewards charged by the pool owner.", - "type": "number" - }, - "transactionCommission": { - "description": "Fraction of transaction rewards charged by the pool owner.", - "type": "number" - } - } - }, - "CurrentPaydayBakerPoolStatus": { - "type": "object", - "required": [ - "bakerEquityCapital", - "blocksBaked", - "delegatedCapital", - "effectiveStake", - "finalizationLive", - "lotteryPower", - "transactionFeesEarned" - ], - "properties": { - "bakerEquityCapital": { - "description": "The effective equity capital of the baker for the current reward period.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "blocksBaked": { - "description": "The number of blocks baked in the current reward period.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "delegatedCapital": { - "description": "The effective delegated capital to the pool for the current reward period.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "effectiveStake": { - "description": "The effective stake of the baker in the current reward period.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "finalizationLive": { - "description": "Whether the baker has contributed a finalization proof in the current reward period.", - "type": "boolean" - }, - "lotteryPower": { - "description": "The lottery power of the baker in the current reward period.", - "type": "number", - "format": "double" - }, - "transactionFeesEarned": { - "description": "The transaction fees accruing to the pool in the current reward period.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - } - } - }, - "OpenStatus": { - "description": "The status of whether a baking pool allows delegators to join.", - "type": "string", - "enum": [ - "openForAll", - "closedForNew", - "closedForAll" - ] - }, - "PoolPendingChange": { - "oneOf": [ - { - "type": "object", - "required": [ - "pendingChangeType" - ], - "properties": { - "pendingChangeType": { - "type": "string", - "enum": [ - "NoChange" - ] - } - } - }, - { - "type": "object", - "required": [ - "bakerEquityCapital", - "effectiveTime", - "pendingChangeType" - ], - "properties": { - "bakerEquityCapital": { - "description": "New baker equity capital.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "effectiveTime": { - "description": "Effective time of the change.", - "type": "string", - "format": "date-time" - }, - "pendingChangeType": { - "type": "string", - "enum": [ - "ReduceBakerCapital" - ] - } - } - }, - { - "type": "object", - "required": [ - "effectiveTime", - "pendingChangeType" - ], - "properties": { - "effectiveTime": { - "description": "Effective time of the change.", - "type": "string", - "format": "date-time" - }, - "pendingChangeType": { - "type": "string", - "enum": [ - "RemovePool" - ] - } - } - } - ] - }, - "PoolStatus": { - "oneOf": [ - { - "type": "object", - "required": [ - "allPoolTotalCapital", - "bakerAddress", - "bakerEquityCapital", - "bakerId", - "bakerStakePendingChange", - "delegatedCapital", - "delegatedCapitalCap", - "poolInfo", - "poolType" - ], - "properties": { - "allPoolTotalCapital": { - "description": "Total capital staked across all pools.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "bakerAddress": { - "description": "The account address of the pool owner.", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "bakerEquityCapital": { - "description": "The equity capital provided by the pool owner.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "bakerId": { - "description": "The 'BakerId' of the pool owner.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "bakerStakePendingChange": { - "description": "Any pending change to the baker's stake.", - "allOf": [ - { - "$ref": "#/definitions/PoolPendingChange" - } - ] - }, - "currentPaydayStatus": { - "description": "Status of the pool in the current reward period. This will be [None] if the pool is not a", - "anyOf": [ - { - "$ref": "#/definitions/CurrentPaydayBakerPoolStatus" - }, - { - "type": "null" - } - ] - }, - "delegatedCapital": { - "description": "The capital delegated to the pool by other accounts.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "delegatedCapitalCap": { - "description": "The maximum amount that may be delegated to the pool, accounting for leverage and stake limits.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "poolInfo": { - "description": "The pool info associated with the pool: open status, metadata URL and commission rates.", - "allOf": [ - { - "$ref": "#/definitions/BakerPoolInfo" - } - ] - }, - "poolType": { - "type": "string", - "enum": [ - "BakerPool" - ] - } - } - }, - { - "type": "object", - "required": [ - "allPoolTotalCapital", - "commissionRates", - "currentPaydayDelegatedCapital", - "currentPaydayTransactionFeesEarned", - "delegatedCapital", - "poolType" - ], - "properties": { - "allPoolTotalCapital": { - "description": "Total capital staked across all pools, including passive delegation.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "commissionRates": { - "description": "The passive delegation commission rates.", - "allOf": [ - { - "$ref": "#/definitions/CommissionRates" - } - ] - }, - "currentPaydayDelegatedCapital": { - "description": "The effective delegated capital to the passive delegators for the current reward period.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "currentPaydayTransactionFeesEarned": { - "description": "The transaction fees accruing to the passive delegators in the current reward period.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "delegatedCapital": { - "description": "The total capital delegated passively.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "poolType": { - "type": "string", - "enum": [ - "PassiveDelegation" - ] - } - } - } - ] - } - } -} \ No newline at end of file diff --git a/source/mainnet/net/references/grpc-json-schemas/GetRewardStatus.json b/source/mainnet/net/references/grpc-json-schemas/GetRewardStatus.json deleted file mode 100644 index 2b34b4afb2..0000000000 --- a/source/mainnet/net/references/grpc-json-schemas/GetRewardStatus.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Nullable_RewardsOverview", - "anyOf": [ - { - "$ref": "#/definitions/RewardsOverview" - }, - { - "type": "null" - } - ], - "definitions": { - "CCDAmount": { - "type": "string", - "maxLength": 20, - "minLength": 1, - "pattern": "^([0-9])*" - }, - "MintRate": { - "type": "number" - }, - "ProtocolVersion": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "RewardsOverview": { - "description": "Reward data common to both V0 and V1 rewards.", - "type": "object", - "required": [ - "bakingRewardAccount", - "finalizationRewardAccount", - "gasAccount", - "protocolVersion", - "totalAmount", - "totalEncryptedAmount" - ], - "properties": { - "bakingRewardAccount": { - "description": "The amount in the baking reward account.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "finalizationRewardAccount": { - "description": "The amount in the finalization reward account.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "foundationTransactionRewards": { - "description": "The transaction reward fraction accruing to the foundation (to be paid at next payday).", - "anyOf": [ - { - "$ref": "#/definitions/CCDAmount" - }, - { - "type": "null" - } - ] - }, - "gasAccount": { - "description": "The amount in the GAS account.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "nextPaydayMintRate": { - "description": "The rate at which CCD will be minted (as a proportion of the total supply) at the next payday", - "anyOf": [ - { - "$ref": "#/definitions/MintRate" - }, - { - "type": "null" - } - ] - }, - "nextPaydayTime": { - "description": "The time of the next payday.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "protocolVersion": { - "description": "Protocol version that applies to these rewards. V0 variant only exists for protocol versions 1, 2, and 3.", - "allOf": [ - { - "$ref": "#/definitions/ProtocolVersion" - } - ] - }, - "totalAmount": { - "description": "The total CCD in existence.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "totalEncryptedAmount": { - "description": "The total CCD in encrypted balances.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "totalStakedCapital": { - "description": "The total capital put up as stake by bakers and delegators", - "anyOf": [ - { - "$ref": "#/definitions/CCDAmount" - }, - { - "type": "null" - } - ] - } - } - } - } -} \ No newline at end of file diff --git a/source/mainnet/net/references/grpc-json-schemas/GetTransactionStatus.json b/source/mainnet/net/references/grpc-json-schemas/GetTransactionStatus.json deleted file mode 100644 index ae9ab19a0c..0000000000 --- a/source/mainnet/net/references/grpc-json-schemas/GetTransactionStatus.json +++ /dev/null @@ -1,3924 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Nullable_TransactionStatus", - "anyOf": [ - { - "$ref": "#/definitions/TransactionStatus" - }, - { - "type": "null" - } - ], - "definitions": { - "AccessStructure": { - "description": "And access structure for performing chain updates. The access structure is only meaningful in the context of a list of update keys to which the indices refer to.", - "type": "object", - "required": [ - "authorizedKeys", - "threshold" - ], - "properties": { - "authorizedKeys": { - "type": "array", - "items": { - "type": "integer", - "format": "uint16", - "minimum": 0.0 - }, - "uniqueItems": true - }, - "threshold": { - "type": "integer", - "format": "uint16", - "minimum": 0.0 - } - } - }, - "AccountAddress": { - "type": "string", - "maxLength": 50, - "minLength": 50, - "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]*" - }, - "Address": { - "description": "Either an account or contract address. Some operations are allowed on both types of items, hence the need for this type.", - "oneOf": [ - { - "type": "object", - "required": [ - "address", - "type" - ], - "properties": { - "address": { - "$ref": "#/definitions/AccountAddress" - }, - "type": { - "type": "string", - "enum": [ - "AddressAccount" - ] - } - } - }, - { - "type": "object", - "required": [ - "address", - "type" - ], - "properties": { - "address": { - "$ref": "#/definitions/ContractAddress" - }, - "type": { - "type": "string", - "enum": [ - "AddressContract" - ] - } - } - } - ] - }, - "ArInfo_for_HexString": { - "description": "Information on a single anonymity revoker held by the IP. Typically an IP will hold a more than one.", - "type": "object", - "required": [ - "arDescription", - "arIdentity", - "arPublicKey" - ], - "properties": { - "arDescription": { - "description": "description of the anonymity revoker (e.g. name, contact number)", - "allOf": [ - { - "$ref": "#/definitions/Description" - } - ] - }, - "arIdentity": { - "description": "unique identifier of the anonymity revoker", - "type": "integer", - "format": "uint32", - "minimum": 0.0 - }, - "arPublicKey": { - "description": "elgamal encryption key of the anonymity revoker", - "allOf": [ - { - "$ref": "#/definitions/PublicKey" - } - ] - } - } - }, - "AuthorizationsV0": { - "description": "Access structures for each of the different possible chain updates, togehter with the context giving all the possible keys.", - "type": "object", - "required": [ - "addAnonymityRevoker", - "addIdentityProvider", - "electionDifficulty", - "emergency", - "euroPerEnergy", - "foundationAccount", - "keys", - "microGTUPerEuro", - "mintDistribution", - "paramGASRewards", - "poolParameters", - "protocol", - "transactionFeeDistribution" - ], - "properties": { - "addAnonymityRevoker": { - "description": "Access structure for adding new anonymity revokers.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "addIdentityProvider": { - "description": "Access structure for adding new identity providers.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "electionDifficulty": { - "description": "Access structure for updating the election difficulty.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "emergency": { - "description": "Access structure for emergency updates.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "euroPerEnergy": { - "description": "Access structure for updating the euro to energy exchange rate.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "foundationAccount": { - "description": "Access structure for updating the foundation account address.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "keys": { - "description": "The list of all keys that are currently authorized to perform updates.", - "type": "array", - "items": { - "$ref": "#/definitions/VerifyKey" - } - }, - "microGTUPerEuro": { - "description": "Access structure for updating the microccd per euro exchange rate.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "mintDistribution": { - "description": "Access structure for updating the mint distribution parameters.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "paramGASRewards": { - "description": "Access structure for updating the gas reward distribution parameters.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "poolParameters": { - "description": "Access structure for updating the pool parameters. For V0 this is only the baker stake threshold, for V1 there are more.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "protocol": { - "description": "Access structure for protocol updates.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "transactionFeeDistribution": { - "description": "Access structure for updating the transaction fee distribution.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - } - } - }, - "AuthorizationsV1": { - "description": "Access structures for each of the different possible chain updates, togehter with the context giving all the possible keys.", - "type": "object", - "required": [ - "addAnonymityRevoker", - "addIdentityProvider", - "cooldownParameters", - "electionDifficulty", - "emergency", - "euroPerEnergy", - "foundationAccount", - "keys", - "microGTUPerEuro", - "mintDistribution", - "paramGASRewards", - "poolParameters", - "protocol", - "timeParameters", - "transactionFeeDistribution" - ], - "properties": { - "addAnonymityRevoker": { - "description": "Access structure for adding new anonymity revokers.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "addIdentityProvider": { - "description": "Access structure for adding new identity providers.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "cooldownParameters": { - "description": "Keys for changing cooldown periods related to baking and delegating.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "electionDifficulty": { - "description": "Access structure for updating the election difficulty.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "emergency": { - "description": "Access structure for emergency updates.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "euroPerEnergy": { - "description": "Access structure for updating the euro to energy exchange rate.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "foundationAccount": { - "description": "Access structure for updating the foundation account address.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "keys": { - "description": "The list of all keys that are currently authorized to perform updates.", - "type": "array", - "items": { - "$ref": "#/definitions/VerifyKey" - } - }, - "microGTUPerEuro": { - "description": "Access structure for updating the microccd per euro exchange rate.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "mintDistribution": { - "description": "Access structure for updating the mint distribution parameters.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "paramGASRewards": { - "description": "Access structure for updating the gas reward distribution parameters.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "poolParameters": { - "description": "Access structure for updating the pool parameters. For V0 this is only the baker stake threshold, for V1 there are more.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "protocol": { - "description": "Access structure for protocol updates.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "timeParameters": { - "description": "Keys for changing the lenghts of the reward period.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "transactionFeeDistribution": { - "description": "Access structure for updating the transaction fee distribution.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - } - } - }, - "BakerAggregationVerifyKey": { - "type": "string", - "maxLength": 192, - "minLength": 192, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "BakerElectionVerifyKey": { - "type": "string", - "maxLength": 64, - "minLength": 64, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "BakerParameters": { - "type": "object", - "required": [ - "minimumThresholdForBaking" - ], - "properties": { - "minimumThresholdForBaking": { - "$ref": "#/definitions/CCDAmount" - } - } - }, - "BakerSignatureVerifyKey": { - "type": "string", - "maxLength": 64, - "minLength": 64, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "BlockItemResult": { - "description": "Outcome of a block item execution.", - "oneOf": [ - { - "description": "The intended action was completed. The sender was charged, if applicable. Some events were generated describing the changes that happened on the chain.", - "type": "object", - "required": [ - "events", - "outcome" - ], - "properties": { - "events": { - "type": "array", - "items": { - "$ref": "#/definitions/Event" - } - }, - "outcome": { - "type": "string", - "enum": [ - "success" - ] - } - } - }, - { - "description": "The intended action was not completed due to an error. The sender was charged, but no other effect is seen on the chain.", - "type": "object", - "required": [ - "outcome", - "rejectReason" - ], - "properties": { - "outcome": { - "type": "string", - "enum": [ - "reject" - ] - }, - "rejectReason": { - "$ref": "#/definitions/RejectReason" - } - } - } - ] - }, - "BlockItemSummary": { - "description": "Summary of the outcome of a block item.", - "type": "object", - "required": [ - "cost", - "energyCost", - "hash", - "index", - "result", - "type" - ], - "properties": { - "cost": { - "description": "The amount of CCD the transaction was charged to the sender.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "energyCost": { - "description": "The amount of NRG the transaction cost.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "hash": { - "description": "Hash of the transaction.", - "allOf": [ - { - "$ref": "#/definitions/SHA256Hash" - } - ] - }, - "index": { - "description": "Index of the transaction in the block where it is included.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "result": { - "description": "What is the outcome of this particular block item.", - "allOf": [ - { - "$ref": "#/definitions/BlockItemResult" - } - ] - }, - "sender": { - "description": "Sender, if available. The sender is always available for account transactions.", - "default": null, - "anyOf": [ - { - "$ref": "#/definitions/AccountAddress" - }, - { - "type": "null" - } - ] - }, - "type": { - "description": "Which type of block item this is.", - "allOf": [ - { - "$ref": "#/definitions/BlockItemType" - } - ] - } - } - }, - "BlockItemType": { - "description": "The type of the block item.", - "oneOf": [ - { - "description": "Account transactions are transactions that are signed by an account. Most transactions are account transactions.", - "type": "object", - "required": [ - "contents", - "type" - ], - "properties": { - "contents": { - "anyOf": [ - { - "$ref": "#/definitions/TransactionType" - }, - { - "type": "null" - } - ] - }, - "type": { - "type": "string", - "enum": [ - "accountTransaction" - ] - } - } - }, - { - "description": "Credential deployments that create accounts are special kinds of transactions. They are not signed by the account in the usual way, and they are not paid for directly by the sender.", - "type": "object", - "required": [ - "contents", - "type" - ], - "properties": { - "contents": { - "$ref": "#/definitions/CredentialType" - }, - "type": { - "type": "string", - "enum": [ - "credentialDeploymentTransaction" - ] - } - } - }, - { - "description": "Chain updates are signed by the governance keys. They affect the core parameters of the chain.", - "type": "object", - "required": [ - "contents", - "type" - ], - "properties": { - "contents": { - "$ref": "#/definitions/UpdateType" - }, - "type": { - "type": "string", - "enum": [ - "updateTransaction" - ] - } - } - } - ] - }, - "CCDAmount": { - "type": "string", - "maxLength": 20, - "minLength": 1, - "pattern": "^([0-9])*" - }, - "ContractAddress": { - "type": "object", - "required": [ - "index", - "subindex" - ], - "properties": { - "index": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "subindex": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - } - }, - "ContractEvent": { - "type": "string", - "maxLength": 1024, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "CooldownParameters": { - "type": "object", - "required": [ - "delegatorCooldown", - "poolOwnerCooldown" - ], - "properties": { - "delegatorCooldown": { - "description": "Number of seconds that a delegator must cooldown when reducing their delegated stake.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "poolOwnerCooldown": { - "description": "Number of seconds that pool owners must cooldown when reducing their equity capital or closing the pool.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - } - }, - "CredentialRegistrationID": { - "type": "string", - "maxLength": 96, - "minLength": 96, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "CredentialType": { - "description": "Enumeration of the types of credentials.", - "type": "string", - "enum": [ - "initial", - "normal" - ] - }, - "DelegationTarget": { - "oneOf": [ - { - "description": "Delegate passively, i.e., to no specific baker.", - "type": "object", - "required": [ - "delegateType" - ], - "properties": { - "delegateType": { - "type": "string", - "enum": [ - "Passive" - ] - } - } - }, - { - "description": "Delegate to a specific baker.", - "type": "object", - "required": [ - "bakerId", - "delegateType" - ], - "properties": { - "bakerId": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "delegateType": { - "type": "string", - "enum": [ - "Baker" - ] - } - } - } - ] - }, - "Description": { - "description": "Description either of an anonymity revoker or identity provider. Metadata that should be visible on the chain.", - "type": "object", - "required": [ - "description", - "name", - "url" - ], - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "EncryptedAmount": { - "type": "string", - "maxLength": 384, - "minLength": 384, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "Event": { - "description": "An event describing the changes that occurred to the state of the chain.", - "oneOf": [ - { - "description": "A smart contract module was successfully deployed.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/SHA256Hash" - }, - "tag": { - "type": "string", - "enum": [ - "ModuleDeployed" - ] - } - } - }, - { - "description": "A new smart contract instance was created.", - "type": "object", - "required": [ - "address", - "amount", - "events", - "initName", - "ref", - "tag" - ], - "properties": { - "address": { - "description": "The newly assigned address of the contract.", - "allOf": [ - { - "$ref": "#/definitions/ContractAddress" - } - ] - }, - "amount": { - "description": "The amount the instance was initialized with.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "contractVersion": { - "default": 0, - "allOf": [ - { - "$ref": "#/definitions/WasmVersion" - } - ] - }, - "events": { - "description": "Any contract events that might have been generated by the contract initialization.", - "type": "array", - "items": { - "$ref": "#/definitions/ContractEvent" - } - }, - "initName": { - "description": "The name of the contract.", - "type": "string" - }, - "ref": { - "description": "Module with the source code of the contract.", - "allOf": [ - { - "$ref": "#/definitions/SHA256Hash" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "ContractInitialized" - ] - } - } - }, - { - "description": "A smart contract instance was updated.", - "type": "object", - "required": [ - "address", - "amount", - "events", - "instigator", - "message", - "receiveName", - "tag" - ], - "properties": { - "address": { - "description": "Address of the affected instance.", - "allOf": [ - { - "$ref": "#/definitions/ContractAddress" - } - ] - }, - "amount": { - "description": "The amount the method was invoked with.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "contractVersion": { - "default": 0, - "allOf": [ - { - "$ref": "#/definitions/WasmVersion" - } - ] - }, - "events": { - "description": "Any contract events that might have been generated by the contract execution.", - "type": "array", - "items": { - "$ref": "#/definitions/ContractEvent" - } - }, - "instigator": { - "description": "The origin of the message to the smart contract. This can be either an account or a smart contract.", - "allOf": [ - { - "$ref": "#/definitions/Address" - } - ] - }, - "message": { - "description": "The message passed to method.", - "allOf": [ - { - "$ref": "#/definitions/Parameter" - } - ] - }, - "receiveName": { - "description": "The name of the method that was executed.", - "type": "string" - }, - "tag": { - "type": "string", - "enum": [ - "Updated" - ] - } - } - }, - { - "description": "An amount of CCD was transferred.", - "type": "object", - "required": [ - "amount", - "from", - "tag", - "to" - ], - "properties": { - "amount": { - "description": "Amount that was transferred.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "from": { - "description": "Sender, either smart contract instance or account.", - "allOf": [ - { - "$ref": "#/definitions/Address" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "Transferred" - ] - }, - "to": { - "description": "Receiver. This will currently always be an account. Transferring to a smart contract is always an update.", - "allOf": [ - { - "$ref": "#/definitions/Address" - } - ] - } - } - }, - { - "description": "An account with the given address was created.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/AccountAddress" - }, - "tag": { - "type": "string", - "enum": [ - "AccountCreated" - ] - } - } - }, - { - "description": "A new credential with the given ID was deployed onto an account. This is used only when a new account is created. See [Event::CredentialsUpdated] for when an existing account's credentials are updated.", - "type": "object", - "required": [ - "account", - "regId", - "tag" - ], - "properties": { - "account": { - "$ref": "#/definitions/AccountAddress" - }, - "regId": { - "$ref": "#/definitions/CredentialRegistrationID" - }, - "tag": { - "type": "string", - "enum": [ - "CredentialDeployed" - ] - } - } - }, - { - "description": "A new baker was registered, with the given ID and keys.", - "type": "object", - "required": [ - "account", - "aggregationKey", - "bakerId", - "electionKey", - "restakeEarnings", - "signKey", - "stake", - "tag" - ], - "properties": { - "account": { - "description": "Account address of the baker.", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "aggregationKey": { - "description": "The new public key for verifying finalization records.", - "allOf": [ - { - "$ref": "#/definitions/BakerAggregationVerifyKey" - } - ] - }, - "bakerId": { - "description": "ID of the baker whose keys were changed.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "electionKey": { - "description": "The new public key for verifying whether the baker won the block lottery.", - "allOf": [ - { - "$ref": "#/definitions/BakerElectionVerifyKey" - } - ] - }, - "restakeEarnings": { - "description": "Whether the baker will automatically add earnings to their stake or not.", - "type": "boolean" - }, - "signKey": { - "description": "The new public key for verifying block signatures.", - "allOf": [ - { - "$ref": "#/definitions/BakerSignatureVerifyKey" - } - ] - }, - "stake": { - "description": "The amount the account staked to become a baker. This amount is locked.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "BakerAdded" - ] - } - } - }, - { - "description": "A baker was scheduled to be removed.", - "type": "object", - "required": [ - "account", - "bakerId", - "tag" - ], - "properties": { - "account": { - "$ref": "#/definitions/AccountAddress" - }, - "bakerId": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "tag": { - "type": "string", - "enum": [ - "BakerRemoved" - ] - } - } - }, - { - "description": "A baker's stake was increased. This has effect immediately.", - "type": "object", - "required": [ - "account", - "bakerId", - "newStake", - "tag" - ], - "properties": { - "account": { - "$ref": "#/definitions/AccountAddress" - }, - "bakerId": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "newStake": { - "$ref": "#/definitions/CCDAmount" - }, - "tag": { - "type": "string", - "enum": [ - "BakerStakeIncreased" - ] - } - } - }, - { - "description": "A baker's stake was scheduled to be decreased. This will have an effect on the stake after a number of epochs, controlled by the baker cooldown period.", - "type": "object", - "required": [ - "account", - "bakerId", - "newStake", - "tag" - ], - "properties": { - "account": { - "$ref": "#/definitions/AccountAddress" - }, - "bakerId": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "newStake": { - "$ref": "#/definitions/CCDAmount" - }, - "tag": { - "type": "string", - "enum": [ - "BakerStakeDecreased" - ] - } - } - }, - { - "description": "The setting for whether rewards are added to stake immediately or not was changed to the given value.", - "type": "object", - "required": [ - "account", - "bakerId", - "restakeEarnings", - "tag" - ], - "properties": { - "account": { - "$ref": "#/definitions/AccountAddress" - }, - "bakerId": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "restakeEarnings": { - "description": "The new value of the flag.", - "type": "boolean" - }, - "tag": { - "type": "string", - "enum": [ - "BakerSetRestakeEarnings" - ] - } - } - }, - { - "description": "The baker keys were updated. The new keys are listed.", - "type": "object", - "required": [ - "account", - "aggregationKey", - "bakerId", - "electionKey", - "signKey", - "tag" - ], - "properties": { - "account": { - "description": "Account address of the baker.", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "aggregationKey": { - "description": "The new public key for verifying finalization records.", - "allOf": [ - { - "$ref": "#/definitions/BakerAggregationVerifyKey" - } - ] - }, - "bakerId": { - "description": "ID of the baker whose keys were changed.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "electionKey": { - "description": "The new public key for verifying whether the baker won the block lottery.", - "allOf": [ - { - "$ref": "#/definitions/BakerElectionVerifyKey" - } - ] - }, - "signKey": { - "description": "The new public key for verifying block signatures.", - "allOf": [ - { - "$ref": "#/definitions/BakerSignatureVerifyKey" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "BakerKeysUpdated" - ] - } - } - }, - { - "description": "Keys of the given credential were updated.", - "type": "object", - "required": [ - "credId", - "tag" - ], - "properties": { - "credId": { - "$ref": "#/definitions/CredentialRegistrationID" - }, - "tag": { - "type": "string", - "enum": [ - "CredentialKeysUpdated" - ] - } - } - }, - { - "description": "A new encrypted amount was added to the account.", - "type": "object", - "required": [ - "account", - "encryptedAmount", - "newIndex", - "tag" - ], - "properties": { - "account": { - "description": "The account onto which the amount was added.", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "encryptedAmount": { - "description": "The encrypted amount that was added.", - "allOf": [ - { - "$ref": "#/definitions/EncryptedAmount" - } - ] - }, - "newIndex": { - "description": "The index the amount was assigned.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "tag": { - "type": "string", - "enum": [ - "NewEncryptedAmount" - ] - } - } - }, - { - "description": "One or more encrypted amounts were removed from an account as part of a transfer or decryption.", - "type": "object", - "required": [ - "account", - "inputAmount", - "newAmount", - "tag", - "upToIndex" - ], - "properties": { - "account": { - "description": "The affected account.", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "inputAmount": { - "description": "The input encrypted amount that was removed.", - "allOf": [ - { - "$ref": "#/definitions/EncryptedAmount" - } - ] - }, - "newAmount": { - "description": "The new self encrypted amount on the affected account.", - "allOf": [ - { - "$ref": "#/definitions/EncryptedAmount" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "EncryptedAmountsRemoved" - ] - }, - "upToIndex": { - "description": "The index indicating which amounts were used.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - } - }, - { - "description": "The public balance of the account was increased via a transfer from encrypted to public balance.", - "type": "object", - "required": [ - "account", - "amount", - "tag" - ], - "properties": { - "account": { - "$ref": "#/definitions/AccountAddress" - }, - "amount": { - "$ref": "#/definitions/CCDAmount" - }, - "tag": { - "type": "string", - "enum": [ - "AmountAddedByDecryption" - ] - } - } - }, - { - "description": "The encrypted balance of the account was updated due to transfer from public to encrypted balance of the account.", - "type": "object", - "required": [ - "account", - "amount", - "newAmount", - "tag" - ], - "properties": { - "account": { - "description": "The affected account.", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "amount": { - "description": "The amount that was transferred from public to encrypted balance.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "newAmount": { - "description": "The new self encrypted amount of the account.", - "allOf": [ - { - "$ref": "#/definitions/EncryptedAmount" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "EncryptedSelfAmountAdded" - ] - } - } - }, - { - "description": "An update was enqueued for the given time.", - "type": "object", - "required": [ - "effectiveTime", - "payload", - "tag" - ], - "properties": { - "effectiveTime": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "payload": { - "$ref": "#/definitions/UpdatePayload" - }, - "tag": { - "type": "string", - "enum": [ - "UpdateEnqueued" - ] - } - } - }, - { - "description": "A transfer with schedule was enqueued.", - "type": "object", - "required": [ - "amount", - "from", - "tag", - "to" - ], - "properties": { - "amount": { - "description": "The list of releases. Ordered by increasing timestamp.", - "type": "array", - "items": { - "type": "array", - "items": [ - { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - { - "$ref": "#/definitions/CCDAmount" - } - ], - "maxItems": 2, - "minItems": 2 - } - }, - "from": { - "description": "Sender account.", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "TransferredWithSchedule" - ] - }, - "to": { - "description": "Receiver account.", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - } - } - }, - { - "description": "The credentials of the account were updated. Either added, removed, or both.", - "type": "object", - "required": [ - "account", - "newCredIds", - "newThreshold", - "removedCredIds", - "tag" - ], - "properties": { - "account": { - "description": "The affected account.", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "newCredIds": { - "description": "The credential ids that were added.", - "type": "array", - "items": { - "$ref": "#/definitions/CredentialRegistrationID" - } - }, - "newThreshold": { - "description": "The (possibly) updated account threshold.", - "type": "integer", - "format": "uint8", - "minimum": 1.0 - }, - "removedCredIds": { - "description": "The credentials that were removed.", - "type": "array", - "items": { - "$ref": "#/definitions/CredentialRegistrationID" - } - }, - "tag": { - "type": "string", - "enum": [ - "CredentialsUpdated" - ] - } - } - }, - { - "description": "Data was registered.", - "type": "object", - "required": [ - "data", - "tag" - ], - "properties": { - "data": { - "$ref": "#/definitions/RegisteredData" - }, - "tag": { - "type": "string", - "enum": [ - "DataRegistered" - ] - } - } - }, - { - "description": "Memo", - "type": "object", - "required": [ - "memo", - "tag" - ], - "properties": { - "memo": { - "$ref": "#/definitions/Memo" - }, - "tag": { - "type": "string", - "enum": [ - "TransferMemo" - ] - } - } - }, - { - "description": "A V1 contract was interrupted.", - "type": "object", - "required": [ - "address", - "events", - "tag" - ], - "properties": { - "address": { - "description": "Address of the contract that was interrupted.", - "allOf": [ - { - "$ref": "#/definitions/ContractAddress" - } - ] - }, - "events": { - "description": "Events generated up to the interrupt.", - "type": "array", - "items": { - "$ref": "#/definitions/ContractEvent" - } - }, - "tag": { - "type": "string", - "enum": [ - "Interrupted" - ] - } - } - }, - { - "description": "A V1 contract resumed execution.", - "type": "object", - "required": [ - "address", - "success", - "tag" - ], - "properties": { - "address": { - "description": "Address of the contract that is resuming.", - "allOf": [ - { - "$ref": "#/definitions/ContractAddress" - } - ] - }, - "success": { - "description": "Whether the interrupt succeeded or not.", - "type": "boolean" - }, - "tag": { - "type": "string", - "enum": [ - "Resumed" - ] - } - } - }, - { - "description": "Updated open status for a baker pool", - "type": "object", - "required": [ - "account", - "bakerId", - "openStatus", - "tag" - ], - "properties": { - "account": { - "description": "Baker account", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "bakerId": { - "description": "Baker's id", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "openStatus": { - "description": "The open status.", - "allOf": [ - { - "$ref": "#/definitions/OpenStatus" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "BakerSetOpenStatus" - ] - } - } - }, - { - "description": "Updated metadata url for baker pool", - "type": "object", - "required": [ - "account", - "bakerId", - "metadataURL", - "tag" - ], - "properties": { - "account": { - "description": "Baker account", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "bakerId": { - "description": "Baker's id", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "metadataURL": { - "description": "The URL.", - "type": "string" - }, - "tag": { - "type": "string", - "enum": [ - "BakerSetMetadataURL" - ] - } - } - }, - { - "description": "Updated transaction fee commission for baker pool", - "type": "object", - "required": [ - "account", - "bakerId", - "tag", - "transactionFeeCommission" - ], - "properties": { - "account": { - "description": "Baker account", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "bakerId": { - "description": "Baker's id", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "tag": { - "type": "string", - "enum": [ - "BakerSetTransactionFeeCommission" - ] - }, - "transactionFeeCommission": { - "description": "The transaction fee commission.", - "type": "number" - } - } - }, - { - "description": "Updated baking reward commission for baker pool", - "type": "object", - "required": [ - "account", - "bakerId", - "bakingRewardCommission", - "tag" - ], - "properties": { - "account": { - "description": "Baker account", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "bakerId": { - "description": "Baker's id", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "bakingRewardCommission": { - "description": "The baking reward commission", - "type": "number" - }, - "tag": { - "type": "string", - "enum": [ - "BakerSetBakingRewardCommission" - ] - } - } - }, - { - "description": "Updated finalization reward commission for baker pool", - "type": "object", - "required": [ - "account", - "bakerId", - "finalizationRewardCommission", - "tag" - ], - "properties": { - "account": { - "description": "Baker account", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "bakerId": { - "description": "Baker's id", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "finalizationRewardCommission": { - "description": "The finalization reward commission", - "type": "number" - }, - "tag": { - "type": "string", - "enum": [ - "BakerSetFinalizationRewardCommission" - ] - } - } - }, - { - "type": "object", - "required": [ - "account", - "delegatorId", - "newStake", - "tag" - ], - "properties": { - "account": { - "description": "Delegator account", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "delegatorId": { - "description": "Delegator's id", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "newStake": { - "description": "New stake", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "DelegationStakeIncreased" - ] - } - } - }, - { - "type": "object", - "required": [ - "account", - "delegatorId", - "newStake", - "tag" - ], - "properties": { - "account": { - "description": "Delegator account", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "delegatorId": { - "description": "Delegator's id", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "newStake": { - "description": "New stake", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "DelegationStakeDecreased" - ] - } - } - }, - { - "type": "object", - "required": [ - "account", - "delegatorId", - "restakeEarnings", - "tag" - ], - "properties": { - "account": { - "description": "Delegator account", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "delegatorId": { - "description": "Delegator's id", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "restakeEarnings": { - "description": "Whether earnings will be restaked", - "type": "boolean" - }, - "tag": { - "type": "string", - "enum": [ - "DelegationSetRestakeEarnings" - ] - } - } - }, - { - "type": "object", - "required": [ - "account", - "delegationTarget", - "delegatorId", - "tag" - ], - "properties": { - "account": { - "description": "Delegator account", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "delegationTarget": { - "description": "New delegation target", - "allOf": [ - { - "$ref": "#/definitions/DelegationTarget" - } - ] - }, - "delegatorId": { - "description": "Delegator's id", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "tag": { - "type": "string", - "enum": [ - "DelegationSetDelegationTarget" - ] - } - } - }, - { - "type": "object", - "required": [ - "account", - "delegatorId", - "tag" - ], - "properties": { - "account": { - "description": "Delegator account", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "delegatorId": { - "description": "Delegator's id", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "tag": { - "type": "string", - "enum": [ - "DelegationAdded" - ] - } - } - }, - { - "type": "object", - "required": [ - "account", - "delegatorId", - "tag" - ], - "properties": { - "account": { - "description": "Delegator account", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "delegatorId": { - "description": "Delegator's id", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "tag": { - "type": "string", - "enum": [ - "DelegationRemoved" - ] - } - } - } - ] - }, - "ExchangeRate": { - "type": "object", - "required": [ - "denominator", - "numerator" - ], - "properties": { - "denominator": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "numerator": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - } - }, - "GASRewards": { - "description": "The reward fractions related to the gas account and inclusion of special transactions.", - "type": "object", - "required": [ - "accountCreation", - "baker", - "chainUpdate", - "finalizationProof" - ], - "properties": { - "accountCreation": { - "description": "`FeeAccountCreation`: fraction paid for including each account creation transaction in a block.", - "type": "number" - }, - "baker": { - "description": "`BakerPrevTransFrac`: fraction of the previous gas account paid to the baker.", - "type": "number" - }, - "chainUpdate": { - "description": "`FeeUpdate`: fraction paid for including an update transaction in a block.", - "type": "number" - }, - "finalizationProof": { - "description": "`FeeAddFinalisationProof`: fraction paid for including a finalization proof in a block.", - "type": "number" - } - } - }, - "HexString": { - "type": "string", - "minLength": 0, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "HigherLevelAccessStructure_for_Level1KeysKind": { - "description": "Either root, level1, or level 2 access structure. They all have the same structure, keys and a threshold. The phantom type parameter is used for added type safety to distinguish different access structures in different contexts.", - "type": "object", - "required": [ - "keys", - "threshold" - ], - "properties": { - "keys": { - "type": "array", - "items": { - "$ref": "#/definitions/VerifyKey" - } - }, - "threshold": { - "type": "integer", - "format": "uint16", - "minimum": 0.0 - } - } - }, - "HigherLevelAccessStructure_for_RootKeysKind": { - "description": "Either root, level1, or level 2 access structure. They all have the same structure, keys and a threshold. The phantom type parameter is used for added type safety to distinguish different access structures in different contexts.", - "type": "object", - "required": [ - "keys", - "threshold" - ], - "properties": { - "keys": { - "type": "array", - "items": { - "$ref": "#/definitions/VerifyKey" - } - }, - "threshold": { - "type": "integer", - "format": "uint16", - "minimum": 0.0 - } - } - }, - "InclusiveRange_for_Number": { - "type": "object", - "required": [ - "max", - "min" - ], - "properties": { - "max": { - "type": "number" - }, - "min": { - "type": "number" - } - } - }, - "IpInfo_for_HexString": { - "description": "Public information about an identity provider.", - "type": "object", - "required": [ - "ipCdiVerifyKey", - "ipDescription", - "ipIdentity", - "ipVerifyKey" - ], - "properties": { - "ipCdiVerifyKey": { - "description": "Ed public key of the IP", - "allOf": [ - { - "$ref": "#/definitions/PublicKey" - } - ] - }, - "ipDescription": { - "description": "Free form description, e.g., how to contact them off-chain", - "allOf": [ - { - "$ref": "#/definitions/Description" - } - ] - }, - "ipIdentity": { - "description": "Unique identifier of the identity provider.", - "type": "integer", - "format": "uint32", - "minimum": 0.0 - }, - "ipVerifyKey": { - "description": "PS public key of the IP", - "allOf": [ - { - "$ref": "#/definitions/PublicKey" - } - ] - } - } - }, - "Level1Update": { - "description": "An update with level 1 keys of either level 1 or level 2 keys. Each of the updates must be a separate transaction.", - "oneOf": [ - { - "type": "object", - "required": [ - "typeOfUpdate", - "updatePayload" - ], - "properties": { - "typeOfUpdate": { - "type": "string", - "enum": [ - "level1KeysUpdate" - ] - }, - "updatePayload": { - "$ref": "#/definitions/HigherLevelAccessStructure_for_Level1KeysKind" - } - } - }, - { - "type": "object", - "required": [ - "typeOfUpdate", - "updatePayload" - ], - "properties": { - "typeOfUpdate": { - "type": "string", - "enum": [ - "level2KeysUpdate" - ] - }, - "updatePayload": { - "$ref": "#/definitions/AuthorizationsV0" - } - } - }, - { - "type": "object", - "required": [ - "typeOfUpdate", - "updatePayload" - ], - "properties": { - "typeOfUpdate": { - "type": "string", - "enum": [ - "level2KeysUpdateV1" - ] - }, - "updatePayload": { - "$ref": "#/definitions/AuthorizationsV1" - } - } - } - ] - }, - "LeverageFactor": { - "type": "object", - "required": [ - "denominator", - "numerator" - ], - "properties": { - "denominator": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "numerator": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - } - }, - "Memo": { - "type": "string", - "maxLength": 512, - "minLength": 0, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "MintDistributionV0": { - "type": "object", - "required": [ - "bakingReward", - "finalizationReward", - "mintPerSlot" - ], - "properties": { - "bakingReward": { - "type": "number" - }, - "finalizationReward": { - "type": "number" - }, - "mintPerSlot": { - "$ref": "#/definitions/MintRate" - } - } - }, - "MintDistributionV1": { - "type": "object", - "required": [ - "bakingReward", - "finalizationReward" - ], - "properties": { - "bakingReward": { - "type": "number" - }, - "finalizationReward": { - "type": "number" - } - } - }, - "MintRate": { - "type": "number" - }, - "OpenStatus": { - "description": "The status of whether a baking pool allows delegators to join.", - "type": "string", - "enum": [ - "openForAll", - "closedForNew", - "closedForAll" - ] - }, - "Parameter": { - "type": "string", - "maxLength": 2048, - "minLength": 0, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "PoolParameters": { - "description": "Parameters related to staking pools.", - "type": "object", - "required": [ - "bakingCommissionRange", - "capitalBound", - "finalizationCommissionRange", - "leverageBound", - "minimumEquityCapital", - "passiveBakingCommission", - "passiveFinalizationCommission", - "passiveTransactionCommission", - "transactionCommissionRange" - ], - "properties": { - "bakingCommissionRange": { - "description": "The range of allowed baker commissions.", - "allOf": [ - { - "$ref": "#/definitions/InclusiveRange_for_Number" - } - ] - }, - "capitalBound": { - "description": "Maximum fraction of the total staked capital of that a new baker can have.", - "type": "number" - }, - "finalizationCommissionRange": { - "description": "The range of allowed finalization commissions.", - "allOf": [ - { - "$ref": "#/definitions/InclusiveRange_for_Number" - } - ] - }, - "leverageBound": { - "description": "The maximum leverage that a baker can have as a ratio of total stake to equity capital.", - "allOf": [ - { - "$ref": "#/definitions/LeverageFactor" - } - ] - }, - "minimumEquityCapital": { - "description": "Minimum equity capital required for a new baker.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "passiveBakingCommission": { - "description": "Fraction of baking rewards charged by the passive delegation.", - "type": "number" - }, - "passiveFinalizationCommission": { - "description": "Fraction of finalization rewards charged by the passive delegation.", - "type": "number" - }, - "passiveTransactionCommission": { - "description": "Fraction of transaction rewards charged by the L-pool.", - "type": "number" - }, - "transactionCommissionRange": { - "description": "The range of allowed transaction commissions.", - "allOf": [ - { - "$ref": "#/definitions/InclusiveRange_for_Number" - } - ] - } - } - }, - "ProtocolUpdate": { - "description": "A generic protocol update. This is essentially an announcement of the update. The details of the update will be communicated in some off-chain way, and bakers will need to update their node software to support the update.", - "type": "object", - "required": [ - "message", - "specificationAuxiliaryData", - "specificationHash", - "specificationURL" - ], - "properties": { - "message": { - "type": "string" - }, - "specificationAuxiliaryData": { - "$ref": "#/definitions/HexString" - }, - "specificationHash": { - "$ref": "#/definitions/SHA256Hash" - }, - "specificationURL": { - "type": "string" - } - } - }, - "PublicKey": { - "type": "string", - "minLength": 64, - "pattern": "^([0-9]?[a-f]?)*$" - }, - "RegisteredData": { - "type": "string", - "maxLength": 512, - "minLength": 0, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "RejectReason": { - "description": "A reason for why a transaction was rejected. Rejected means included in a block, but the desired action was not achieved. The only effect of a rejected transaction is payment.\n\nNOTE: Some of the variant definitions can look peculiar, but they are made to be compatible with the serialization of the Haskell datatype.", - "oneOf": [ - { - "description": "Error raised when validating the Wasm module.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "ModuleNotWF" - ] - } - } - }, - { - "description": "As the name says.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/SHA256Hash" - }, - "tag": { - "type": "string", - "enum": [ - "ModuleHashAlreadyExists" - ] - } - } - }, - { - "description": "Account does not exist.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/AccountAddress" - }, - "tag": { - "type": "string", - "enum": [ - "InvalidAccountReference" - ] - } - } - }, - { - "description": "Reference to a non-existing contract init method.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "type": "array", - "items": [ - { - "$ref": "#/definitions/SHA256Hash" - }, - { - "type": "string" - } - ], - "maxItems": 2, - "minItems": 2 - }, - "tag": { - "type": "string", - "enum": [ - "InvalidInitMethod" - ] - } - } - }, - { - "description": "Reference to a non-existing contract receive method.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "type": "array", - "items": [ - { - "$ref": "#/definitions/SHA256Hash" - }, - { - "type": "string" - } - ], - "maxItems": 2, - "minItems": 2 - }, - "tag": { - "type": "string", - "enum": [ - "InvalidReceiveMethod" - ] - } - } - }, - { - "description": "Reference to a non-existing module.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/SHA256Hash" - }, - "tag": { - "type": "string", - "enum": [ - "InvalidModuleReference" - ] - } - } - }, - { - "description": "Contract instance does not exist.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/ContractAddress" - }, - "tag": { - "type": "string", - "enum": [ - "InvalidContractAddress" - ] - } - } - }, - { - "description": "Runtime exception occurred when running either the init or receive method.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "RuntimeFailure" - ] - } - } - }, - { - "description": "When one wishes to transfer an amount from A to B but there are not enough funds on account/contract A to make this possible. The data are the from address and the amount to transfer.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "type": "array", - "items": [ - { - "$ref": "#/definitions/Address" - }, - { - "$ref": "#/definitions/CCDAmount" - } - ], - "maxItems": 2, - "minItems": 2 - }, - "tag": { - "type": "string", - "enum": [ - "AmountTooLarge" - ] - } - } - }, - { - "description": "Serialization of the body failed.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "SerializationFailure" - ] - } - } - }, - { - "description": "We ran of out energy to process this transaction.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "OutOfEnergy" - ] - } - } - }, - { - "description": "Rejected due to contract logic in init function of a contract.", - "type": "object", - "required": [ - "rejectReason", - "tag" - ], - "properties": { - "rejectReason": { - "type": "integer", - "format": "int32" - }, - "tag": { - "type": "string", - "enum": [ - "RejectedInit" - ] - } - } - }, - { - "type": "object", - "required": [ - "contractAddress", - "parameter", - "receiveName", - "rejectReason", - "tag" - ], - "properties": { - "contractAddress": { - "$ref": "#/definitions/ContractAddress" - }, - "parameter": { - "$ref": "#/definitions/Parameter" - }, - "receiveName": { - "type": "string" - }, - "rejectReason": { - "type": "integer", - "format": "int32" - }, - "tag": { - "type": "string", - "enum": [ - "RejectedReceive" - ] - } - } - }, - { - "description": "Reward account desired by the baker does not exist.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/AccountAddress" - }, - "tag": { - "type": "string", - "enum": [ - "NonExistentRewardAccount" - ] - } - } - }, - { - "description": "Proof that the baker owns relevant private keys is not valid.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InvalidProof" - ] - } - } - }, - { - "description": "Tried to add baker for an account that already has a baker", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "tag": { - "type": "string", - "enum": [ - "AlreadyABaker" - ] - } - } - }, - { - "description": "Tried to remove a baker for an account that has no baker", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/AccountAddress" - }, - "tag": { - "type": "string", - "enum": [ - "NotABaker" - ] - } - } - }, - { - "description": "The amount on the account was insufficient to cover the proposed stake", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InsufficientBalanceForBakerStake" - ] - } - } - }, - { - "description": "The amount provided is under the threshold required for becoming a baker", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "StakeUnderMinimumThresholdForBaking" - ] - } - } - }, - { - "description": "The change could not be made because the baker is in cooldown for another change", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "BakerInCooldown" - ] - } - } - }, - { - "description": "A baker with the given aggregation key already exists", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/BakerAggregationVerifyKey" - }, - "tag": { - "type": "string", - "enum": [ - "DuplicateAggregationKey" - ] - } - } - }, - { - "description": "Encountered credential ID that does not exist", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "NonExistentCredentialID" - ] - } - } - }, - { - "description": "Attempted to add an account key to a key index already in use", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "KeyIndexAlreadyInUse" - ] - } - } - }, - { - "description": "When the account threshold is updated, it must not exceed the amount of existing keys", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InvalidAccountThreshold" - ] - } - } - }, - { - "description": "When the credential key threshold is updated, it must not exceed the amount of existing keys", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InvalidCredentialKeySignThreshold" - ] - } - } - }, - { - "description": "Proof for an encrypted amount transfer did not validate.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InvalidEncryptedAmountTransferProof" - ] - } - } - }, - { - "description": "Proof for a secret to public transfer did not validate.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InvalidTransferToPublicProof" - ] - } - } - }, - { - "description": "Account tried to transfer an encrypted amount to itself, that's not allowed.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/AccountAddress" - }, - "tag": { - "type": "string", - "enum": [ - "EncryptedAmountSelfTransfer" - ] - } - } - }, - { - "description": "The provided index is below the start index or above `startIndex + length incomingAmounts`", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InvalidIndexOnEncryptedTransfer" - ] - } - } - }, - { - "description": "The transfer with schedule is going to send 0 tokens", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "ZeroScheduledAmount" - ] - } - } - }, - { - "description": "The transfer with schedule has a non strictly increasing schedule", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "NonIncreasingSchedule" - ] - } - } - }, - { - "description": "The first scheduled release in a transfer with schedule has already expired", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "FirstScheduledReleaseExpired" - ] - } - } - }, - { - "description": "Account tried to transfer with schedule to itself, that's not allowed.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/AccountAddress" - }, - "tag": { - "type": "string", - "enum": [ - "ScheduledSelfTransfer" - ] - } - } - }, - { - "description": "At least one of the credentials was either malformed or its proof was incorrect.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InvalidCredentials" - ] - } - } - }, - { - "description": "Some of the credential IDs already exist or are duplicated in the transaction.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "type": "array", - "items": { - "$ref": "#/definitions/CredentialRegistrationID" - } - }, - "tag": { - "type": "string", - "enum": [ - "DuplicateCredIDs" - ] - } - } - }, - { - "description": "A credential id that was to be removed is not part of the account.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "type": "array", - "items": { - "$ref": "#/definitions/CredentialRegistrationID" - } - }, - "tag": { - "type": "string", - "enum": [ - "NonExistentCredIDs" - ] - } - } - }, - { - "description": "Attemp to remove the first credential", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "RemoveFirstCredential" - ] - } - } - }, - { - "description": "The credential holder of the keys to be updated did not sign the transaction", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "CredentialHolderDidNotSign" - ] - } - } - }, - { - "description": "Account is not allowed to have multiple credentials because it contains a non-zero encrypted transfer.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "NotAllowedMultipleCredentials" - ] - } - } - }, - { - "description": "The account is not allowed to receive encrypted transfers because it has multiple credentials.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "NotAllowedToReceiveEncrypted" - ] - } - } - }, - { - "description": "The account is not allowed to send encrypted transfers (or transfer from/to public to/from encrypted)", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "NotAllowedToHandleEncrypted" - ] - } - } - }, - { - "description": "A configure baker transaction is missing one or more arguments in order to add a baker.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "MissingBakerAddParameters" - ] - } - } - }, - { - "description": "Finalization reward commission is not in the valid range for a baker", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "FinalizationRewardCommissionNotInRange" - ] - } - } - }, - { - "description": "Baking reward commission is not in the valid range for a baker", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "BakingRewardCommissionNotInRange" - ] - } - } - }, - { - "description": "Transaction fee commission is not in the valid range for a baker", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "TransactionFeeCommissionNotInRange" - ] - } - } - }, - { - "description": "Tried to add baker for an account that already has a delegator.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "AlreadyADelegator" - ] - } - } - }, - { - "description": "The amount on the account was insufficient to cover the proposed stake.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InsufficientBalanceForDelegationStake" - ] - } - } - }, - { - "description": "A configure delegation transaction is missing one or more arguments in order to add a delegator.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "MissingDelegationAddParameters" - ] - } - } - }, - { - "description": "Delegation stake when adding a delegator was 0.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InsufficientDelegationStake" - ] - } - } - }, - { - "description": "Account is not a delegation account.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "DelegatorInCooldown" - ] - } - } - }, - { - "description": "Account is not a delegation account.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/AccountAddress" - }, - "tag": { - "type": "string", - "enum": [ - "NotADelegator" - ] - } - } - }, - { - "description": "Delegation target is not a baker", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "tag": { - "type": "string", - "enum": [ - "DelegationTargetNotABaker" - ] - } - } - }, - { - "description": "The amount would result in pool capital higher than the maximum threshold.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "StakeOverMaximumThresholdForPool" - ] - } - } - }, - { - "description": "The amount would result in pool with a too high fraction of delegated capital.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "PoolWouldBecomeOverDelegated" - ] - } - } - }, - { - "description": "The pool is not open to delegators.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "PoolClosed" - ] - } - } - } - ] - }, - "RootUpdate": { - "description": "An update with root keys of some other set of governance keys, or the root keys themselves. Each update is a separate transaction.", - "oneOf": [ - { - "type": "object", - "required": [ - "typeOfUpdate", - "updatePayload" - ], - "properties": { - "typeOfUpdate": { - "type": "string", - "enum": [ - "rootKeysUpdate" - ] - }, - "updatePayload": { - "$ref": "#/definitions/HigherLevelAccessStructure_for_RootKeysKind" - } - } - }, - { - "type": "object", - "required": [ - "typeOfUpdate", - "updatePayload" - ], - "properties": { - "typeOfUpdate": { - "type": "string", - "enum": [ - "level1KeysUpdate" - ] - }, - "updatePayload": { - "$ref": "#/definitions/HigherLevelAccessStructure_for_Level1KeysKind" - } - } - }, - { - "type": "object", - "required": [ - "typeOfUpdate", - "updatePayload" - ], - "properties": { - "typeOfUpdate": { - "type": "string", - "enum": [ - "level2KeysUpdate" - ] - }, - "updatePayload": { - "$ref": "#/definitions/AuthorizationsV0" - } - } - }, - { - "type": "object", - "required": [ - "typeOfUpdate", - "updatePayload" - ], - "properties": { - "typeOfUpdate": { - "type": "string", - "enum": [ - "level2KeysUpdateV1" - ] - }, - "updatePayload": { - "$ref": "#/definitions/AuthorizationsV1" - } - } - } - ] - }, - "SHA256Hash": { - "type": "string", - "maxLength": 64, - "minLength": 64, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "TimeParameters": { - "description": "The time parameters are introduced as of protocol version 4, and consist of the reward period length and the mint rate per payday. These are coupled as a change to either affects the overall rate of minting.", - "type": "object", - "required": [ - "mintPerPayday", - "rewardPeriodLength" - ], - "properties": { - "mintPerPayday": { - "$ref": "#/definitions/MintRate" - }, - "rewardPeriodLength": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - } - }, - "TransactionFeeDistribution": { - "description": "Update the transaction fee distribution to the specified value.", - "type": "object", - "required": [ - "baker", - "gasAccount" - ], - "properties": { - "baker": { - "description": "The fraction that goes to the baker of the block.", - "type": "number" - }, - "gasAccount": { - "description": "The fraction that goes to the gas account. The remaining fraction will go to the foundation.", - "type": "number" - } - } - }, - "TransactionStatus": { - "description": "Status of a transaction known to the node.", - "oneOf": [ - { - "description": "Transaction is received, but not yet in any blocks.", - "type": "object", - "required": [ - "status" - ], - "properties": { - "status": { - "type": "string", - "enum": [ - "received" - ] - } - } - }, - { - "description": "Transaction is finalized in the given block, with the given summary. If the finalization committee is not corrupt then this will always be a singleton map.", - "type": "object", - "required": [ - "outcomes", - "status" - ], - "properties": { - "outcomes": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/BlockItemSummary" - } - }, - "status": { - "type": "string", - "enum": [ - "finalized" - ] - } - } - }, - { - "description": "Transaction is committed to one or more blocks. The outcomes are listed for each block. Note that in the vast majority of cases the outcome of a transaction should not be dependent on the block it is in, but this can in principle happen.", - "type": "object", - "required": [ - "outcomes", - "status" - ], - "properties": { - "outcomes": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/BlockItemSummary" - } - }, - "status": { - "type": "string", - "enum": [ - "committed" - ] - } - } - } - ] - }, - "TransactionType": { - "description": "Types of account transactions.", - "type": "string", - "enum": [ - "deployModule", - "initContract", - "update", - "transfer", - "addBaker", - "removeBaker", - "updateBakerStake", - "updateBakerRestakeEarnings", - "updateBakerKeys", - "updateCredentialKeys", - "encryptedAmountTransfer", - "transferToEncrypted", - "transferToPublic", - "transferWithSchedule", - "updateCredentials", - "registerData", - "transferWithMemo", - "encryptedAmountTransferWithMemo", - "transferWithScheduleAndMemo", - "configureBaker", - "configureDelegation" - ] - }, - "UpdatePayload": { - "description": "The type of an update payload.", - "oneOf": [ - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/ProtocolUpdate" - }, - "updateType": { - "type": "string", - "enum": [ - "protocol" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "type": "number" - }, - "updateType": { - "type": "string", - "enum": [ - "electionDifficulty" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/ExchangeRate" - }, - "updateType": { - "type": "string", - "enum": [ - "euroPerEnergy" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/ExchangeRate" - }, - "updateType": { - "type": "string", - "enum": [ - "microGTUPerEuro" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/AccountAddress" - }, - "updateType": { - "type": "string", - "enum": [ - "foundationAccount" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/MintDistributionV0" - }, - "updateType": { - "type": "string", - "enum": [ - "mintDistribution" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/TransactionFeeDistribution" - }, - "updateType": { - "type": "string", - "enum": [ - "transactionFeeDistribution" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/GASRewards" - }, - "updateType": { - "type": "string", - "enum": [ - "gASRewards" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/BakerParameters" - }, - "updateType": { - "type": "string", - "enum": [ - "bakerStakeThreshold" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/RootUpdate" - }, - "updateType": { - "type": "string", - "enum": [ - "root" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/Level1Update" - }, - "updateType": { - "type": "string", - "enum": [ - "level1" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/ArInfo_for_HexString" - }, - "updateType": { - "type": "string", - "enum": [ - "addAnonymityRevoker" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/IpInfo_for_HexString" - }, - "updateType": { - "type": "string", - "enum": [ - "addIdentityProvider" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/CooldownParameters" - }, - "updateType": { - "type": "string", - "enum": [ - "cooldownParametersCPV1" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/PoolParameters" - }, - "updateType": { - "type": "string", - "enum": [ - "poolParametersCPV1" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/TimeParameters" - }, - "updateType": { - "type": "string", - "enum": [ - "timeParametersCPV1" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/MintDistributionV1" - }, - "updateType": { - "type": "string", - "enum": [ - "mintDistributionCPV1" - ] - } - } - } - ] - }, - "UpdateType": { - "description": "Enumeration of the types of updates that are possible.", - "type": "string", - "enum": [ - "updateProtocol", - "updateElectionDifficulty", - "updateEuroPerEnergy", - "updateMicroGTUPerEuro", - "updateFoundationAccount", - "updateMintDistribution", - "updateTransactionFeeDistribution", - "updateGASRewards", - "updateAddAnonymityRevoker", - "updateAddIdentityProvider", - "updateRootKeys", - "updateLevel1Keys", - "updateLevel2Keys", - "updatePoolParameters", - "updateCooldownParameters", - "updateTimeParameters" - ] - }, - "VerifyKey": { - "type": "object", - "properties": { - "schemeId": { - "type": "string" - }, - "verifyKey": { - "type": "string", - "maxLength": 64, - "minLength": 64, - "pattern": "^(([0-9]?[a-f]?){2})*$" - } - } - }, - "WasmVersion": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 - } - } -} \ No newline at end of file diff --git a/source/mainnet/net/references/grpc-json-schemas/GetTransactionStatusInBlock.json b/source/mainnet/net/references/grpc-json-schemas/GetTransactionStatusInBlock.json deleted file mode 100644 index f8990eea03..0000000000 --- a/source/mainnet/net/references/grpc-json-schemas/GetTransactionStatusInBlock.json +++ /dev/null @@ -1,3918 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Nullable_TransactionStatusInBlock", - "anyOf": [ - { - "$ref": "#/definitions/TransactionStatusInBlock" - }, - { - "type": "null" - } - ], - "definitions": { - "AccessStructure": { - "description": "And access structure for performing chain updates. The access structure is only meaningful in the context of a list of update keys to which the indices refer to.", - "type": "object", - "required": [ - "authorizedKeys", - "threshold" - ], - "properties": { - "authorizedKeys": { - "type": "array", - "items": { - "type": "integer", - "format": "uint16", - "minimum": 0.0 - }, - "uniqueItems": true - }, - "threshold": { - "type": "integer", - "format": "uint16", - "minimum": 0.0 - } - } - }, - "AccountAddress": { - "type": "string", - "maxLength": 50, - "minLength": 50, - "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]*" - }, - "Address": { - "description": "Either an account or contract address. Some operations are allowed on both types of items, hence the need for this type.", - "oneOf": [ - { - "type": "object", - "required": [ - "address", - "type" - ], - "properties": { - "address": { - "$ref": "#/definitions/AccountAddress" - }, - "type": { - "type": "string", - "enum": [ - "AddressAccount" - ] - } - } - }, - { - "type": "object", - "required": [ - "address", - "type" - ], - "properties": { - "address": { - "$ref": "#/definitions/ContractAddress" - }, - "type": { - "type": "string", - "enum": [ - "AddressContract" - ] - } - } - } - ] - }, - "ArInfo_for_HexString": { - "description": "Information on a single anonymity revoker held by the IP. Typically an IP will hold a more than one.", - "type": "object", - "required": [ - "arDescription", - "arIdentity", - "arPublicKey" - ], - "properties": { - "arDescription": { - "description": "description of the anonymity revoker (e.g. name, contact number)", - "allOf": [ - { - "$ref": "#/definitions/Description" - } - ] - }, - "arIdentity": { - "description": "unique identifier of the anonymity revoker", - "type": "integer", - "format": "uint32", - "minimum": 0.0 - }, - "arPublicKey": { - "description": "elgamal encryption key of the anonymity revoker", - "allOf": [ - { - "$ref": "#/definitions/PublicKey" - } - ] - } - } - }, - "AuthorizationsV0": { - "description": "Access structures for each of the different possible chain updates, togehter with the context giving all the possible keys.", - "type": "object", - "required": [ - "addAnonymityRevoker", - "addIdentityProvider", - "electionDifficulty", - "emergency", - "euroPerEnergy", - "foundationAccount", - "keys", - "microGTUPerEuro", - "mintDistribution", - "paramGASRewards", - "poolParameters", - "protocol", - "transactionFeeDistribution" - ], - "properties": { - "addAnonymityRevoker": { - "description": "Access structure for adding new anonymity revokers.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "addIdentityProvider": { - "description": "Access structure for adding new identity providers.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "electionDifficulty": { - "description": "Access structure for updating the election difficulty.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "emergency": { - "description": "Access structure for emergency updates.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "euroPerEnergy": { - "description": "Access structure for updating the euro to energy exchange rate.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "foundationAccount": { - "description": "Access structure for updating the foundation account address.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "keys": { - "description": "The list of all keys that are currently authorized to perform updates.", - "type": "array", - "items": { - "$ref": "#/definitions/VerifyKey" - } - }, - "microGTUPerEuro": { - "description": "Access structure for updating the microccd per euro exchange rate.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "mintDistribution": { - "description": "Access structure for updating the mint distribution parameters.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "paramGASRewards": { - "description": "Access structure for updating the gas reward distribution parameters.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "poolParameters": { - "description": "Access structure for updating the pool parameters. For V0 this is only the baker stake threshold, for V1 there are more.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "protocol": { - "description": "Access structure for protocol updates.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "transactionFeeDistribution": { - "description": "Access structure for updating the transaction fee distribution.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - } - } - }, - "AuthorizationsV1": { - "description": "Access structures for each of the different possible chain updates, togehter with the context giving all the possible keys.", - "type": "object", - "required": [ - "addAnonymityRevoker", - "addIdentityProvider", - "cooldownParameters", - "electionDifficulty", - "emergency", - "euroPerEnergy", - "foundationAccount", - "keys", - "microGTUPerEuro", - "mintDistribution", - "paramGASRewards", - "poolParameters", - "protocol", - "timeParameters", - "transactionFeeDistribution" - ], - "properties": { - "addAnonymityRevoker": { - "description": "Access structure for adding new anonymity revokers.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "addIdentityProvider": { - "description": "Access structure for adding new identity providers.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "cooldownParameters": { - "description": "Keys for changing cooldown periods related to baking and delegating.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "electionDifficulty": { - "description": "Access structure for updating the election difficulty.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "emergency": { - "description": "Access structure for emergency updates.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "euroPerEnergy": { - "description": "Access structure for updating the euro to energy exchange rate.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "foundationAccount": { - "description": "Access structure for updating the foundation account address.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "keys": { - "description": "The list of all keys that are currently authorized to perform updates.", - "type": "array", - "items": { - "$ref": "#/definitions/VerifyKey" - } - }, - "microGTUPerEuro": { - "description": "Access structure for updating the microccd per euro exchange rate.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "mintDistribution": { - "description": "Access structure for updating the mint distribution parameters.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "paramGASRewards": { - "description": "Access structure for updating the gas reward distribution parameters.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "poolParameters": { - "description": "Access structure for updating the pool parameters. For V0 this is only the baker stake threshold, for V1 there are more.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "protocol": { - "description": "Access structure for protocol updates.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "timeParameters": { - "description": "Keys for changing the lenghts of the reward period.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - }, - "transactionFeeDistribution": { - "description": "Access structure for updating the transaction fee distribution.", - "allOf": [ - { - "$ref": "#/definitions/AccessStructure" - } - ] - } - } - }, - "BakerAggregationVerifyKey": { - "type": "string", - "maxLength": 192, - "minLength": 192, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "BakerElectionVerifyKey": { - "type": "string", - "maxLength": 64, - "minLength": 64, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "BakerParameters": { - "type": "object", - "required": [ - "minimumThresholdForBaking" - ], - "properties": { - "minimumThresholdForBaking": { - "$ref": "#/definitions/CCDAmount" - } - } - }, - "BakerSignatureVerifyKey": { - "type": "string", - "maxLength": 64, - "minLength": 64, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "BlockItemResult": { - "description": "Outcome of a block item execution.", - "oneOf": [ - { - "description": "The intended action was completed. The sender was charged, if applicable. Some events were generated describing the changes that happened on the chain.", - "type": "object", - "required": [ - "events", - "outcome" - ], - "properties": { - "events": { - "type": "array", - "items": { - "$ref": "#/definitions/Event" - } - }, - "outcome": { - "type": "string", - "enum": [ - "success" - ] - } - } - }, - { - "description": "The intended action was not completed due to an error. The sender was charged, but no other effect is seen on the chain.", - "type": "object", - "required": [ - "outcome", - "rejectReason" - ], - "properties": { - "outcome": { - "type": "string", - "enum": [ - "reject" - ] - }, - "rejectReason": { - "$ref": "#/definitions/RejectReason" - } - } - } - ] - }, - "BlockItemSummary": { - "description": "Summary of the outcome of a block item.", - "type": "object", - "required": [ - "cost", - "energyCost", - "hash", - "index", - "result", - "type" - ], - "properties": { - "cost": { - "description": "The amount of CCD the transaction was charged to the sender.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "energyCost": { - "description": "The amount of NRG the transaction cost.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "hash": { - "description": "Hash of the transaction.", - "allOf": [ - { - "$ref": "#/definitions/SHA256Hash" - } - ] - }, - "index": { - "description": "Index of the transaction in the block where it is included.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "result": { - "description": "What is the outcome of this particular block item.", - "allOf": [ - { - "$ref": "#/definitions/BlockItemResult" - } - ] - }, - "sender": { - "description": "Sender, if available. The sender is always available for account transactions.", - "default": null, - "anyOf": [ - { - "$ref": "#/definitions/AccountAddress" - }, - { - "type": "null" - } - ] - }, - "type": { - "description": "Which type of block item this is.", - "allOf": [ - { - "$ref": "#/definitions/BlockItemType" - } - ] - } - } - }, - "BlockItemType": { - "description": "The type of the block item.", - "oneOf": [ - { - "description": "Account transactions are transactions that are signed by an account. Most transactions are account transactions.", - "type": "object", - "required": [ - "contents", - "type" - ], - "properties": { - "contents": { - "anyOf": [ - { - "$ref": "#/definitions/TransactionType" - }, - { - "type": "null" - } - ] - }, - "type": { - "type": "string", - "enum": [ - "accountTransaction" - ] - } - } - }, - { - "description": "Credential deployments that create accounts are special kinds of transactions. They are not signed by the account in the usual way, and they are not paid for directly by the sender.", - "type": "object", - "required": [ - "contents", - "type" - ], - "properties": { - "contents": { - "$ref": "#/definitions/CredentialType" - }, - "type": { - "type": "string", - "enum": [ - "credentialDeploymentTransaction" - ] - } - } - }, - { - "description": "Chain updates are signed by the governance keys. They affect the core parameters of the chain.", - "type": "object", - "required": [ - "contents", - "type" - ], - "properties": { - "contents": { - "$ref": "#/definitions/UpdateType" - }, - "type": { - "type": "string", - "enum": [ - "updateTransaction" - ] - } - } - } - ] - }, - "CCDAmount": { - "type": "string", - "maxLength": 20, - "minLength": 1, - "pattern": "^([0-9])*" - }, - "ContractAddress": { - "type": "object", - "required": [ - "index", - "subindex" - ], - "properties": { - "index": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "subindex": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - } - }, - "ContractEvent": { - "type": "string", - "maxLength": 1024, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "CooldownParameters": { - "type": "object", - "required": [ - "delegatorCooldown", - "poolOwnerCooldown" - ], - "properties": { - "delegatorCooldown": { - "description": "Number of seconds that a delegator must cooldown when reducing their delegated stake.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "poolOwnerCooldown": { - "description": "Number of seconds that pool owners must cooldown when reducing their equity capital or closing the pool.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - } - }, - "CredentialRegistrationID": { - "type": "string", - "maxLength": 96, - "minLength": 96, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "CredentialType": { - "description": "Enumeration of the types of credentials.", - "type": "string", - "enum": [ - "initial", - "normal" - ] - }, - "DelegationTarget": { - "oneOf": [ - { - "description": "Delegate passively, i.e., to no specific baker.", - "type": "object", - "required": [ - "delegateType" - ], - "properties": { - "delegateType": { - "type": "string", - "enum": [ - "Passive" - ] - } - } - }, - { - "description": "Delegate to a specific baker.", - "type": "object", - "required": [ - "bakerId", - "delegateType" - ], - "properties": { - "bakerId": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "delegateType": { - "type": "string", - "enum": [ - "Baker" - ] - } - } - } - ] - }, - "Description": { - "description": "Description either of an anonymity revoker or identity provider. Metadata that should be visible on the chain.", - "type": "object", - "required": [ - "description", - "name", - "url" - ], - "properties": { - "description": { - "type": "string" - }, - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "EncryptedAmount": { - "type": "string", - "maxLength": 384, - "minLength": 384, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "Event": { - "description": "An event describing the changes that occurred to the state of the chain.", - "oneOf": [ - { - "description": "A smart contract module was successfully deployed.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/SHA256Hash" - }, - "tag": { - "type": "string", - "enum": [ - "ModuleDeployed" - ] - } - } - }, - { - "description": "A new smart contract instance was created.", - "type": "object", - "required": [ - "address", - "amount", - "events", - "initName", - "ref", - "tag" - ], - "properties": { - "address": { - "description": "The newly assigned address of the contract.", - "allOf": [ - { - "$ref": "#/definitions/ContractAddress" - } - ] - }, - "amount": { - "description": "The amount the instance was initialized with.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "contractVersion": { - "default": 0, - "allOf": [ - { - "$ref": "#/definitions/WasmVersion" - } - ] - }, - "events": { - "description": "Any contract events that might have been generated by the contract initialization.", - "type": "array", - "items": { - "$ref": "#/definitions/ContractEvent" - } - }, - "initName": { - "description": "The name of the contract.", - "type": "string" - }, - "ref": { - "description": "Module with the source code of the contract.", - "allOf": [ - { - "$ref": "#/definitions/SHA256Hash" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "ContractInitialized" - ] - } - } - }, - { - "description": "A smart contract instance was updated.", - "type": "object", - "required": [ - "address", - "amount", - "events", - "instigator", - "message", - "receiveName", - "tag" - ], - "properties": { - "address": { - "description": "Address of the affected instance.", - "allOf": [ - { - "$ref": "#/definitions/ContractAddress" - } - ] - }, - "amount": { - "description": "The amount the method was invoked with.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "contractVersion": { - "default": 0, - "allOf": [ - { - "$ref": "#/definitions/WasmVersion" - } - ] - }, - "events": { - "description": "Any contract events that might have been generated by the contract execution.", - "type": "array", - "items": { - "$ref": "#/definitions/ContractEvent" - } - }, - "instigator": { - "description": "The origin of the message to the smart contract. This can be either an account or a smart contract.", - "allOf": [ - { - "$ref": "#/definitions/Address" - } - ] - }, - "message": { - "description": "The message passed to method.", - "allOf": [ - { - "$ref": "#/definitions/Parameter" - } - ] - }, - "receiveName": { - "description": "The name of the method that was executed.", - "type": "string" - }, - "tag": { - "type": "string", - "enum": [ - "Updated" - ] - } - } - }, - { - "description": "An amount of CCD was transferred.", - "type": "object", - "required": [ - "amount", - "from", - "tag", - "to" - ], - "properties": { - "amount": { - "description": "Amount that was transferred.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "from": { - "description": "Sender, either smart contract instance or account.", - "allOf": [ - { - "$ref": "#/definitions/Address" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "Transferred" - ] - }, - "to": { - "description": "Receiver. This will currently always be an account. Transferring to a smart contract is always an update.", - "allOf": [ - { - "$ref": "#/definitions/Address" - } - ] - } - } - }, - { - "description": "An account with the given address was created.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/AccountAddress" - }, - "tag": { - "type": "string", - "enum": [ - "AccountCreated" - ] - } - } - }, - { - "description": "A new credential with the given ID was deployed onto an account. This is used only when a new account is created. See [Event::CredentialsUpdated] for when an existing account's credentials are updated.", - "type": "object", - "required": [ - "account", - "regId", - "tag" - ], - "properties": { - "account": { - "$ref": "#/definitions/AccountAddress" - }, - "regId": { - "$ref": "#/definitions/CredentialRegistrationID" - }, - "tag": { - "type": "string", - "enum": [ - "CredentialDeployed" - ] - } - } - }, - { - "description": "A new baker was registered, with the given ID and keys.", - "type": "object", - "required": [ - "account", - "aggregationKey", - "bakerId", - "electionKey", - "restakeEarnings", - "signKey", - "stake", - "tag" - ], - "properties": { - "account": { - "description": "Account address of the baker.", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "aggregationKey": { - "description": "The new public key for verifying finalization records.", - "allOf": [ - { - "$ref": "#/definitions/BakerAggregationVerifyKey" - } - ] - }, - "bakerId": { - "description": "ID of the baker whose keys were changed.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "electionKey": { - "description": "The new public key for verifying whether the baker won the block lottery.", - "allOf": [ - { - "$ref": "#/definitions/BakerElectionVerifyKey" - } - ] - }, - "restakeEarnings": { - "description": "Whether the baker will automatically add earnings to their stake or not.", - "type": "boolean" - }, - "signKey": { - "description": "The new public key for verifying block signatures.", - "allOf": [ - { - "$ref": "#/definitions/BakerSignatureVerifyKey" - } - ] - }, - "stake": { - "description": "The amount the account staked to become a baker. This amount is locked.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "BakerAdded" - ] - } - } - }, - { - "description": "A baker was scheduled to be removed.", - "type": "object", - "required": [ - "account", - "bakerId", - "tag" - ], - "properties": { - "account": { - "$ref": "#/definitions/AccountAddress" - }, - "bakerId": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "tag": { - "type": "string", - "enum": [ - "BakerRemoved" - ] - } - } - }, - { - "description": "A baker's stake was increased. This has effect immediately.", - "type": "object", - "required": [ - "account", - "bakerId", - "newStake", - "tag" - ], - "properties": { - "account": { - "$ref": "#/definitions/AccountAddress" - }, - "bakerId": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "newStake": { - "$ref": "#/definitions/CCDAmount" - }, - "tag": { - "type": "string", - "enum": [ - "BakerStakeIncreased" - ] - } - } - }, - { - "description": "A baker's stake was scheduled to be decreased. This will have an effect on the stake after a number of epochs, controlled by the baker cooldown period.", - "type": "object", - "required": [ - "account", - "bakerId", - "newStake", - "tag" - ], - "properties": { - "account": { - "$ref": "#/definitions/AccountAddress" - }, - "bakerId": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "newStake": { - "$ref": "#/definitions/CCDAmount" - }, - "tag": { - "type": "string", - "enum": [ - "BakerStakeDecreased" - ] - } - } - }, - { - "description": "The setting for whether rewards are added to stake immediately or not was changed to the given value.", - "type": "object", - "required": [ - "account", - "bakerId", - "restakeEarnings", - "tag" - ], - "properties": { - "account": { - "$ref": "#/definitions/AccountAddress" - }, - "bakerId": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "restakeEarnings": { - "description": "The new value of the flag.", - "type": "boolean" - }, - "tag": { - "type": "string", - "enum": [ - "BakerSetRestakeEarnings" - ] - } - } - }, - { - "description": "The baker keys were updated. The new keys are listed.", - "type": "object", - "required": [ - "account", - "aggregationKey", - "bakerId", - "electionKey", - "signKey", - "tag" - ], - "properties": { - "account": { - "description": "Account address of the baker.", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "aggregationKey": { - "description": "The new public key for verifying finalization records.", - "allOf": [ - { - "$ref": "#/definitions/BakerAggregationVerifyKey" - } - ] - }, - "bakerId": { - "description": "ID of the baker whose keys were changed.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "electionKey": { - "description": "The new public key for verifying whether the baker won the block lottery.", - "allOf": [ - { - "$ref": "#/definitions/BakerElectionVerifyKey" - } - ] - }, - "signKey": { - "description": "The new public key for verifying block signatures.", - "allOf": [ - { - "$ref": "#/definitions/BakerSignatureVerifyKey" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "BakerKeysUpdated" - ] - } - } - }, - { - "description": "Keys of the given credential were updated.", - "type": "object", - "required": [ - "credId", - "tag" - ], - "properties": { - "credId": { - "$ref": "#/definitions/CredentialRegistrationID" - }, - "tag": { - "type": "string", - "enum": [ - "CredentialKeysUpdated" - ] - } - } - }, - { - "description": "A new encrypted amount was added to the account.", - "type": "object", - "required": [ - "account", - "encryptedAmount", - "newIndex", - "tag" - ], - "properties": { - "account": { - "description": "The account onto which the amount was added.", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "encryptedAmount": { - "description": "The encrypted amount that was added.", - "allOf": [ - { - "$ref": "#/definitions/EncryptedAmount" - } - ] - }, - "newIndex": { - "description": "The index the amount was assigned.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "tag": { - "type": "string", - "enum": [ - "NewEncryptedAmount" - ] - } - } - }, - { - "description": "One or more encrypted amounts were removed from an account as part of a transfer or decryption.", - "type": "object", - "required": [ - "account", - "inputAmount", - "newAmount", - "tag", - "upToIndex" - ], - "properties": { - "account": { - "description": "The affected account.", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "inputAmount": { - "description": "The input encrypted amount that was removed.", - "allOf": [ - { - "$ref": "#/definitions/EncryptedAmount" - } - ] - }, - "newAmount": { - "description": "The new self encrypted amount on the affected account.", - "allOf": [ - { - "$ref": "#/definitions/EncryptedAmount" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "EncryptedAmountsRemoved" - ] - }, - "upToIndex": { - "description": "The index indicating which amounts were used.", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - } - }, - { - "description": "The public balance of the account was increased via a transfer from encrypted to public balance.", - "type": "object", - "required": [ - "account", - "amount", - "tag" - ], - "properties": { - "account": { - "$ref": "#/definitions/AccountAddress" - }, - "amount": { - "$ref": "#/definitions/CCDAmount" - }, - "tag": { - "type": "string", - "enum": [ - "AmountAddedByDecryption" - ] - } - } - }, - { - "description": "The encrypted balance of the account was updated due to transfer from public to encrypted balance of the account.", - "type": "object", - "required": [ - "account", - "amount", - "newAmount", - "tag" - ], - "properties": { - "account": { - "description": "The affected account.", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "amount": { - "description": "The amount that was transferred from public to encrypted balance.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "newAmount": { - "description": "The new self encrypted amount of the account.", - "allOf": [ - { - "$ref": "#/definitions/EncryptedAmount" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "EncryptedSelfAmountAdded" - ] - } - } - }, - { - "description": "An update was enqueued for the given time.", - "type": "object", - "required": [ - "effectiveTime", - "payload", - "tag" - ], - "properties": { - "effectiveTime": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "payload": { - "$ref": "#/definitions/UpdatePayload" - }, - "tag": { - "type": "string", - "enum": [ - "UpdateEnqueued" - ] - } - } - }, - { - "description": "A transfer with schedule was enqueued.", - "type": "object", - "required": [ - "amount", - "from", - "tag", - "to" - ], - "properties": { - "amount": { - "description": "The list of releases. Ordered by increasing timestamp.", - "type": "array", - "items": { - "type": "array", - "items": [ - { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - { - "$ref": "#/definitions/CCDAmount" - } - ], - "maxItems": 2, - "minItems": 2 - } - }, - "from": { - "description": "Sender account.", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "TransferredWithSchedule" - ] - }, - "to": { - "description": "Receiver account.", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - } - } - }, - { - "description": "The credentials of the account were updated. Either added, removed, or both.", - "type": "object", - "required": [ - "account", - "newCredIds", - "newThreshold", - "removedCredIds", - "tag" - ], - "properties": { - "account": { - "description": "The affected account.", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "newCredIds": { - "description": "The credential ids that were added.", - "type": "array", - "items": { - "$ref": "#/definitions/CredentialRegistrationID" - } - }, - "newThreshold": { - "description": "The (possibly) updated account threshold.", - "type": "integer", - "format": "uint8", - "minimum": 1.0 - }, - "removedCredIds": { - "description": "The credentials that were removed.", - "type": "array", - "items": { - "$ref": "#/definitions/CredentialRegistrationID" - } - }, - "tag": { - "type": "string", - "enum": [ - "CredentialsUpdated" - ] - } - } - }, - { - "description": "Data was registered.", - "type": "object", - "required": [ - "data", - "tag" - ], - "properties": { - "data": { - "$ref": "#/definitions/RegisteredData" - }, - "tag": { - "type": "string", - "enum": [ - "DataRegistered" - ] - } - } - }, - { - "description": "Memo", - "type": "object", - "required": [ - "memo", - "tag" - ], - "properties": { - "memo": { - "$ref": "#/definitions/Memo" - }, - "tag": { - "type": "string", - "enum": [ - "TransferMemo" - ] - } - } - }, - { - "description": "A V1 contract was interrupted.", - "type": "object", - "required": [ - "address", - "events", - "tag" - ], - "properties": { - "address": { - "description": "Address of the contract that was interrupted.", - "allOf": [ - { - "$ref": "#/definitions/ContractAddress" - } - ] - }, - "events": { - "description": "Events generated up to the interrupt.", - "type": "array", - "items": { - "$ref": "#/definitions/ContractEvent" - } - }, - "tag": { - "type": "string", - "enum": [ - "Interrupted" - ] - } - } - }, - { - "description": "A V1 contract resumed execution.", - "type": "object", - "required": [ - "address", - "success", - "tag" - ], - "properties": { - "address": { - "description": "Address of the contract that is resuming.", - "allOf": [ - { - "$ref": "#/definitions/ContractAddress" - } - ] - }, - "success": { - "description": "Whether the interrupt succeeded or not.", - "type": "boolean" - }, - "tag": { - "type": "string", - "enum": [ - "Resumed" - ] - } - } - }, - { - "description": "Updated open status for a baker pool", - "type": "object", - "required": [ - "account", - "bakerId", - "openStatus", - "tag" - ], - "properties": { - "account": { - "description": "Baker account", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "bakerId": { - "description": "Baker's id", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "openStatus": { - "description": "The open status.", - "allOf": [ - { - "$ref": "#/definitions/OpenStatus" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "BakerSetOpenStatus" - ] - } - } - }, - { - "description": "Updated metadata url for baker pool", - "type": "object", - "required": [ - "account", - "bakerId", - "metadataURL", - "tag" - ], - "properties": { - "account": { - "description": "Baker account", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "bakerId": { - "description": "Baker's id", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "metadataURL": { - "description": "The URL.", - "type": "string" - }, - "tag": { - "type": "string", - "enum": [ - "BakerSetMetadataURL" - ] - } - } - }, - { - "description": "Updated transaction fee commission for baker pool", - "type": "object", - "required": [ - "account", - "bakerId", - "tag", - "transactionFeeCommission" - ], - "properties": { - "account": { - "description": "Baker account", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "bakerId": { - "description": "Baker's id", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "tag": { - "type": "string", - "enum": [ - "BakerSetTransactionFeeCommission" - ] - }, - "transactionFeeCommission": { - "description": "The transaction fee commission.", - "type": "number" - } - } - }, - { - "description": "Updated baking reward commission for baker pool", - "type": "object", - "required": [ - "account", - "bakerId", - "bakingRewardCommission", - "tag" - ], - "properties": { - "account": { - "description": "Baker account", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "bakerId": { - "description": "Baker's id", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "bakingRewardCommission": { - "description": "The baking reward commission", - "type": "number" - }, - "tag": { - "type": "string", - "enum": [ - "BakerSetBakingRewardCommission" - ] - } - } - }, - { - "description": "Updated finalization reward commission for baker pool", - "type": "object", - "required": [ - "account", - "bakerId", - "finalizationRewardCommission", - "tag" - ], - "properties": { - "account": { - "description": "Baker account", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "bakerId": { - "description": "Baker's id", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "finalizationRewardCommission": { - "description": "The finalization reward commission", - "type": "number" - }, - "tag": { - "type": "string", - "enum": [ - "BakerSetFinalizationRewardCommission" - ] - } - } - }, - { - "type": "object", - "required": [ - "account", - "delegatorId", - "newStake", - "tag" - ], - "properties": { - "account": { - "description": "Delegator account", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "delegatorId": { - "description": "Delegator's id", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "newStake": { - "description": "New stake", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "DelegationStakeIncreased" - ] - } - } - }, - { - "type": "object", - "required": [ - "account", - "delegatorId", - "newStake", - "tag" - ], - "properties": { - "account": { - "description": "Delegator account", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "delegatorId": { - "description": "Delegator's id", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "newStake": { - "description": "New stake", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "DelegationStakeDecreased" - ] - } - } - }, - { - "type": "object", - "required": [ - "account", - "delegatorId", - "restakeEarnings", - "tag" - ], - "properties": { - "account": { - "description": "Delegator account", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "delegatorId": { - "description": "Delegator's id", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "restakeEarnings": { - "description": "Whether earnings will be restaked", - "type": "boolean" - }, - "tag": { - "type": "string", - "enum": [ - "DelegationSetRestakeEarnings" - ] - } - } - }, - { - "type": "object", - "required": [ - "account", - "delegationTarget", - "delegatorId", - "tag" - ], - "properties": { - "account": { - "description": "Delegator account", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "delegationTarget": { - "description": "New delegation target", - "allOf": [ - { - "$ref": "#/definitions/DelegationTarget" - } - ] - }, - "delegatorId": { - "description": "Delegator's id", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "tag": { - "type": "string", - "enum": [ - "DelegationSetDelegationTarget" - ] - } - } - }, - { - "type": "object", - "required": [ - "account", - "delegatorId", - "tag" - ], - "properties": { - "account": { - "description": "Delegator account", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "delegatorId": { - "description": "Delegator's id", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "tag": { - "type": "string", - "enum": [ - "DelegationAdded" - ] - } - } - }, - { - "type": "object", - "required": [ - "account", - "delegatorId", - "tag" - ], - "properties": { - "account": { - "description": "Delegator account", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - }, - "delegatorId": { - "description": "Delegator's id", - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "tag": { - "type": "string", - "enum": [ - "DelegationRemoved" - ] - } - } - } - ] - }, - "ExchangeRate": { - "type": "object", - "required": [ - "denominator", - "numerator" - ], - "properties": { - "denominator": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "numerator": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - } - }, - "GASRewards": { - "description": "The reward fractions related to the gas account and inclusion of special transactions.", - "type": "object", - "required": [ - "accountCreation", - "baker", - "chainUpdate", - "finalizationProof" - ], - "properties": { - "accountCreation": { - "description": "`FeeAccountCreation`: fraction paid for including each account creation transaction in a block.", - "type": "number" - }, - "baker": { - "description": "`BakerPrevTransFrac`: fraction of the previous gas account paid to the baker.", - "type": "number" - }, - "chainUpdate": { - "description": "`FeeUpdate`: fraction paid for including an update transaction in a block.", - "type": "number" - }, - "finalizationProof": { - "description": "`FeeAddFinalisationProof`: fraction paid for including a finalization proof in a block.", - "type": "number" - } - } - }, - "HexString": { - "type": "string", - "minLength": 0, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "HigherLevelAccessStructure_for_Level1KeysKind": { - "description": "Either root, level1, or level 2 access structure. They all have the same structure, keys and a threshold. The phantom type parameter is used for added type safety to distinguish different access structures in different contexts.", - "type": "object", - "required": [ - "keys", - "threshold" - ], - "properties": { - "keys": { - "type": "array", - "items": { - "$ref": "#/definitions/VerifyKey" - } - }, - "threshold": { - "type": "integer", - "format": "uint16", - "minimum": 0.0 - } - } - }, - "HigherLevelAccessStructure_for_RootKeysKind": { - "description": "Either root, level1, or level 2 access structure. They all have the same structure, keys and a threshold. The phantom type parameter is used for added type safety to distinguish different access structures in different contexts.", - "type": "object", - "required": [ - "keys", - "threshold" - ], - "properties": { - "keys": { - "type": "array", - "items": { - "$ref": "#/definitions/VerifyKey" - } - }, - "threshold": { - "type": "integer", - "format": "uint16", - "minimum": 0.0 - } - } - }, - "InclusiveRange_for_Number": { - "type": "object", - "required": [ - "max", - "min" - ], - "properties": { - "max": { - "type": "number" - }, - "min": { - "type": "number" - } - } - }, - "IpInfo_for_HexString": { - "description": "Public information about an identity provider.", - "type": "object", - "required": [ - "ipCdiVerifyKey", - "ipDescription", - "ipIdentity", - "ipVerifyKey" - ], - "properties": { - "ipCdiVerifyKey": { - "description": "Ed public key of the IP", - "allOf": [ - { - "$ref": "#/definitions/PublicKey" - } - ] - }, - "ipDescription": { - "description": "Free form description, e.g., how to contact them off-chain", - "allOf": [ - { - "$ref": "#/definitions/Description" - } - ] - }, - "ipIdentity": { - "description": "Unique identifier of the identity provider.", - "type": "integer", - "format": "uint32", - "minimum": 0.0 - }, - "ipVerifyKey": { - "description": "PS public key of the IP", - "allOf": [ - { - "$ref": "#/definitions/PublicKey" - } - ] - } - } - }, - "Level1Update": { - "description": "An update with level 1 keys of either level 1 or level 2 keys. Each of the updates must be a separate transaction.", - "oneOf": [ - { - "type": "object", - "required": [ - "typeOfUpdate", - "updatePayload" - ], - "properties": { - "typeOfUpdate": { - "type": "string", - "enum": [ - "level1KeysUpdate" - ] - }, - "updatePayload": { - "$ref": "#/definitions/HigherLevelAccessStructure_for_Level1KeysKind" - } - } - }, - { - "type": "object", - "required": [ - "typeOfUpdate", - "updatePayload" - ], - "properties": { - "typeOfUpdate": { - "type": "string", - "enum": [ - "level2KeysUpdate" - ] - }, - "updatePayload": { - "$ref": "#/definitions/AuthorizationsV0" - } - } - }, - { - "type": "object", - "required": [ - "typeOfUpdate", - "updatePayload" - ], - "properties": { - "typeOfUpdate": { - "type": "string", - "enum": [ - "level2KeysUpdateV1" - ] - }, - "updatePayload": { - "$ref": "#/definitions/AuthorizationsV1" - } - } - } - ] - }, - "LeverageFactor": { - "type": "object", - "required": [ - "denominator", - "numerator" - ], - "properties": { - "denominator": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "numerator": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - } - }, - "Memo": { - "type": "string", - "maxLength": 512, - "minLength": 0, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "MintDistributionV0": { - "type": "object", - "required": [ - "bakingReward", - "finalizationReward", - "mintPerSlot" - ], - "properties": { - "bakingReward": { - "type": "number" - }, - "finalizationReward": { - "type": "number" - }, - "mintPerSlot": { - "$ref": "#/definitions/MintRate" - } - } - }, - "MintDistributionV1": { - "type": "object", - "required": [ - "bakingReward", - "finalizationReward" - ], - "properties": { - "bakingReward": { - "type": "number" - }, - "finalizationReward": { - "type": "number" - } - } - }, - "MintRate": { - "type": "number" - }, - "OpenStatus": { - "description": "The status of whether a baking pool allows delegators to join.", - "type": "string", - "enum": [ - "openForAll", - "closedForNew", - "closedForAll" - ] - }, - "Parameter": { - "type": "string", - "maxLength": 2048, - "minLength": 0, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "PoolParameters": { - "description": "Parameters related to staking pools.", - "type": "object", - "required": [ - "bakingCommissionRange", - "capitalBound", - "finalizationCommissionRange", - "leverageBound", - "minimumEquityCapital", - "passiveBakingCommission", - "passiveFinalizationCommission", - "passiveTransactionCommission", - "transactionCommissionRange" - ], - "properties": { - "bakingCommissionRange": { - "description": "The range of allowed baker commissions.", - "allOf": [ - { - "$ref": "#/definitions/InclusiveRange_for_Number" - } - ] - }, - "capitalBound": { - "description": "Maximum fraction of the total staked capital of that a new baker can have.", - "type": "number" - }, - "finalizationCommissionRange": { - "description": "The range of allowed finalization commissions.", - "allOf": [ - { - "$ref": "#/definitions/InclusiveRange_for_Number" - } - ] - }, - "leverageBound": { - "description": "The maximum leverage that a baker can have as a ratio of total stake to equity capital.", - "allOf": [ - { - "$ref": "#/definitions/LeverageFactor" - } - ] - }, - "minimumEquityCapital": { - "description": "Minimum equity capital required for a new baker.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "passiveBakingCommission": { - "description": "Fraction of baking rewards charged by the passive delegation.", - "type": "number" - }, - "passiveFinalizationCommission": { - "description": "Fraction of finalization rewards charged by the passive delegation.", - "type": "number" - }, - "passiveTransactionCommission": { - "description": "Fraction of transaction rewards charged by the L-pool.", - "type": "number" - }, - "transactionCommissionRange": { - "description": "The range of allowed transaction commissions.", - "allOf": [ - { - "$ref": "#/definitions/InclusiveRange_for_Number" - } - ] - } - } - }, - "ProtocolUpdate": { - "description": "A generic protocol update. This is essentially an announcement of the update. The details of the update will be communicated in some off-chain way, and bakers will need to update their node software to support the update.", - "type": "object", - "required": [ - "message", - "specificationAuxiliaryData", - "specificationHash", - "specificationURL" - ], - "properties": { - "message": { - "type": "string" - }, - "specificationAuxiliaryData": { - "$ref": "#/definitions/HexString" - }, - "specificationHash": { - "$ref": "#/definitions/SHA256Hash" - }, - "specificationURL": { - "type": "string" - } - } - }, - "PublicKey": { - "type": "string", - "minLength": 64, - "pattern": "^([0-9]?[a-f]?)*$" - }, - "RegisteredData": { - "type": "string", - "maxLength": 512, - "minLength": 0, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "RejectReason": { - "description": "A reason for why a transaction was rejected. Rejected means included in a block, but the desired action was not achieved. The only effect of a rejected transaction is payment.\n\nNOTE: Some of the variant definitions can look peculiar, but they are made to be compatible with the serialization of the Haskell datatype.", - "oneOf": [ - { - "description": "Error raised when validating the Wasm module.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "ModuleNotWF" - ] - } - } - }, - { - "description": "As the name says.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/SHA256Hash" - }, - "tag": { - "type": "string", - "enum": [ - "ModuleHashAlreadyExists" - ] - } - } - }, - { - "description": "Account does not exist.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/AccountAddress" - }, - "tag": { - "type": "string", - "enum": [ - "InvalidAccountReference" - ] - } - } - }, - { - "description": "Reference to a non-existing contract init method.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "type": "array", - "items": [ - { - "$ref": "#/definitions/SHA256Hash" - }, - { - "type": "string" - } - ], - "maxItems": 2, - "minItems": 2 - }, - "tag": { - "type": "string", - "enum": [ - "InvalidInitMethod" - ] - } - } - }, - { - "description": "Reference to a non-existing contract receive method.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "type": "array", - "items": [ - { - "$ref": "#/definitions/SHA256Hash" - }, - { - "type": "string" - } - ], - "maxItems": 2, - "minItems": 2 - }, - "tag": { - "type": "string", - "enum": [ - "InvalidReceiveMethod" - ] - } - } - }, - { - "description": "Reference to a non-existing module.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/SHA256Hash" - }, - "tag": { - "type": "string", - "enum": [ - "InvalidModuleReference" - ] - } - } - }, - { - "description": "Contract instance does not exist.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/ContractAddress" - }, - "tag": { - "type": "string", - "enum": [ - "InvalidContractAddress" - ] - } - } - }, - { - "description": "Runtime exception occurred when running either the init or receive method.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "RuntimeFailure" - ] - } - } - }, - { - "description": "When one wishes to transfer an amount from A to B but there are not enough funds on account/contract A to make this possible. The data are the from address and the amount to transfer.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "type": "array", - "items": [ - { - "$ref": "#/definitions/Address" - }, - { - "$ref": "#/definitions/CCDAmount" - } - ], - "maxItems": 2, - "minItems": 2 - }, - "tag": { - "type": "string", - "enum": [ - "AmountTooLarge" - ] - } - } - }, - { - "description": "Serialization of the body failed.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "SerializationFailure" - ] - } - } - }, - { - "description": "We ran of out energy to process this transaction.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "OutOfEnergy" - ] - } - } - }, - { - "description": "Rejected due to contract logic in init function of a contract.", - "type": "object", - "required": [ - "rejectReason", - "tag" - ], - "properties": { - "rejectReason": { - "type": "integer", - "format": "int32" - }, - "tag": { - "type": "string", - "enum": [ - "RejectedInit" - ] - } - } - }, - { - "type": "object", - "required": [ - "contractAddress", - "parameter", - "receiveName", - "rejectReason", - "tag" - ], - "properties": { - "contractAddress": { - "$ref": "#/definitions/ContractAddress" - }, - "parameter": { - "$ref": "#/definitions/Parameter" - }, - "receiveName": { - "type": "string" - }, - "rejectReason": { - "type": "integer", - "format": "int32" - }, - "tag": { - "type": "string", - "enum": [ - "RejectedReceive" - ] - } - } - }, - { - "description": "Reward account desired by the baker does not exist.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/AccountAddress" - }, - "tag": { - "type": "string", - "enum": [ - "NonExistentRewardAccount" - ] - } - } - }, - { - "description": "Proof that the baker owns relevant private keys is not valid.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InvalidProof" - ] - } - } - }, - { - "description": "Tried to add baker for an account that already has a baker", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "tag": { - "type": "string", - "enum": [ - "AlreadyABaker" - ] - } - } - }, - { - "description": "Tried to remove a baker for an account that has no baker", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/AccountAddress" - }, - "tag": { - "type": "string", - "enum": [ - "NotABaker" - ] - } - } - }, - { - "description": "The amount on the account was insufficient to cover the proposed stake", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InsufficientBalanceForBakerStake" - ] - } - } - }, - { - "description": "The amount provided is under the threshold required for becoming a baker", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "StakeUnderMinimumThresholdForBaking" - ] - } - } - }, - { - "description": "The change could not be made because the baker is in cooldown for another change", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "BakerInCooldown" - ] - } - } - }, - { - "description": "A baker with the given aggregation key already exists", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/BakerAggregationVerifyKey" - }, - "tag": { - "type": "string", - "enum": [ - "DuplicateAggregationKey" - ] - } - } - }, - { - "description": "Encountered credential ID that does not exist", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "NonExistentCredentialID" - ] - } - } - }, - { - "description": "Attempted to add an account key to a key index already in use", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "KeyIndexAlreadyInUse" - ] - } - } - }, - { - "description": "When the account threshold is updated, it must not exceed the amount of existing keys", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InvalidAccountThreshold" - ] - } - } - }, - { - "description": "When the credential key threshold is updated, it must not exceed the amount of existing keys", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InvalidCredentialKeySignThreshold" - ] - } - } - }, - { - "description": "Proof for an encrypted amount transfer did not validate.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InvalidEncryptedAmountTransferProof" - ] - } - } - }, - { - "description": "Proof for a secret to public transfer did not validate.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InvalidTransferToPublicProof" - ] - } - } - }, - { - "description": "Account tried to transfer an encrypted amount to itself, that's not allowed.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/AccountAddress" - }, - "tag": { - "type": "string", - "enum": [ - "EncryptedAmountSelfTransfer" - ] - } - } - }, - { - "description": "The provided index is below the start index or above `startIndex + length incomingAmounts`", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InvalidIndexOnEncryptedTransfer" - ] - } - } - }, - { - "description": "The transfer with schedule is going to send 0 tokens", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "ZeroScheduledAmount" - ] - } - } - }, - { - "description": "The transfer with schedule has a non strictly increasing schedule", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "NonIncreasingSchedule" - ] - } - } - }, - { - "description": "The first scheduled release in a transfer with schedule has already expired", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "FirstScheduledReleaseExpired" - ] - } - } - }, - { - "description": "Account tried to transfer with schedule to itself, that's not allowed.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/AccountAddress" - }, - "tag": { - "type": "string", - "enum": [ - "ScheduledSelfTransfer" - ] - } - } - }, - { - "description": "At least one of the credentials was either malformed or its proof was incorrect.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InvalidCredentials" - ] - } - } - }, - { - "description": "Some of the credential IDs already exist or are duplicated in the transaction.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "type": "array", - "items": { - "$ref": "#/definitions/CredentialRegistrationID" - } - }, - "tag": { - "type": "string", - "enum": [ - "DuplicateCredIDs" - ] - } - } - }, - { - "description": "A credential id that was to be removed is not part of the account.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "type": "array", - "items": { - "$ref": "#/definitions/CredentialRegistrationID" - } - }, - "tag": { - "type": "string", - "enum": [ - "NonExistentCredIDs" - ] - } - } - }, - { - "description": "Attemp to remove the first credential", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "RemoveFirstCredential" - ] - } - } - }, - { - "description": "The credential holder of the keys to be updated did not sign the transaction", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "CredentialHolderDidNotSign" - ] - } - } - }, - { - "description": "Account is not allowed to have multiple credentials because it contains a non-zero encrypted transfer.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "NotAllowedMultipleCredentials" - ] - } - } - }, - { - "description": "The account is not allowed to receive encrypted transfers because it has multiple credentials.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "NotAllowedToReceiveEncrypted" - ] - } - } - }, - { - "description": "The account is not allowed to send encrypted transfers (or transfer from/to public to/from encrypted)", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "NotAllowedToHandleEncrypted" - ] - } - } - }, - { - "description": "A configure baker transaction is missing one or more arguments in order to add a baker.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "MissingBakerAddParameters" - ] - } - } - }, - { - "description": "Finalization reward commission is not in the valid range for a baker", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "FinalizationRewardCommissionNotInRange" - ] - } - } - }, - { - "description": "Baking reward commission is not in the valid range for a baker", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "BakingRewardCommissionNotInRange" - ] - } - } - }, - { - "description": "Transaction fee commission is not in the valid range for a baker", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "TransactionFeeCommissionNotInRange" - ] - } - } - }, - { - "description": "Tried to add baker for an account that already has a delegator.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "AlreadyADelegator" - ] - } - } - }, - { - "description": "The amount on the account was insufficient to cover the proposed stake.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InsufficientBalanceForDelegationStake" - ] - } - } - }, - { - "description": "A configure delegation transaction is missing one or more arguments in order to add a delegator.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "MissingDelegationAddParameters" - ] - } - } - }, - { - "description": "Delegation stake when adding a delegator was 0.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InsufficientDelegationStake" - ] - } - } - }, - { - "description": "Account is not a delegation account.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "DelegatorInCooldown" - ] - } - } - }, - { - "description": "Account is not a delegation account.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/AccountAddress" - }, - "tag": { - "type": "string", - "enum": [ - "NotADelegator" - ] - } - } - }, - { - "description": "Delegation target is not a baker", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "tag": { - "type": "string", - "enum": [ - "DelegationTargetNotABaker" - ] - } - } - }, - { - "description": "The amount would result in pool capital higher than the maximum threshold.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "StakeOverMaximumThresholdForPool" - ] - } - } - }, - { - "description": "The amount would result in pool with a too high fraction of delegated capital.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "PoolWouldBecomeOverDelegated" - ] - } - } - }, - { - "description": "The pool is not open to delegators.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "PoolClosed" - ] - } - } - } - ] - }, - "RootUpdate": { - "description": "An update with root keys of some other set of governance keys, or the root keys themselves. Each update is a separate transaction.", - "oneOf": [ - { - "type": "object", - "required": [ - "typeOfUpdate", - "updatePayload" - ], - "properties": { - "typeOfUpdate": { - "type": "string", - "enum": [ - "rootKeysUpdate" - ] - }, - "updatePayload": { - "$ref": "#/definitions/HigherLevelAccessStructure_for_RootKeysKind" - } - } - }, - { - "type": "object", - "required": [ - "typeOfUpdate", - "updatePayload" - ], - "properties": { - "typeOfUpdate": { - "type": "string", - "enum": [ - "level1KeysUpdate" - ] - }, - "updatePayload": { - "$ref": "#/definitions/HigherLevelAccessStructure_for_Level1KeysKind" - } - } - }, - { - "type": "object", - "required": [ - "typeOfUpdate", - "updatePayload" - ], - "properties": { - "typeOfUpdate": { - "type": "string", - "enum": [ - "level2KeysUpdate" - ] - }, - "updatePayload": { - "$ref": "#/definitions/AuthorizationsV0" - } - } - }, - { - "type": "object", - "required": [ - "typeOfUpdate", - "updatePayload" - ], - "properties": { - "typeOfUpdate": { - "type": "string", - "enum": [ - "level2KeysUpdateV1" - ] - }, - "updatePayload": { - "$ref": "#/definitions/AuthorizationsV1" - } - } - } - ] - }, - "SHA256Hash": { - "type": "string", - "maxLength": 64, - "minLength": 64, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "TimeParameters": { - "description": "The time parameters are introduced as of protocol version 4, and consist of the reward period length and the mint rate per payday. These are coupled as a change to either affects the overall rate of minting.", - "type": "object", - "required": [ - "mintPerPayday", - "rewardPeriodLength" - ], - "properties": { - "mintPerPayday": { - "$ref": "#/definitions/MintRate" - }, - "rewardPeriodLength": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - } - }, - "TransactionFeeDistribution": { - "description": "Update the transaction fee distribution to the specified value.", - "type": "object", - "required": [ - "baker", - "gasAccount" - ], - "properties": { - "baker": { - "description": "The fraction that goes to the baker of the block.", - "type": "number" - }, - "gasAccount": { - "description": "The fraction that goes to the gas account. The remaining fraction will go to the foundation.", - "type": "number" - } - } - }, - "TransactionStatusInBlock": { - "description": "Status of a transaction in a given block. NB: If the transaction is committed or finalized, but not in the given block, then the API response will be `QueryError::NotFound`, hence those cases are not covered by this type.", - "oneOf": [ - { - "description": "Transaction is received, but is not in any blocks.", - "type": "object", - "required": [ - "status" - ], - "properties": { - "status": { - "type": "string", - "enum": [ - "received" - ] - } - } - }, - { - "description": "Transaction is finalized in a block, with the given outcome.", - "type": "object", - "required": [ - "result", - "status" - ], - "properties": { - "result": { - "$ref": "#/definitions/BlockItemSummary" - }, - "status": { - "type": "string", - "enum": [ - "finalized" - ] - } - } - }, - { - "description": "Transaction is committed, but not yet finalized in a block, with the given outcome.", - "type": "object", - "required": [ - "result", - "status" - ], - "properties": { - "result": { - "$ref": "#/definitions/BlockItemSummary" - }, - "status": { - "type": "string", - "enum": [ - "committed" - ] - } - } - } - ] - }, - "TransactionType": { - "description": "Types of account transactions.", - "type": "string", - "enum": [ - "deployModule", - "initContract", - "update", - "transfer", - "addBaker", - "removeBaker", - "updateBakerStake", - "updateBakerRestakeEarnings", - "updateBakerKeys", - "updateCredentialKeys", - "encryptedAmountTransfer", - "transferToEncrypted", - "transferToPublic", - "transferWithSchedule", - "updateCredentials", - "registerData", - "transferWithMemo", - "encryptedAmountTransferWithMemo", - "transferWithScheduleAndMemo", - "configureBaker", - "configureDelegation" - ] - }, - "UpdatePayload": { - "description": "The type of an update payload.", - "oneOf": [ - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/ProtocolUpdate" - }, - "updateType": { - "type": "string", - "enum": [ - "protocol" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "type": "number" - }, - "updateType": { - "type": "string", - "enum": [ - "electionDifficulty" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/ExchangeRate" - }, - "updateType": { - "type": "string", - "enum": [ - "euroPerEnergy" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/ExchangeRate" - }, - "updateType": { - "type": "string", - "enum": [ - "microGTUPerEuro" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/AccountAddress" - }, - "updateType": { - "type": "string", - "enum": [ - "foundationAccount" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/MintDistributionV0" - }, - "updateType": { - "type": "string", - "enum": [ - "mintDistribution" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/TransactionFeeDistribution" - }, - "updateType": { - "type": "string", - "enum": [ - "transactionFeeDistribution" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/GASRewards" - }, - "updateType": { - "type": "string", - "enum": [ - "gASRewards" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/BakerParameters" - }, - "updateType": { - "type": "string", - "enum": [ - "bakerStakeThreshold" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/RootUpdate" - }, - "updateType": { - "type": "string", - "enum": [ - "root" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/Level1Update" - }, - "updateType": { - "type": "string", - "enum": [ - "level1" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/ArInfo_for_HexString" - }, - "updateType": { - "type": "string", - "enum": [ - "addAnonymityRevoker" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/IpInfo_for_HexString" - }, - "updateType": { - "type": "string", - "enum": [ - "addIdentityProvider" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/CooldownParameters" - }, - "updateType": { - "type": "string", - "enum": [ - "cooldownParametersCPV1" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/PoolParameters" - }, - "updateType": { - "type": "string", - "enum": [ - "poolParametersCPV1" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/TimeParameters" - }, - "updateType": { - "type": "string", - "enum": [ - "timeParametersCPV1" - ] - } - } - }, - { - "type": "object", - "required": [ - "update", - "updateType" - ], - "properties": { - "update": { - "$ref": "#/definitions/MintDistributionV1" - }, - "updateType": { - "type": "string", - "enum": [ - "mintDistributionCPV1" - ] - } - } - } - ] - }, - "UpdateType": { - "description": "Enumeration of the types of updates that are possible.", - "type": "string", - "enum": [ - "updateProtocol", - "updateElectionDifficulty", - "updateEuroPerEnergy", - "updateMicroGTUPerEuro", - "updateFoundationAccount", - "updateMintDistribution", - "updateTransactionFeeDistribution", - "updateGASRewards", - "updateAddAnonymityRevoker", - "updateAddIdentityProvider", - "updateRootKeys", - "updateLevel1Keys", - "updateLevel2Keys", - "updatePoolParameters", - "updateCooldownParameters", - "updateTimeParameters" - ] - }, - "VerifyKey": { - "type": "object", - "properties": { - "schemeId": { - "type": "string" - }, - "verifyKey": { - "type": "string", - "maxLength": 64, - "minLength": 64, - "pattern": "^(([0-9]?[a-f]?){2})*$" - } - } - }, - "WasmVersion": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 - } - } -} \ No newline at end of file diff --git a/source/mainnet/net/references/grpc-json-schemas/InvokeContract.json b/source/mainnet/net/references/grpc-json-schemas/InvokeContract.json deleted file mode 100644 index ed037a243b..0000000000 --- a/source/mainnet/net/references/grpc-json-schemas/InvokeContract.json +++ /dev/null @@ -1,1345 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Nullable_InvokeContractResult", - "anyOf": [ - { - "$ref": "#/definitions/InvokeContractResult" - }, - { - "type": "null" - } - ], - "definitions": { - "AccountAddress": { - "type": "string", - "maxLength": 50, - "minLength": 50, - "pattern": "^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]*" - }, - "Address": { - "description": "Either an account or contract address. Some operations are allowed on both types of items, hence the need for this type.", - "oneOf": [ - { - "type": "object", - "required": [ - "address", - "type" - ], - "properties": { - "address": { - "$ref": "#/definitions/AccountAddress" - }, - "type": { - "type": "string", - "enum": [ - "AddressAccount" - ] - } - } - }, - { - "type": "object", - "required": [ - "address", - "type" - ], - "properties": { - "address": { - "$ref": "#/definitions/ContractAddress" - }, - "type": { - "type": "string", - "enum": [ - "AddressContract" - ] - } - } - } - ] - }, - "BakerAggregationVerifyKey": { - "type": "string", - "maxLength": 192, - "minLength": 192, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "CCDAmount": { - "type": "string", - "maxLength": 20, - "minLength": 1, - "pattern": "^([0-9])*" - }, - "ContractAddress": { - "type": "object", - "required": [ - "index", - "subindex" - ], - "properties": { - "index": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "subindex": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - } - }, - "ContractEvent": { - "type": "string", - "maxLength": 1024, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "ContractTraceElement": { - "description": "A successful contract invocation produces a sequence of effects on smart contracts and possibly accounts (if any contract transfers CCD to an account).", - "oneOf": [ - { - "description": "A contract instance was updated.", - "type": "object", - "required": [ - "Updated" - ], - "properties": { - "Updated": { - "type": "object", - "required": [ - "data" - ], - "properties": { - "data": { - "$ref": "#/definitions/InstanceUpdatedEvent" - } - } - } - }, - "additionalProperties": false - }, - { - "description": "A contract transferred am amount to the account,", - "type": "object", - "required": [ - "Transferred" - ], - "properties": { - "Transferred": { - "type": "object", - "required": [ - "amount", - "from", - "to" - ], - "properties": { - "amount": { - "description": "Amount transferred.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "from": { - "description": "Sender contract.", - "allOf": [ - { - "$ref": "#/definitions/ContractAddress" - } - ] - }, - "to": { - "description": "Receiver account.", - "allOf": [ - { - "$ref": "#/definitions/AccountAddress" - } - ] - } - } - } - }, - "additionalProperties": false - }, - { - "type": "object", - "required": [ - "Interrupted" - ], - "properties": { - "Interrupted": { - "type": "object", - "required": [ - "address", - "events" - ], - "properties": { - "address": { - "$ref": "#/definitions/ContractAddress" - }, - "events": { - "type": "array", - "items": { - "$ref": "#/definitions/ContractEvent" - } - } - } - } - }, - "additionalProperties": false - }, - { - "type": "object", - "required": [ - "Resumed" - ], - "properties": { - "Resumed": { - "type": "object", - "required": [ - "address", - "success" - ], - "properties": { - "address": { - "$ref": "#/definitions/ContractAddress" - }, - "success": { - "type": "boolean" - } - } - } - }, - "additionalProperties": false - } - ] - }, - "CredentialRegistrationID": { - "type": "string", - "maxLength": 96, - "minLength": 96, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "HexString": { - "type": "string", - "minLength": 0, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "InstanceUpdatedEvent": { - "description": "Data generated as part of updating a single contract instance. In general a single [Update](transactions::Payload::Update) transaction will generate one or more of these events, together with possibly some transfers.", - "type": "object", - "required": [ - "address", - "amount", - "events", - "instigator", - "message", - "receiveName" - ], - "properties": { - "address": { - "description": "Address of the affected instance.", - "allOf": [ - { - "$ref": "#/definitions/ContractAddress" - } - ] - }, - "amount": { - "description": "The amount the method was invoked with.", - "allOf": [ - { - "$ref": "#/definitions/CCDAmount" - } - ] - }, - "contractVersion": { - "default": 0, - "allOf": [ - { - "$ref": "#/definitions/WasmVersion" - } - ] - }, - "events": { - "description": "Any contract events that might have been generated by the contract execution.", - "type": "array", - "items": { - "$ref": "#/definitions/ContractEvent" - } - }, - "instigator": { - "description": "The origin of the message to the smart contract. This can be either an account or a smart contract.", - "allOf": [ - { - "$ref": "#/definitions/Address" - } - ] - }, - "message": { - "description": "The message passed to method.", - "allOf": [ - { - "$ref": "#/definitions/Parameter" - } - ] - }, - "receiveName": { - "description": "The name of the method that was executed.", - "type": "string" - } - } - }, - "InvokeContractResult": { - "oneOf": [ - { - "type": "object", - "required": [ - "events", - "tag", - "usedEnergy" - ], - "properties": { - "events": { - "type": "array", - "items": { - "$ref": "#/definitions/ContractTraceElement" - } - }, - "returnValue": { - "anyOf": [ - { - "$ref": "#/definitions/HexString" - }, - { - "type": "null" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "success" - ] - }, - "usedEnergy": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - } - }, - { - "type": "object", - "required": [ - "reason", - "tag", - "usedEnergy" - ], - "properties": { - "reason": { - "$ref": "#/definitions/RejectReason" - }, - "returnValue": { - "anyOf": [ - { - "$ref": "#/definitions/HexString" - }, - { - "type": "null" - } - ] - }, - "tag": { - "type": "string", - "enum": [ - "failure" - ] - }, - "usedEnergy": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - } - } - ] - }, - "Parameter": { - "type": "string", - "maxLength": 2048, - "minLength": 0, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "RejectReason": { - "description": "A reason for why a transaction was rejected. Rejected means included in a block, but the desired action was not achieved. The only effect of a rejected transaction is payment.\n\nNOTE: Some of the variant definitions can look peculiar, but they are made to be compatible with the serialization of the Haskell datatype.", - "oneOf": [ - { - "description": "Error raised when validating the Wasm module.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "ModuleNotWF" - ] - } - } - }, - { - "description": "As the name says.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/SHA256Hash" - }, - "tag": { - "type": "string", - "enum": [ - "ModuleHashAlreadyExists" - ] - } - } - }, - { - "description": "Account does not exist.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/AccountAddress" - }, - "tag": { - "type": "string", - "enum": [ - "InvalidAccountReference" - ] - } - } - }, - { - "description": "Reference to a non-existing contract init method.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "type": "array", - "items": [ - { - "$ref": "#/definitions/SHA256Hash" - }, - { - "type": "string" - } - ], - "maxItems": 2, - "minItems": 2 - }, - "tag": { - "type": "string", - "enum": [ - "InvalidInitMethod" - ] - } - } - }, - { - "description": "Reference to a non-existing contract receive method.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "type": "array", - "items": [ - { - "$ref": "#/definitions/SHA256Hash" - }, - { - "type": "string" - } - ], - "maxItems": 2, - "minItems": 2 - }, - "tag": { - "type": "string", - "enum": [ - "InvalidReceiveMethod" - ] - } - } - }, - { - "description": "Reference to a non-existing module.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/SHA256Hash" - }, - "tag": { - "type": "string", - "enum": [ - "InvalidModuleReference" - ] - } - } - }, - { - "description": "Contract instance does not exist.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/ContractAddress" - }, - "tag": { - "type": "string", - "enum": [ - "InvalidContractAddress" - ] - } - } - }, - { - "description": "Runtime exception occurred when running either the init or receive method.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "RuntimeFailure" - ] - } - } - }, - { - "description": "When one wishes to transfer an amount from A to B but there are not enough funds on account/contract A to make this possible. The data are the from address and the amount to transfer.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "type": "array", - "items": [ - { - "$ref": "#/definitions/Address" - }, - { - "$ref": "#/definitions/CCDAmount" - } - ], - "maxItems": 2, - "minItems": 2 - }, - "tag": { - "type": "string", - "enum": [ - "AmountTooLarge" - ] - } - } - }, - { - "description": "Serialization of the body failed.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "SerializationFailure" - ] - } - } - }, - { - "description": "We ran of out energy to process this transaction.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "OutOfEnergy" - ] - } - } - }, - { - "description": "Rejected due to contract logic in init function of a contract.", - "type": "object", - "required": [ - "rejectReason", - "tag" - ], - "properties": { - "rejectReason": { - "type": "integer", - "format": "int32" - }, - "tag": { - "type": "string", - "enum": [ - "RejectedInit" - ] - } - } - }, - { - "type": "object", - "required": [ - "contractAddress", - "parameter", - "receiveName", - "rejectReason", - "tag" - ], - "properties": { - "contractAddress": { - "$ref": "#/definitions/ContractAddress" - }, - "parameter": { - "$ref": "#/definitions/Parameter" - }, - "receiveName": { - "type": "string" - }, - "rejectReason": { - "type": "integer", - "format": "int32" - }, - "tag": { - "type": "string", - "enum": [ - "RejectedReceive" - ] - } - } - }, - { - "description": "Reward account desired by the baker does not exist.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/AccountAddress" - }, - "tag": { - "type": "string", - "enum": [ - "NonExistentRewardAccount" - ] - } - } - }, - { - "description": "Proof that the baker owns relevant private keys is not valid.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InvalidProof" - ] - } - } - }, - { - "description": "Tried to add baker for an account that already has a baker", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "tag": { - "type": "string", - "enum": [ - "AlreadyABaker" - ] - } - } - }, - { - "description": "Tried to remove a baker for an account that has no baker", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/AccountAddress" - }, - "tag": { - "type": "string", - "enum": [ - "NotABaker" - ] - } - } - }, - { - "description": "The amount on the account was insufficient to cover the proposed stake", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InsufficientBalanceForBakerStake" - ] - } - } - }, - { - "description": "The amount provided is under the threshold required for becoming a baker", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "StakeUnderMinimumThresholdForBaking" - ] - } - } - }, - { - "description": "The change could not be made because the baker is in cooldown for another change", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "BakerInCooldown" - ] - } - } - }, - { - "description": "A baker with the given aggregation key already exists", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/BakerAggregationVerifyKey" - }, - "tag": { - "type": "string", - "enum": [ - "DuplicateAggregationKey" - ] - } - } - }, - { - "description": "Encountered credential ID that does not exist", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "NonExistentCredentialID" - ] - } - } - }, - { - "description": "Attempted to add an account key to a key index already in use", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "KeyIndexAlreadyInUse" - ] - } - } - }, - { - "description": "When the account threshold is updated, it must not exceed the amount of existing keys", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InvalidAccountThreshold" - ] - } - } - }, - { - "description": "When the credential key threshold is updated, it must not exceed the amount of existing keys", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InvalidCredentialKeySignThreshold" - ] - } - } - }, - { - "description": "Proof for an encrypted amount transfer did not validate.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InvalidEncryptedAmountTransferProof" - ] - } - } - }, - { - "description": "Proof for a secret to public transfer did not validate.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InvalidTransferToPublicProof" - ] - } - } - }, - { - "description": "Account tried to transfer an encrypted amount to itself, that's not allowed.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/AccountAddress" - }, - "tag": { - "type": "string", - "enum": [ - "EncryptedAmountSelfTransfer" - ] - } - } - }, - { - "description": "The provided index is below the start index or above `startIndex + length incomingAmounts`", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InvalidIndexOnEncryptedTransfer" - ] - } - } - }, - { - "description": "The transfer with schedule is going to send 0 tokens", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "ZeroScheduledAmount" - ] - } - } - }, - { - "description": "The transfer with schedule has a non strictly increasing schedule", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "NonIncreasingSchedule" - ] - } - } - }, - { - "description": "The first scheduled release in a transfer with schedule has already expired", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "FirstScheduledReleaseExpired" - ] - } - } - }, - { - "description": "Account tried to transfer with schedule to itself, that's not allowed.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/AccountAddress" - }, - "tag": { - "type": "string", - "enum": [ - "ScheduledSelfTransfer" - ] - } - } - }, - { - "description": "At least one of the credentials was either malformed or its proof was incorrect.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InvalidCredentials" - ] - } - } - }, - { - "description": "Some of the credential IDs already exist or are duplicated in the transaction.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "type": "array", - "items": { - "$ref": "#/definitions/CredentialRegistrationID" - } - }, - "tag": { - "type": "string", - "enum": [ - "DuplicateCredIDs" - ] - } - } - }, - { - "description": "A credential id that was to be removed is not part of the account.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "type": "array", - "items": { - "$ref": "#/definitions/CredentialRegistrationID" - } - }, - "tag": { - "type": "string", - "enum": [ - "NonExistentCredIDs" - ] - } - } - }, - { - "description": "Attemp to remove the first credential", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "RemoveFirstCredential" - ] - } - } - }, - { - "description": "The credential holder of the keys to be updated did not sign the transaction", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "CredentialHolderDidNotSign" - ] - } - } - }, - { - "description": "Account is not allowed to have multiple credentials because it contains a non-zero encrypted transfer.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "NotAllowedMultipleCredentials" - ] - } - } - }, - { - "description": "The account is not allowed to receive encrypted transfers because it has multiple credentials.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "NotAllowedToReceiveEncrypted" - ] - } - } - }, - { - "description": "The account is not allowed to send encrypted transfers (or transfer from/to public to/from encrypted)", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "NotAllowedToHandleEncrypted" - ] - } - } - }, - { - "description": "A configure baker transaction is missing one or more arguments in order to add a baker.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "MissingBakerAddParameters" - ] - } - } - }, - { - "description": "Finalization reward commission is not in the valid range for a baker", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "FinalizationRewardCommissionNotInRange" - ] - } - } - }, - { - "description": "Baking reward commission is not in the valid range for a baker", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "BakingRewardCommissionNotInRange" - ] - } - } - }, - { - "description": "Transaction fee commission is not in the valid range for a baker", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "TransactionFeeCommissionNotInRange" - ] - } - } - }, - { - "description": "Tried to add baker for an account that already has a delegator.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "AlreadyADelegator" - ] - } - } - }, - { - "description": "The amount on the account was insufficient to cover the proposed stake.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InsufficientBalanceForDelegationStake" - ] - } - } - }, - { - "description": "A configure delegation transaction is missing one or more arguments in order to add a delegator.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "MissingDelegationAddParameters" - ] - } - } - }, - { - "description": "Delegation stake when adding a delegator was 0.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "InsufficientDelegationStake" - ] - } - } - }, - { - "description": "Account is not a delegation account.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "DelegatorInCooldown" - ] - } - } - }, - { - "description": "Account is not a delegation account.", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "$ref": "#/definitions/AccountAddress" - }, - "tag": { - "type": "string", - "enum": [ - "NotADelegator" - ] - } - } - }, - { - "description": "Delegation target is not a baker", - "type": "object", - "required": [ - "contents", - "tag" - ], - "properties": { - "contents": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "tag": { - "type": "string", - "enum": [ - "DelegationTargetNotABaker" - ] - } - } - }, - { - "description": "The amount would result in pool capital higher than the maximum threshold.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "StakeOverMaximumThresholdForPool" - ] - } - } - }, - { - "description": "The amount would result in pool with a too high fraction of delegated capital.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "PoolWouldBecomeOverDelegated" - ] - } - } - }, - { - "description": "The pool is not open to delegators.", - "type": "object", - "required": [ - "tag" - ], - "properties": { - "tag": { - "type": "string", - "enum": [ - "PoolClosed" - ] - } - } - } - ] - }, - "SHA256Hash": { - "type": "string", - "maxLength": 64, - "minLength": 64, - "pattern": "^(([0-9]?[a-f]?){2})*$" - }, - "WasmVersion": { - "type": "integer", - "format": "uint8", - "minimum": 0.0 - } - } -} \ No newline at end of file diff --git a/source/mainnet/net/references/grpc.rst b/source/mainnet/net/references/grpc.rst deleted file mode 100644 index 7c0af777ae..0000000000 --- a/source/mainnet/net/references/grpc.rst +++ /dev/null @@ -1,932 +0,0 @@ -.. _grpc-documentation: - -==================== - gRPC documentation -==================== - -The Concordium node has a `gRPC `_ interface that enables -queries, sending of transactions, and more. -While the gRPC interface is powerful, it is not the most convenient tool. -Concordium provides a number of SDKs that build on top of the gRPC interface, which are -much more ergonomic to use. - -The SDKs currently provided are: - -- `Concordium Rust SDK `_ -- `Concordium Javascript (Node / Web) SDK `_ -- `Concordium Java SDK `_ -- `Concordium .NET (C#) SDK `_ -- `Concordium Rosetta SDK `_ - -The gRPC interface uses a mixture of protobuf-defined types and JSON. For the -JSON types, a `JSON Schema `_ is provided. -The protobuf types are defined in `the protobuf file defining the gRPC interface -`_. - -For the JSON schemas, you may find these two tools useful: - -- `JSON Schema Faker `_: Generates fake data - that conforms to the provided schema. -- `JSON Schema Validator `_: Validates - whether the JSON input follows the provided schema. - - -Notation -======== - -This page uses the following notation: - -- ``?a`` means ``a`` OR ``null``. - - - Queries that return ``?a`` will only do so if the input is malformed or - refers to non-existent data, for example a ``BlockHash`` for a block that - doesn't exist on the chain. - -- ``[a]`` means a list of type ``a``. -- JSON Schemas follow the `JSON Schema (Draft 7) `_. -- Protobuf code follow the `Protocol Buffers Version 3 Language Specification `_. -- ``Foo ::= (n: UInt16) (bars: Byteⁿ)`` - - - Denotes the serialization of the type ``Foo``, which starts with an unsigned - 16-bit big-endian integer, ``n``, which describes the number of bytes used to represent - ``bars``. So if ``n == 100``, then ``bars`` is represented with ``100`` bytes. - -Transactions -============ - -.. _grpc-send-transaction: - -.. function:: SendTransaction(network_id: Int32, payload: [Byte]) -> Bool - - Send a transaction to the given network. - The node will do basic transaction validation, such as signature checks and - account nonce checks, and if these fail, the call will return a gRPC error. - The payload is in binary encoding, read more in the - :ref:`grpc-transaction-encoding` section. - - :param Int32 network_id: The network that the transaction should be sent to - (only ``100`` is currently supported). - :param payload: Binary encoding of the transaction payload. - :type payload: ``[Byte]`` of |grpc-block-item|_ - :returns: Either ``True`` or one of the following gRPC errors: - - - ``INVALID_ARGUMENT``: The transaction was deemed invalid or - exceeds the maximum size allowed (the raw size of the transaction). - - ``FAILED_PRECONDITION``: The network was stopped due to an - unrecognized protocol update. - - ``DUPLICATE_ENTRY``: The transaction was a duplicate. - - ``INTERNAL``: An internal error happened and as such the - transaction could not be processed. The node will return a gRPC - status if the transaction was deemed invalid. - :rtype: Bool - -.. function:: GetTransactionStatus(transaction_hash: TransactionHash, block_hash: BlockHash) -> JsonResponse - - Get the status of a given transaction. - - :param transaction_hash: The transaction to query. - :type transaction_hash: |grpc-transaction-hash|_ - :returns: The status of the transaction, or ``null`` if either the transaction - or block hash is malformed or doesn't exist. - :rtype: ``JsonResponse`` with ``?TransactionStatus`` (see JSON schema below) - - .. collapse:: View JSON schema - - .. literalinclude:: grpc-json-schemas/GetTransactionStatus.json - :language: json - -.. function:: GetTransactionStatusInBlock(transaction_hash: TransactionHash, block_hash: BlockHash) -> JsonResponse - - Get the status of a given transaction in a given block. - - :param transaction_hash: The transaction to query. - :param block_hash: The given block. - :type transaction_hash: |grpc-transaction-hash|_ - :type block_hash: |grpc-block-hash|_ - :returns: The status of the transaction, or ``null`` if either the transaction - or block hash is malformed or doesn't exist. - :rtype: ``JsonResponse`` with ``?TransactionStatusInBlock`` (see JSON schema below) - - .. collapse:: View JSON schema - - .. literalinclude:: grpc-json-schemas/GetTransactionStatusInBlock.json - :language: json - -Blocks and consensus -==================== - -.. function:: GetConsensusStatus() -> JsonResponse - - Get the information about the consensus. - - :returns: Information about the consensus. - :rtype: ``JsonResponse`` with ``ConsensusInfo`` (see JSON schema below) - - .. collapse:: View JSON schema - - .. literalinclude:: grpc-json-schemas/GetConsensusInfo.json - :language: json - -.. function:: GetBlockInfo(block_hash: BlockHash) -> JsonResponse - - Get information, such as height, timings, and transaction counts for the - given block. - - :param block_hash: The given block. - :type block_hash: |grpc-block-hash|_ - :returns: Information about the block, or ``null`` if the block hash is - malformed or doesn't exist. - :rtype: ``JsonResponse`` with ``?BlockInfo`` (see JSON schema below) - - .. collapse:: View JSON schema - - .. literalinclude:: grpc-json-schemas/GetBlockInfo.json - :language: json - -.. function:: GetBlockSummary(block_hash: BlockHash) -> JsonResponse - - Get a summary of the transactions and data in a given block. - - :param block_hash: The given block. - :type block_hash: |grpc-block-hash|_ - :returns: A summary of the transactions and data in the block, or ``null`` if - the block hash is malformed or doesn't exist. - :rtype: ``JsonResponse`` with ``?BlockSummary`` (see JSON schema below) - - .. collapse:: View JSON schema - - .. literalinclude:: grpc-json-schemas/GetBlockSummary.json - :language: json - -.. function:: GetBlocksAtHeight(block_height: BlockHeight) -> JsonResponse - - Get a list of the blocks at the given height. - - :param block_height: A block height. - :type block_height: |grpc-block-height|_ - :returns: A list of block hashes. - :rtype: ``JsonResponse`` with ``[BlockHash]`` (see JSON schema below) - - .. collapse:: View JSON schema - - .. literalinclude:: grpc-json-schemas/GetBlocksAtHeight.json - :language: json - -.. function:: GetAncestors(block_hash: BlockHash, amount: Amount) -> JsonResponse - - Get a list of the blocks preceding the given block. The list will contain at - most ``amount`` blocks. - - :param block_hash: The block to get ancestors of. - :type block_hash: |grpc-block-hash|_ - :param UInt64 amount: The requested number of ancestors. - :returns: A list of block hashes, or ``null`` if the block hash is malformed - or doesn't exist. - :rtype: ``JsonResponse`` with ``?[BlockHash]`` (see JSON schema below) - - .. collapse:: View JSON schema - - .. literalinclude:: grpc-json-schemas/GetAncestors.json - :language: json - -.. function:: GetBranches() -> JsonResponse - - Get the branches of the tree. This is the part of the tree above the last - finalized block. - - :returns: The branches of the tree. - :rtype: ``JsonResponse`` with ``Branch`` (see JSON schema below) - - .. collapse:: View JSON schema - - .. literalinclude:: grpc-json-schemas/GetBranches.json - :language: json - -Accounts -======== - -.. function:: GetAccountList(block_hash: BlockHash) -> JsonResponse - - Get a list of all accounts that exist in the state at the end of the given block. - - :param block_hash: The given block. - :type block_hash: |grpc-block-hash|_ - :returns: A list of accounts, or ``null`` if the block hash is malformed or - doesn't exist. - :rtype: ``JsonResponse`` with ``?[AccountAddress]`` (see JSON schema below) - - .. collapse:: View JSON schema - - .. literalinclude:: grpc-json-schemas/GetAccountList.json - :language: json - -.. _grpc-get-account-info: - -.. function:: GetAccountInfo(block_hash: BlockHash, address: AccountAddress) -> JsonResponse - - Get the state of an account in the given block. - - :param block_hash: The given block. - :param address: The account to query. - :type block_hash: |grpc-block-hash|_ - :type address: |grpc-account-address|_ - :returns: The state of the account, or ``null`` if either the block hash or account - address is malformed or doesn't exist. - :rtype: ``JsonResponse`` with ``?AccountInfo`` (see JSON schema below) - - .. collapse:: View JSON schema - - .. literalinclude:: grpc-json-schemas/GetAccountInfo.json - :language: json - -.. function:: GetAccountNonFinalizedTransactions(account_address: AccountAddress) -> JsonResponse - - Get a list of non-finalized transactions present on an account. - - :param account_address: The account to query. - :type account_address: |grpc-account-address|_ - :returns: A list of hashes of non-finalized transactions, or null if the - account address is malformed or doesn't exist. - :rtype: ``JsonResponse`` with ``?[TransactionHash]`` (see JSON schema below) - - .. collapse:: View JSON schema - - .. literalinclude:: grpc-json-schemas/GetAccountNonFinalized.json - :language: json - -.. function:: GetNextAccountNonce(account_address: AccountAddress) -> JsonResponse - - Returns the next available nonce for this account. - - :param account_address: The account to query. - :type account_address: |grpc-account-address|_ - :returns: An account nonce and whether there are any non-finalized - transactions for the account. Or ``null`` if the account address is - malformed or doesn't exist. - :rtype: ``JsonResponse`` with ``?AccountNonceResponse`` (see JSON schema below) - - .. collapse:: View JSON schema - - .. literalinclude:: grpc-json-schemas/GetNextAccountNonce.json - :language: json - -Smart contracts -=============== - -.. function:: GetModuleList(block_hash: BlockHash) -> JsonResponse - - Get a list of all smart contract modules that exist in the state at the end of the given block. - - :param block_hash: The given block. - :type block_hash: |grpc-block-hash|_ - :returns: A list of hashes of smart contract modules, or ``null`` if the - block hash is malformed or doesn't exist. - :rtype: ``JsonResponse`` with ``?[ModuleHash]`` (see JSON schema below) - - .. collapse:: View JSON schema - - .. literalinclude:: grpc-json-schemas/GetModuleList.json - :language: json - -.. function:: GetModuleSource(block_hash: BlockHash, module_ref: ModuleReference) -> ?[Byte] - - Get the binary source of a smart contract module. - - :param block_hash: The given block. - :type block_hash: |grpc-block-hash|_ - :param module_ref: The reference (hash) of the smart contract module. - :type block_hash: |grpc-module-reference|_ - :returns: The binary source of the module, or ``null`` if either the block hash or - module reference is malformed or doesn't exist. - :rtype: ``?[Byte]`` - -.. _grpc-get-instances: - -.. function:: GetInstances(block_hash: BlockHash) -> JsonResponse - - Get a list of all smart contract instances that exist in the state at the end - of the given block. - - :param block_hash: The given block. - :type block_hash: |grpc-block-hash|_ - :returns: A list of smart contract addresses, or ``null`` if the block hash - is malformed or doesn't exist. - :rtype: ``JsonResponse`` with ``?[ContractAddress]`` (see JSON schema below) - - .. collapse:: View JSON schema - - .. literalinclude:: grpc-json-schemas/GetInstances.json - :language: json - -.. _grpc-get-instance-info: - -.. function:: GetInstanceInfo(block_hash: BlockHash, address: ContractAddress) -> JsonResponse - - Get information about the given smart contract instance in the given block. - - :param block_hash: The given block. - :type block_hash: |grpc-block-hash|_ - :param address: The smart contract instance. - :type address: |grpc-contract-address|_ - :returns: Information about the smart contract instance, or ``null`` if - either the block hash or contract address is malformed or doesn't exist. - :rtype: ``JsonResponse`` with ``?InstanceInfo`` (see JSON schema below) - - .. collapse:: View JSON schema - - .. literalinclude:: grpc-json-schemas/GetInstanceInfo.json - :language: json - -.. function:: InvokeContract(block_hash: BlockHash, context: ContractContext) -> JsonResponse - - Invoke a smart contract instance and view its results as if it had been - updated at the end of the given block. Please note that *this is not a - transaction*, so it won't affect the contract on chain. It only simulates the invocation. - - :param block_hash: The given block. - :type block_hash: |grpc-block-hash|_ - :param context: The context in which to invoke the contract. - :type context: |grpc-contract-context|_ - :returns: An invocation result, or ``null`` if the block hash is malformed or - doesn't exist, or if the contract context is malformed or invalid. - :rtype: ``JsonResponse`` with ``?InvokeContractResult`` (see JSON schema below) - - .. collapse:: View JSON schema - - .. literalinclude:: grpc-json-schemas/InvokeContract.json - :language: json - -Validator -========= - -.. function:: GetPoolStatus(block_hash: BlockHash, passive_delegation: Bool, baker_id: UInt64) -> JsonResponse - - Get the status of a pool. - If ``passive_delegation == true``, this returns the status for the passive delegators. - Otherwise, it returns the status for the validator with the specified ID (if it exists). - - :param block_hash: The given block. - :type block_hash: |grpc-block-hash|_ - :param Bool passive_delegation: Whether the request is for passive delegation or a - specific validator. - :param UInt64 baker_id: The validator id to get the status of. - :returns: The status of the pool, or ``null`` if the block hash is malformed, - or if either the block hash or validator id doesn't exist. - :rtype: ``JsonResponse`` with ``?PoolStatus`` (see JSON schema below) - - .. collapse:: View JSON schema - - .. literalinclude:: grpc-json-schemas/GetPoolStatus.json - :language: json - - -.. function:: GetRewardStatus(block_hash: BlockHash) -> JsonResponse - - Get an overview of the balance of special accounts in the given block. - - :param block_hash: The given block. - :type block_hash: |grpc-block-hash|_ - :returns: The reward status in the given block, or ``null`` if the block hash - is malformed or doesn't exist. - :rtype: ``JsonResponse`` with ``?RewardStatus`` (see JSON schema below) - - .. collapse:: View JSON schema - - .. literalinclude:: grpc-json-schemas/GetRewardStatus.json - :language: json - -.. function:: GetBirkParameters(block_hash: BlockHash) -> JsonResponse - - Get an overview of the parameters used for validators. - - :param block_hash: The given block. - :type block_hash: |grpc-block-hash|_ - :returns: The parameters used for validators in the given block, or ``null`` if - the block hash is malformed or doesn't exist. - :rtype: ``JsonResponse`` with ``?BirkParameters`` (see JSON schema below) - - .. collapse:: View JSON schema - - .. literalinclude:: grpc-json-schemas/GetBirkParameters.json - :language: json - -.. function:: GetBakerList(block_hash: BlockHash) -> JsonResponse - - Get a list of all validator IDs registered at that block in ascending order. Or - ``null``, if the block is invalid. - - :param block_hash: The given block. - :type block_hash: |grpc-block-hash|_ - :returns: A list of validator IDs, or ``null`` if the block hash is malformed or - doesn't exist. - :rtype: ``JsonResponse`` with ``?[BakerId]`` (see JSON schema below) - - .. collapse:: View JSON schema - - .. literalinclude:: grpc-json-schemas/GetBakerList.json - :language: json - -.. function:: StartBaker() -> Bool - - Start the validator. - - :returns: Whether starting the validator succeeded. - :rtype: Bool - -.. function:: StopBaker() -> Bool - - Stop the validator. - - :returns: Whether stopping the validator succeeded. - :rtype: Bool - -The node -======== - -.. function:: NodeInfo() -> NodeInfoResponse - - Get information about the running node. - - :returns: Information about the running node. - :rtype: |NodeInfoResponse|_ - -.. function:: PeerVersion() -> String - - Get the version of the node software. - - :returns: The version of the node software. - :rtype: String - -.. function:: PeerUptime() -> UInt64 - - Get the uptime of the node in milliseconds. - - :returns: The uptime of the queried node in milliseconds. - :rtype: UInt64 - -.. function:: PeerTotalSent() -> UInt64 - - Get the total number of packets sent by the node. - - :returns: The total number of packets sent by the node. - :rtype: UInt64 - -.. function:: PeerTotalReceive() -> UInt64 - - Get the total number of packets received by the node. - - :returns: The total number of packets received. - :rtype: UInt64 - -.. function:: Shutdown() -> Bool - - Shut down the node. - - :returns: Whether shutting down succeeded. - :rtype: Bool - -.. function:: DumpStart(file: FilePath, raw: Bool) -> Bool - - Start dumping packages into the specified file. *Only available on a node - built with the network_dump feature.* - - :param FilePath file: The file to dump packages into. - :param Bool raw: Whether it should dump the raw packages. - :returns: Whether it started dumping correctly. - :rtype: Bool - -.. function:: DumpStop() -> Bool - - Stop dumping packages. *Only available on a node built with the - network_dump feature.* - - :returns: Whether it stopped dumping correctly. - :rtype: Bool - -Networks and peers -================== - -.. function:: PeerList(include_bootstrappers: Bool) -> PeerListResponse - - Get a list of the peers that the node is connected to. - - :param Bool include_bootstrappers: Whether to include the bootstrapper nodes - in the response. - :returns: A list of peers. - :rtype: |PeerListResponse|_ - -.. function:: PeerStats(include_bootstrappers: Bool) -> PeerStatsResponse - - Get information on the peers that the node is connected to. - - :param Bool include_bootstrappers: Whether to include the bootstrapper nodes - in the response. - :returns: Information about the peers. - :rtype: |PeerStatsResponse|_ - -.. function:: PeerConnect(ip: String, port: Int32) -> Bool - - Suggest the node to connect to the submitted peer. If successful, this adds - the peer to the list of peers. - - :param String ip: IP of the peer. - :param Int32 port: Port of the peer. - :returns: Whether the request was processed successfully. - :rtype: Bool - -.. function:: PeerDisconnect(ip: String, port: Int32) -> Bool - - Disconnect from the peer and remove them from the given addresses list if - they are on it. - - :param String ip: IP of the peer. - :param Int32 port: Port of the peer. - :returns: Whether the request was processed successfully. - :rtype: Bool - -.. function:: BanNode(node_id: String, port: UInt32, ip: String, catchup_status: CatchupStatus) -> Bool - - Ban a node from being a peer. Note that you should provide a ``node_id`` OR - an ``ip``, but not both. Use ``null`` for the option not chosen. - - :param String node_id: The id of the node to ban. - :param UInt32 port: *Deprecated*: No longer used. Pass in ``null``. - :param String ip: The ip of the node. - :param CatchupStatus catchup_status: *Deprecated*: No longer used. Pass in ``null``. - :returns: Whether the banning succeeded. - :rtype: Bool - -.. function:: UnbanNode(node_id: String, port: UInt32, ip: String, catchup_status: CatchupStatus) -> Bool - - Unban a previously banned node. Note that you should provide a ``node_id`` OR - an ``ip``, but not both. Use ``null`` for the option not chosen. - - :param String node_id: The id of the node to ban. - :param UInt32 port: *Deprecated*: No longer used. Pass in ``null``. - :param String ip: The ip of the node. - :param CatchupStatus catchup_status: *Deprecated*: No longer used. Pass in ``null``. - :returns: Whether the unbanning succeeded. - :rtype: Bool - -.. function:: GetBannedPeers() -> PeerListResponse - - Get a list of banned peers. - - :returns: A list of banned peers. - :rtype: |PeerListResponse|_ - -.. function:: JoinNetwork(network_id: Int32) -> Bool - - Attempt to join the specified network. - - :param Int32 network_id: The network to join. - :returns: Whether joining succeeded. - :rtype: Bool - -.. function:: LeaveNetwork(network_id: Int32) -> Bool - - Attempt to leave the specified network. - - :param Int32 network_id: The network to leave. - :returns: Whether leaving succeeded. - :rtype: Bool - -Chain data -========== - -.. function:: GetIdentityProviders(block_hash: BlockHash) -> JsonResponse - - Get a list of all identity providers that exist in the state at the end of the given block. - - :param block_hash: The block to query. - :type block_hash: |grpc-block-hash|_ - :returns: A list of identity providers, or ``null`` if the block hash is - malformed or doesn't exist. - :rtype: ``JsonResponse`` with ``?[IdentityProvider]`` (see JSON schema below) - - .. collapse:: View JSON schema - - .. literalinclude:: grpc-json-schemas/GetIdentityProviders.json - :language: json - -.. function:: GetAnonymityRevokers(block_hash: BlockHash) -> JsonResponse - - Get a list of all anonymity revokers that exist in the state at the end of the given block. - - :param block_hash: The block to query. - :type block_hash: |grpc-block-hash|_ - :returns: A list of anonymity revokers, or ``null`` if the block hash is - malformed or doesn't exist. - :rtype: ``JsonResponse`` with ``?[AnonymityRevoker]`` (see JSON schema below) - - .. collapse:: View JSON schema - - .. literalinclude:: grpc-json-schemas/GetAnonymityRevokers.json - :language: json - -.. function:: GetCryptographicParameters(block_hash: BlockHash) -> JsonResponse - - Get the cryptographic parameters used in the given block. - - :param block_hash: The block to query. - :type block_hash: |grpc-block-hash|_ - :returns: The cryptographic parameters, or ``null`` if the block hash is - malformed or doesn't exist. - :rtype: ``JsonResponse`` with ``?CryptographicParameters`` (see JSON schema below) - - .. collapse:: View JSON schema - - .. literalinclude:: grpc-json-schemas/GetCryptographicParameters.json - :language: json - -Types -===== - -.. _grpc-transaction-hash: - -``TransactionHash`` - Base-16 encoded hash of a transaction (64 characters). Example: - - .. code-block:: json - - "2e71affba96da648ca628eccda190c3f2c3868d16a99619337dd50725582c2d1" - -.. _grpc-block-hash: - -``BlockHash`` - Base-16 encoded hash of a block (64 characters). Example: - - .. code-block:: json - - "987d6c06256fbf874d6ba14f19baee4390a31c6ee58edd9cc4efef62e89d22d7" - -.. _grpc-block-height: - -``BlockHeight`` - The block height. - See more details in the protobuf file here: |BlockHeight|_. - -.. _grpc-account-address: - -``AccountAddress`` - A string with the account address. - A base-58 check with version byte 1 encoded address (with Bitcoin mapping - table). Example: - - .. code-block:: json - - "3DJoe7aUwMwVmdFdRU2QsnJfsBbCmQu1QHvEg7YtWFZWmsoBXe" - -.. _grpc-module-reference: - -``ModuleReference`` - A string with module reference, which is the hash of the module. - Example: - - .. code-block:: json - - "eecfe4ceda7432e2727d8137b9c23c4c343634e41657b72313fb061e249aaa97" - -.. _grpc-contract-address: - -``ContractAddress`` - A JSON object with two fields: index and subindex. Example: - - .. code-block:: json - - { "index": 11235, "subindex": 0 } - -.. _grpc-contract-context: - -``ContractContext`` - The context in which a contract instance is invoked. Represented as a JSON - object. - - .. collapse:: View JSON schema - - .. literalinclude:: grpc-json-schemas/ContractContext.json - :language: json - -.. _grpc-transaction-encoding: - -Transaction encoding --------------------- - -This section describes the ``BlockItem`` used in the |grpc-send-transaction|_. -The binary serialization of an ``BlockItem`` is also covered, as that is the -expected format when sending transactions. -All possible transactions are *not* covered on this page. -Instead, there is a **focus on transfers and the smart contract-related transactions**. - -.. note:: - - All numbers in this section use `big-endian encoding `_. - - -.. _grpc-block-item: - -``BlockItem`` - A union type of the different categories of transactions. - - The only supported BiVersion is currently ``0``. All the transactions - explained on this page belong to the category |grpc-account-transaction|_ which - has ``BiTag == 0``. - - .. code-block:: - - BiVersion ::= (x: Byte) => x if x < 2^7 - | (m: BiVersion) (x: Byte) => (x - 2^7) + 2^7 * m if x >= 2^7 - - BiTag ::= (n: UInt8) - - BlockItem ::= (version: BiVersion) (tag: BiTag) (transaction: TransactionType) - -.. _grpc-account-transaction: - -``AccountTransaction`` - A transaction that originates from a specific account (the sender), and is - paid for by the sender. - - |grpc-transaction-signature|_: Signatures for the transaction. The message to sign is the SHA256 of the |grpc-transaction-header|_ + |grpc-transaction-payload|_. - - |grpc-transaction-header|_: A header with common data needed for all types of transactions. - - |grpc-transaction-payload|_: The actual contents of the transaction. For smart contracts this is DeployModule, InitContract, or Update. - - .. code-block:: - - AccountTransaction ::= (signature: TransactionSignature) (header: TransactionHeader) (payload: TransactionPayload) - -.. _grpc-transaction-signature: - -``TransactionSignature`` - A transaction signature is a map from the index of the credential to another - map from the key index to the actual signature. - The credential index is relative to the account address, and the indices - should be distinct. - The key index is relative to the credential. - The maximum length of the list is 255, and the minimum length is 1. - - .. code-block:: - - Signature ::= (keyIndex: UInt8) (n: UInt16) (signature: Byteⁿ) - - Credential ::= (credentialIndex: UInt8) (n: UInt8) (signatures: Signatureⁿ) - - TransactionSignature ::= (n: UInt8) (credentials: Credentialⁿ) - -.. _grpc-transaction-header: - -``TransactionHeader`` - A transaction header is a struct which consists of the following fields: - - ``AccountAddress``: The sender account. - - ``Nonce``: Account nonce. Initial nonce is ``1``. Is incremented by 1 with - every transaction originating from an account. Find the current nonce with - |grpc-get-account-info|_. - - ``Energy``: The amount of energy allocated for the execution of this transaction. - - ``PayloadSize``: Size of the |grpc-transaction-payload|_ in bytes. - - ``TransactionExpiryTime``: Absolute expiration time after which transaction will not be executed. Measured in seconds since unix epoch. - - .. code-block:: - - TransactionHeader ::= (accountAddress: Byte³²) (nonce: UInt64) (energy: UInt64) (payloadSize: UInt32) (transactionExpiryTime: UInt64) - -.. _grpc-transaction-payload: - -``TransactionPayload`` - A union type with the different types of transactions. - This page only covers some transaction types. - - .. code-block:: - - TransactionPayload ::= (0: UInt8) (content: DeployModule) - | (1: UInt8) (content: InitContract) - | (2: UInt8) (content: Update) - | (3: UInt8) (content: Transfer) - | (16: UInt8) (content: TransferWithMemo) - | (n: UInt8) (content: ) - - .. _grpc-module-deploy: - - ``DeployModule`` - Deploy a Wasm module to the chain. - The smart contract ``version`` is prefixed. - The chain currently support contract versions ``0`` and ``1``. - - .. code-block:: - - DeployModule ::= (version: UInt32) (n: UInt32) (module: Byteⁿ) - - .. note:: - - When working with smart contracts, a typical workflow is: - - - Deploy a smart contract module by sending a |grpc-module-deploy|_ transaction. - - Create a contract instance from the module by sending an |grpc-init-contract|_ transaction. - - Find the address of the contract instance via |grpc-get-instances|_ and |grpc-get-instance-info|_. - - Update the contract by sending a |grpc-update|_ transaction. - - .. _grpc-init-contract: - - ``InitContract`` - Initialize a smart contract using a deployed smart contract module. If - successful, it creates a smart contract *instance* with a unique |grpc-contract-address|_. - - ``amount``: Amount in microCCD (``10^-6 CCD``). - - ``moduleRef``: Hash of the module on chain. Byte-array of fixed size 32. - - ``initName``: Name of the init function including ``init_`` prefix. *In - UTF-8 encoding.* - - ``parameter``: Parameter for the init function. - - .. code-block:: - - InitName ::= (n: UInt16) (utf8: Byteⁿ) - - Parameter ::= (n: UInt16) (data: Byteⁿ) - - InitContract ::= (amount: UInt64) (moduleRef: Byte³²) (initName: InitName) (parameter: Parameter) - - .. _grpc-update: - - ``Update`` - Update a smart contract instance using its ``ContractAddress``. - - ``amount``: Amount in microCCD (``10^-6 CCD``). - - ``contractAddress``: Address of contract instance consisting of an index - and subindex. - - ``ReceiveName``: Name of receive function including ``.`` - prefix. (Notice the ``.``). *In UTF-8 encoding*. - - ``Parameter``: Parameter for the receive function. - - .. code-block:: - - ContractAddress ::= (index: UInt64) (subindex: UInt64) - - ReceiveName ::= (n: UInt16) (utf8: Byteⁿ) - - Parameter ::= (n: UInt16) (data: Byteⁿ) - - Update ::= (amount: UInt64) (contractAddress: ContractAddress) (receiveName: ReceiveName) (parameter: Parameter) - - .. _grpc-transfer: - - ``Transfer`` - Transfer CCD from the sender account to the specified account address. - The ``amount`` is microCCD (``10^-6 CCD``). - - .. code-block:: - - Transfer ::= (accountAddress: Byte³²) (amount: UInt64) - - - .. _grpc-transfer-with-memo: - - ``TransferWithMemo`` - Transfer CCD from the sender account the specified account address and - include a memo. The memo can be up to 256 bytes long, excluding its - length (``n``). - - .. code-block:: - - Memo ::= (n: UInt16) (data: Byteⁿ) - - TransferWithMemo ::= (accountAddress: Byte³²) (memo: Memo) (amount: UInt64) - -.. |grpc-block-hash| replace:: ``BlockHash`` -.. |grpc-block-height| replace:: ``BlockHeight`` -.. |grpc-transaction-hash| replace:: ``TransactionHash`` -.. |grpc-account-address| replace:: ``AccountAddress`` -.. |grpc-contract-address| replace:: ``ContractAddress`` -.. |grpc-contract-context| replace:: ``ContractContext`` -.. |grpc-block-item| replace:: ``BlockItem`` -.. |grpc-account-transaction| replace:: ``AccountTransaction`` -.. |grpc-transaction-signature| replace:: ``TransactionSignature`` -.. |grpc-transaction-header| replace:: ``TransactionHeader`` -.. |grpc-transaction-payload| replace:: ``TransactionPayload`` -.. |grpc-module-deploy| replace:: ``ModuleDeploy`` -.. |grpc-init-contract| replace:: ``InitContract`` -.. |grpc-update| replace:: ``Update`` -.. |grpc-get-instances| replace:: ``GetInstances`` -.. |grpc-get-instance-info| replace:: ``GetInstanceInfo`` -.. |grpc-module-reference| replace:: ``ModuleReference`` -.. |grpc-send-transaction| replace:: ``SendTransaction`` -.. |grpc-get-account-info| replace:: ``GetAccountInfo`` -.. _NodeInfoResponse: https://github.com/Concordium/concordium-grpc-api/blob/232e34fbe163f3f537277d406f058774a8d3a432/concordium_p2p_rpc.proto#L121 -.. |NodeInfoResponse| replace:: ``NodeInfoResponse`` -.. _BlockHeight: https://github.com/Concordium/concordium-grpc-api/blob/232e34fbe163f3f537277d406f058774a8d3a432/concordium_p2p_rpc.proto#L271 -.. |BlockHeight| replace:: ``BlockHeight`` -.. _PeerStatsResponse: https://github.com/Concordium/concordium-grpc-api/blob/232e34fbe163f3f537277d406f058774a8d3a432/concordium_p2p_rpc.proto#L89 -.. |PeerStatsResponse| replace:: ``PeerStatsResponse`` -.. _PeerListResponse: https://github.com/Concordium/concordium-grpc-api/blob/232e34fbe163f3f537277d406f058774a8d3a432/concordium_p2p_rpc.proto#L79 -.. |PeerListResponse| replace:: ``PeerListResponse`` diff --git a/source/mainnet/net/references/grpc2.rst b/source/mainnet/net/references/grpc2.rst index 48b8ca8018..036c43376e 100644 --- a/source/mainnet/net/references/grpc2.rst +++ b/source/mainnet/net/references/grpc2.rst @@ -4,29 +4,24 @@ gRPC V2 documentation ====================== -Since version 4.5.0 the Concordium node, in addition to the legacy :ref:`gRPC -API`, supports a new API that has a much more detailed -schema definition, and does not rely on JSON responses. It also supports -streaming responses in cases where there is a lot of data, and supports -subscribing to new blocks and finalizations. - -The new V2 interface enables access to the same data as the original V1 interface, -but in addition supports new endpoints, such as the ability to retrieve the -entire smart contract state. - -The original gRPC interface is going into maintenance mode and will -be deprecated in the future. - -The `in-depth documentation -`_ -of the new interface lists and documents all the endpoints. - -As with the V1 interface, for best experience the interface should be used -through an SDK. However the new interface makes it substantially easier to build -an SDK since there is a canonical schema of responses. - -At present the `Concordium Rust SDK -`_, `Concordium Javascript (Node / Web) SDK `_, `.NET SDK `__ and `Rosetta `__ have support for the new -interface. -Other SDKs will be migrated in the future, before the V1 -interface is deprecated. +The gRPC v2 API has a much more detailed schema definition, and does not rely on JSON responses as the now deprecated gRPC v1 API did. It also supports streaming responses in cases where there is a lot of data, and supports subscribing to new blocks. + +The V2 interface enables access to the same data as the now deprecated V1 interface, but in addition supports new endpoints, such as the ability to retrieve the entire smart contract state. + +The original gRPC interface has been deprecated in all node distributions as of December 5th, 2023. + +The `in-depth documentation `_ of the new interface lists and documents all the endpoints. + +For best experience, the interface should be used through an SDK. However, the new interface makes it substantially easier to build an SDK since there is a canonical schema of responses. + +At present the following SDKs support gRPC v2: + +- `Concordium Rust SDK `_ + +- `Concordium Javascript (Node / Web) SDK `_ + +- `.NET SDK `__ + +- `Rosetta `__ + +- `Concordium Java SDK `_ diff --git a/source/mainnet/net/references/query-node.rst b/source/mainnet/net/references/query-node.rst index 29ec541223..98e9c10477 100644 --- a/source/mainnet/net/references/query-node.rst +++ b/source/mainnet/net/references/query-node.rst @@ -18,7 +18,7 @@ a backend node: and its relation to other blocks on the chain. - Consensus state: Show the parameters of the consensus protocol and statistics related to production of blocks. - +- Validator queries: Show validator information. .. _query-account-state: @@ -317,3 +317,31 @@ following command: This prints a JSON list containing any such pending updates. As before you can also pass a block hash to the command to query a specific block. + +Validator queries +================= + +Earliest time a validator may be expected to produce a block +------------------------------------------------------------ + +.. code-block:: console + + $concordium-client validator win-time 1 + Validator 1 is expected to produce a block no sooner than: + Thu, 26 Oct 2023 07:01:26 UTC (in 34s 699ms) + +Get the projected earliest time at which a particular validator will be required to produce a block. + +If the validator is not a validator for the current reward period, this returns a timestamp at the +start of the next reward period. If the validator is a validator for the current reward period, the +earliest win time is projected from the current round forward, assuming that each round after +the last finalized round will take the minimum block time. (If blocks take longer, or timeouts +occur, the actual time may be later, and the reported time in subsequent queries may reflect +this.) At the end of an epoch (or if the validator is not projected to produce a block before the end of the +epoch) the earliest win time for a (current) validator will be projected as the start of the next +epoch. + +One can supply the ``--poll`` option in order to continuously receive updates of when +the supplied validator may be expected to produce a block. + +This query is only supported from protocol version 6 and onwards. diff --git a/source/mainnet/net/release-notes/release-notes-lp.rst b/source/mainnet/net/release-notes/release-notes-lp.rst index 5f3a360e3d..ea3691444a 100644 --- a/source/mainnet/net/release-notes/release-notes-lp.rst +++ b/source/mainnet/net/release-notes/release-notes-lp.rst @@ -989,12 +989,22 @@ Mainnet Testnet ------- - October 16, 2023 + November 28, 2023 + + Version 6.2.3 removes the V1 gRPC API. This removes the configuration options ``CONCORDIUM_NODE_RPC_SERVER_PORT``, ``CONCORDIUM_NODE_RPC_SERVER_ADDRESS``, ``CONCORDIUM_NODE_RPC_SERVER_TOKEN``, ``CONCORDIUM_NODE_DISABLE_RPC_SERVER_NODE_ENDPOINTS`` and their command line equivalents. An additional health-check service was also added to the V2 GRPC API. This service conforms to the `standard GRPC health service API `__. + + As part of the tokenomics changes the node has new configuration options that use the new terminology. The existing options using the legacy terminology are still supported, however they are hidden. + + A ``DryRun`` endpoint has also been that allows simulating the execution of transactions. - Version 6.1.7 adds load shedding for gRPC v2. This helps with protecting the node in case of high number of concurrent requests since they are now dropped immediately as opposed to queued. + The account map is now kept solely on disk in a separate LMDB database and it is no longer part of the internal block state database. This change results in significantly reduced resource usage for the node. .. dropdown:: Previous releases + .. dropdown:: 6.1.7 - October 16, 2023 + + Version 6.1.7 adds load shedding for gRPC v2. This helps with protecting the node in case of high number of concurrent requests since they are now dropped immediately as opposed to queued. + .. dropdown:: 6.1.6 - October 10, 2023 Concordium Node 6.1.6 contains bug fixes and improvements. **This is the last release of the node that has support for V1 gRPC API.** @@ -1459,24 +1469,38 @@ Tools Concordium Client ----------------- - October 10, 2023 + November 28, 2023 + + Concordium Client 6.2.1 includes support for the following: + + - Revised client's reconnect handling so that the client will no longer attempt to automatically reconnect on timeouts and node resource exhaustion. - Concordium Client 6.1.0 includes support for the following: + - Renamed bakers to validators in output in accordance with the upcoming tokenomics changes. - - Added baker win-time command for determining the earliest time a specified baker is expected to bake. + - Added additional configuration options that use validator in place of baker in accordance with the upcoming tokenomics changes. For example, ``concordium-client validator add``. The older options still exist, but are hidden. - - Added support for the following node version 6.1 queries under the ``raw`` command: + - The ``module inspect`` command now attempts to print any embedded verifiable build information. - - ``GetBakersRewardPeriod`` - - ``GetBlockCertificates`` - - ``GetBakerEarliestWinTime`` - - ``GetWinningBakersEpoch`` - - ``GetFirstBlockEpoch`` - - Add support for CommissionRates in ``CurrentPaydayBakerPoolStatus`` (Only available for node versions > 6.0). - - Show all options for importing an account. + - The ``module deploy`` command now warns if a module is being deployed that does not have embedded verifiable build information. .. dropdown:: Previous releases + .. dropdown:: 6.1.0 - October 10, 2023 + + Concordium Client 6.1.0 includes support for the following: + + - Added baker win-time command for determining the earliest time a specified baker is expected to bake. + + - Added support for the following node version 6.1 queries under the ``raw`` command: + + - ``GetBakersRewardPeriod`` + - ``GetBlockCertificates`` + - ``GetBakerEarliestWinTime`` + - ``GetWinningBakersEpoch`` + - ``GetFirstBlockEpoch`` + - Add support for CommissionRates in ``CurrentPaydayBakerPoolStatus`` (Only available for node versions > 6.0). + - Show all options for importing an account. + .. dropdown:: 6.0.1 - August 9, 2023 Concordium Client 6.0.1 adds support for the upcoming `protocol version 6 `_ which is planned for release on Testnet August 21, 2023. **Note that this version of Concordium-Client requires at least node version 5.4.** diff --git a/source/mainnet/smart-contracts/references/host-fns.rst b/source/mainnet/smart-contracts/references/host-fns.rst index b1d27acc6a..904b605319 100644 --- a/source/mainnet/smart-contracts/references/host-fns.rst +++ b/source/mainnet/smart-contracts/references/host-fns.rst @@ -354,6 +354,10 @@ Functions only accessible for smart contract receive functions. ``3`` for query a contract balance. ``4`` for query the exchange rates. + + ``5`` for check the account signature. + + ``6`` for query the account keys. :param i32 start: Pointer to the start of the invoke payload. :param i32 length: Length of the invoke payload. :return: If the last five bytes are ``0`` then the call succeeded. In this diff --git a/source/mainnet/smart-contracts/tutorials/fungible-tokens/mint-xfer.rst b/source/mainnet/smart-contracts/tutorials/fungible-tokens/mint-xfer.rst index 2195012a0f..7085f560ff 100644 --- a/source/mainnet/smart-contracts/tutorials/fungible-tokens/mint-xfer.rst +++ b/source/mainnet/smart-contracts/tutorials/fungible-tokens/mint-xfer.rst @@ -35,7 +35,7 @@ Run the command below to call the contract ``mint()`` function. Remember that th .. code-block:: console - concordium-client contract update --entrypoint mint --parameter-json ../nft-artifacts/mint-params.json --schema dist/fungible/schema.bin --sender --energy 6000 --grpc-port 10000 --grpc-ip node.testnet.concordium.com + concordium-client contract update --entrypoint mint --parameter-json ../nft-artifacts/mint-params.json --schema dist/fungible/schema.bin --sender --energy 6000 --grpc-port 20000 --grpc-ip node.testnet.concordium.com Now you have successfully minted your fungible tokens. @@ -47,7 +47,7 @@ Check the state to see the balance, circulating supply, and maximum supply. Run .. code-block:: console - concordium-client contract invoke --entrypoint view --grpc-port 10000 --grpc-ip node.testnet.concordium.com + concordium-client contract invoke --entrypoint view --grpc-port 20000 --grpc-ip node.testnet.concordium.com .. image:: images/invoke-after-mint.png :width: 100% @@ -102,7 +102,7 @@ Run the command below to invoke the transfer. Remember that this is using the Co .. code-block:: console - concordium-client contract update --entrypoint transfer --parameter-json ../token-artifacts/transfer.json --sender --energy 6000 --grpc-port 10000 --grpc-ip node.testnet.concordium.com + concordium-client contract update --entrypoint transfer --parameter-json ../token-artifacts/transfer.json --sender --energy 6000 --grpc-port 20000 --grpc-ip node.testnet.concordium.com Check the state one more time to see that the transfer worked as expected. @@ -134,7 +134,7 @@ Burn 200 tokens from your first account. To do that, run the command below to ca .. code-block:: console - concordium-client contract update --entrypoint burn --parameter-json ../token-artifacts/burn.json --sender --energy 6000 --grpc-port 10000 --grpc-ip node.testnet.concordium.com + concordium-client contract update --entrypoint burn --parameter-json ../token-artifacts/burn.json --sender --energy 6000 --grpc-port 20000 --grpc-ip node.testnet.concordium.com .. image:: images/burn-tokens.png :width: 100% diff --git a/source/mainnet/smart-contracts/tutorials/fungible-tokens/smart-contract.rst b/source/mainnet/smart-contracts/tutorials/fungible-tokens/smart-contract.rst index eb9fa2c1e0..025c6c259b 100644 --- a/source/mainnet/smart-contracts/tutorials/fungible-tokens/smart-contract.rst +++ b/source/mainnet/smart-contracts/tutorials/fungible-tokens/smart-contract.rst @@ -488,13 +488,13 @@ You can embed the schema file in the module, which means you don’t have to cal Deploy the smart contract ------------------------- -If you don't have your own testnet node running, Concordium provides a running testnet gRPC node that is available at ``node.testnet.concordium.com`` on port 10000 (GRPCv1) and port 20000 (gRPCv2 and gRPC-web). You can use this node for API calls of *chain methods only* with GRPC v1, gRPC v2, and gRPC web. This node is maintained by Concordium, but Concordium does not guarantee availability. The status of this node is available on the `Testnet status page `__. For some use cases you might need to run your own local node due to the limitations of this one. +If you don't have your own testnet node running, Concordium provides a running testnet gRPC node that is available at ``node.testnet.concordium.com`` on port 20000 (gRPCv2 and gRPC-web). You can use this node for API calls of *chain methods only*. This node is maintained by Concordium, but Concordium does not guarantee availability. The status of this node is available on the `Testnet status page `__. For some use cases you might need to run your own local node due to the limitations of this one. Run the command below to deploy the smart contract. This command is structured to use the Concordium testnet node described above. If you are using your own local node, adjust the command accordingly. .. code-block:: console - concordium-client module deploy dist/fungible/module.wasm.v1 --sender --name --grpc-port 10000 --grpc-ip node.testnet.concordium.com + concordium-client module deploy dist/fungible/module.wasm.v1 --sender --name --grpc-port 20000 --grpc-ip node.testnet.concordium.com .. image:: images/deploy-sc.png :width: 100% @@ -507,7 +507,7 @@ Using the Module reference hash value, create a contract instance with the comma .. code-block:: console - concordium-client contract init --sender --energy 30000 --contract --grpc-port 10000 --grpc-ip node.testnet.concordium.com + concordium-client contract init --sender --energy 30000 --contract --grpc-port 20000 --grpc-ip node.testnet.concordium.com .. image:: images/initialize-sc.png :width: 100% diff --git a/source/mainnet/variables.rst b/source/mainnet/variables.rst index 828ac32b15..ec8b71d714 100644 --- a/source/mainnet/variables.rst +++ b/source/mainnet/variables.rst @@ -13,9 +13,9 @@ .. |bw| replace:: Concordium Wallet for Web .. Client verification variables -.. |client-linux| replace:: concordium-client_6.1.0-1 -.. |client-version| replace:: 6.1.0-1 -.. |client-linux-checksum| replace:: a52a035100d4b72580024b96bd69c750c3f20da8d93f6c405dde70f12c9dd878 +.. |client-linux| replace:: concordium-client_6.2.1-0 +.. |client-version| replace:: 6.2.1-0 +.. |client-linux-checksum| replace:: 20b5b0502c34743d3d30a269b58e47b66982fdb4fd11e82fc510f9e01ba2b161 .. Cargo verification variables .. |cargo-linux| replace:: cargo-concordium_2.8.0 @@ -24,7 +24,7 @@ .. Node version variables .. |mainnet-node-version| replace:: 6.1.7 -.. |testnet-node-version| replace:: 6.1.7 +.. |testnet-node-version| replace:: 6.2.3 .. Node debian package verification variables .. |node-deb-package| replace:: concordium-mainnet-node_6.1.7-0_amd64.deb diff --git a/source/shared/setup-env.rst b/source/shared/setup-env.rst index d1bf3f4fa8..f4f7896113 100644 --- a/source/shared/setup-env.rst +++ b/source/shared/setup-env.rst @@ -231,7 +231,7 @@ Remember you are working on the testnet. Check if your node collector is up and .. Note:: - For testing purposes, a node is available on testnet to use when testing smart contracts and dApps. You can use this node for API calls of chain methods only with GRPC v1, gRPC v2, and gRPC web. The address is node.testnet.concordium.com on port 10000 (GRPCv1) and port 20000 (gRPCv2 and gRPC-web). This node is maintained by Concordium, but Concordium does not guarantee availability. The status of this node is available on the `Testnet status page `__. + For testing purposes, a node is available on testnet to use when testing smart contracts and dApps. You can use this node for API calls of chain methods only with gRPC v2 and gRPC web. The address is node.testnet.concordium.com on port 20000 (gRPCv2 and gRPC-web). You can use this node for API calls of *chain methods only*. This node is maintained by Concordium, but Concordium does not guarantee availability. The status of this node is available on the `Testnet status page `__. .. _setup-wallet: